From 42d06dfafd73c0f3d9250b06aed162e4902aa589 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 7 Aug 2025 12:19:10 +0200 Subject: [PATCH 001/169] added some missing funs and cats --- src/latin/CatLat.gf | 4 +++- src/latin/ParadigmsLat.gf | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/latin/CatLat.gf b/src/latin/CatLat.gf index 8394fe0d..9c8436ea 100644 --- a/src/latin/CatLat.gf +++ b/src/latin/CatLat.gf @@ -85,7 +85,9 @@ concrete CatLat of Cat = CommonX-[Adv] ** open ResLat, ParamX, Prelude in { N = Noun ; N2 = Noun ** { c : Prep } ; N3 = Noun ** { c : Prep ; c2 : Prep } ; - PN = { s : Case => Str ; n : Number ; g : Gender } ; + PN, LN = { s : Case => Str ; n : Number ; g : Gender } ; + GN = { s : Str ; g : Sex } ; + SN = { s : Sex => Str ; pl : Str } ; A2 = Adjective ** { c : Prep} ; linref diff --git a/src/latin/ParadigmsLat.gf b/src/latin/ParadigmsLat.gf index 360789ab..78f4ee20 100644 --- a/src/latin/ParadigmsLat.gf +++ b/src/latin/ParadigmsLat.gf @@ -110,6 +110,12 @@ oper = \p,c -> lin Adv (mkFullAdverb p c nonExist); }; + mkAdV : Str -> AdV + = \s -> lin AdV {s=s} ; + mkAdA : Str -> AdA + = \s -> lin AdA {s=s} ; + mkAdN : Str -> AdN + = \s -> lin AdN {s=s} ; mkConj = overload { @@ -147,4 +153,24 @@ oper mkA2V : A -> Prep -> A2V = \a,p -> lin A2V ( lin A2 ( a ** { c = p } ) ) ; AV : Type = A ; mkAV : A -> AV = \a -> lin AV a ; + + mkLN : N -> Number -> LN = \noun,num -> lin PN (noun ** { s = noun.s ! num ; n = num } ) ; + + mkGN = overload { + mkGN : Str -> GN = \s -> lin GN {s = s ; g = Male}; -- default gender male + mkGN : Str -> Sex -> GN = \s,g -> lin GN {s = s ; g = g} ; -- set other gender + } ; + + mkSN = overload { + mkSN : Str -> SN = \s -> lin SN {s = \\_=>s; pl = s}; -- default gender utrum + mkSN : Str -> Str -> Str -> SN = + \male,female,pl -> lin SN {s = table {Male => male; + Female => female} ; + pl = pl + } ; + } ; + + mkInterj : Str -> Interj + = \s -> lin Interj {s=s} ; + } From 1308eb85d90d0694ef06d8c2f02fcdbcf64d9ac3 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 7 Aug 2025 13:35:36 +0200 Subject: [PATCH 002/169] fix type errors detected by the new type checker --- src/afrikaans/ResAfr.gf | 2 +- src/bantu/DiffBantu.gf | 2 +- src/catalan/ParadigmsCat.gf | 4 ++-- src/dutch/ResDut.gf | 4 ++-- src/finnish/StemFin.gf | 4 ++-- src/french/ParadigmsFre.gf | 4 ++-- src/greek/ResGre.gf | 4 ++-- src/italian/ParadigmsIta.gf | 4 ++-- src/latin/ConjunctionLat.gf | 12 ++++-------- src/latin/ExtraLat.gf | 10 +++++----- src/latin/QuestionLat.gf | 5 ----- src/latin/ResLat.gf | 34 ++++++++-------------------------- src/latin/SentenceLat.gf | 8 ++++---- src/maltese/ResMlt.gf | 2 +- src/portuguese/ParadigmsPor.gf | 4 ++-- src/romance/CommonRomance.gf | 4 ++-- src/romanian/ResRon.gf | 4 ++-- src/sindhi/MorphoSnd.gf | 1 - src/slovak/ResSlo.gf | 1 - src/spanish/ParadigmsSpa.gf | 4 ++-- src/swahili/ParadigmsSwa.gf | 6 +++--- 21 files changed, 47 insertions(+), 76 deletions(-) diff --git a/src/afrikaans/ResAfr.gf b/src/afrikaans/ResAfr.gf index 560a17c5..1aee7656 100644 --- a/src/afrikaans/ResAfr.gf +++ b/src/afrikaans/ResAfr.gf @@ -315,7 +315,7 @@ param --2 Transformations between parameter types - oper Agr : Type = {g : Gender ; n : Number ; p : Person} ; + oper Agr : PType = {g : Gender ; n : Number ; p : Person} ; oper agrP3 : Number -> Agr = agrgP3 Neutr ; diff --git a/src/bantu/DiffBantu.gf b/src/bantu/DiffBantu.gf index 03468dec..68750391 100644 --- a/src/bantu/DiffBantu.gf +++ b/src/bantu/DiffBantu.gf @@ -19,7 +19,7 @@ param oper -- AGRE = {g : Gender ; n : Number ; p : Person} ; - Agre : Type = {g : Gender ; n : Number ; p : Person} ; + Agre : PType = {g : Gender ; n : Number ; p : Person} ; agre : Gender -> Number -> Person -> Agre = \g,n,p -> {g = g ; n = n ; p = p} ; agrFeatures : Agr -> Agre = \a -> case a of {Ag g n p => {g = g ; n = n ; p = p}} ; diff --git a/src/catalan/ParadigmsCat.gf b/src/catalan/ParadigmsCat.gf index 62713fd7..2e4c9744 100644 --- a/src/catalan/ParadigmsCat.gf +++ b/src/catalan/ParadigmsCat.gf @@ -42,14 +42,14 @@ flags -- To abstract over gender names, we define the following identifiers. oper - Gender : Type ; + Gender : PType ; masculine : Gender ; feminine : Gender ; -- To abstract over number names, we define the following. - Number : Type ; + Number : PType ; singular : Number ; plural : Number ; diff --git a/src/dutch/ResDut.gf b/src/dutch/ResDut.gf index 1996380f..6a980920 100644 --- a/src/dutch/ResDut.gf +++ b/src/dutch/ResDut.gf @@ -512,8 +512,8 @@ param -- IL2018-02: a whole lot of times we only need number and person, not gender -- maybe switch to PersAgr at some point and halve the number of fields - oper PersAgr : Type = {n : Number ; p : Person} ; - oper Agr : Type = PersAgr ** {g : Gender} ; + oper PersAgr : PType = {n : Number ; p : Person} ; + oper Agr : PType = PersAgr ** {g : Gender} ; oper pagr : Agr -> PersAgr = \agr -> { p = agr.p ; n = agr.n } ; diff --git a/src/finnish/StemFin.gf b/src/finnish/StemFin.gf index 5237e55b..5e02a9ad 100644 --- a/src/finnish/StemFin.gf +++ b/src/finnish/StemFin.gf @@ -62,7 +62,7 @@ oper -- Adjectives --- could be made more compact by pressing comparison forms down to a few oper - SAForm : Type = AForm ; + SAForm : PType = AForm ; oper SAdj = {s : SAForm => Str ; h : Harmony} ; @@ -112,7 +112,7 @@ oper -- verbs oper - SVForm : Type = VForm ; + SVForm : PType = VForm ; SVerb : Type = {s : SVForm => Str ; h : Harmony} ; ollaSVerbForms : SVForm => Str = verbOlla.s ; diff --git a/src/french/ParadigmsFre.gf b/src/french/ParadigmsFre.gf index 8310ac1d..cd54e63f 100644 --- a/src/french/ParadigmsFre.gf +++ b/src/french/ParadigmsFre.gf @@ -40,14 +40,14 @@ resource ParadigmsFre = -- To abstract over gender names, we define the following identifiers. oper - Gender : Type ; + Gender : PType ; masculine : Gender ; feminine : Gender ; -- To abstract over number names, we define the following. - Number : Type ; --% + Number : PType ; --% singular : Number ; --% plural : Number ; --% diff --git a/src/greek/ResGre.gf b/src/greek/ResGre.gf index 45d1d79d..7a8a26cd 100644 --- a/src/greek/ResGre.gf +++ b/src/greek/ResGre.gf @@ -39,7 +39,7 @@ resource ResGre = ParamX ** open Prelude in { oper - AAgr : Type = {g : Gender ; n : Number} ; + AAgr : PType = {g : Gender ; n : Number} ; VP = { v : Verb ; clit,clit2 : Str ; comp : Agr => Str ; isNeg : Bool ; voice : Voice ; aspect :Aspect} ; @@ -1826,4 +1826,4 @@ resource ResGre = ParamX ** open Prelude in { - \ No newline at end of file + diff --git a/src/italian/ParadigmsIta.gf b/src/italian/ParadigmsIta.gf index 36165db9..f3efde47 100644 --- a/src/italian/ParadigmsIta.gf +++ b/src/italian/ParadigmsIta.gf @@ -40,14 +40,14 @@ resource ParadigmsIta = BeschIta ** -- To abstract over gender names, we define the following identifiers. oper - Gender : Type ; + Gender : PType ; masculine : Gender ; feminine : Gender ; -- To abstract over number names, we define the following. - Number : Type ; + Number : PType ; singular : Number ; plural : Number ; diff --git a/src/latin/ConjunctionLat.gf b/src/latin/ConjunctionLat.gf index 8fc2b540..dad07563 100644 --- a/src/latin/ConjunctionLat.gf +++ b/src/latin/ConjunctionLat.gf @@ -72,9 +72,7 @@ concrete ConjunctionLat of Conjunction = -- BaseS : S -> S -> ListS BaseS x y = { - s = \\c => { init = combineSentence x ; last = combineSentence y } ; - p = y.p ; - t = y.t + s = \\c => { init = combineSentence x ; last = combineSentence y } } ; -- ConsS : S -> ListS -> ListS @@ -83,11 +81,9 @@ concrete ConjunctionLat of Conjunction = ConsS s ss = { s = \\co => { init = \\s,a,d,v,c,o => coord co { init = (ss.s ! co).init ! s ! a ! d ! v ! c ! o ; last = (ss.s ! co).last ! s ! a ! d ! v ! c ! o } ; - last = combineSentence s } ; - p = s.p ; - t = s.t + last = combineSentence s } } ; - + -- BaseAdv : Adv -> Adv -> ListAdv BaseAdv x y = { @@ -137,7 +133,7 @@ concrete ConjunctionLat of Conjunction = -- lincat - [S] = { s : Coordinator => {init,last : SAdvPos => AdvPos => DetPos => VPos => ComplPos => Order => Str} ; p : Pol ; t : Tense } ; -- TO FIX + [S] = { s : Coordinator => {init,last : SAdvPos => AdvPos => DetPos => VPos => ComplPos => Order => Str} } ; -- TO FIX [Adv] = { s: Coordinator => {init,last : Str}} ; [NP] = { s : Coordinator => {init,last : PronDropForm => AdvPos => DetPos => Case => Str} ; g : Gender ; n : Number ; p : Person ; isBase : Bool } ; [AP] = {s : Coordinator => {init,last : Agr => Str } } ; diff --git a/src/latin/ExtraLat.gf b/src/latin/ExtraLat.gf index 49542611..f188b9f7 100644 --- a/src/latin/ExtraLat.gf +++ b/src/latin/ExtraLat.gf @@ -58,24 +58,24 @@ concrete ExtraLat of ExtraLatAbs = UttS_VInS s = { s = combineSentence s ! SAPreS ! APreV ! DPostN ! VInS ! CPostV ! SVO } ; TestRCl t p cl = { - s = \\g,n => combineSentence (combineClause (cl.s ! g ! n) (lin Tense t) t.a (lin Pol p) VQFalse) ; + s = \\g,n => combineSentence (combineClause (t.s++p.s) (cl.s ! g ! n) t.t t.a p.p VQFalse) ; } ; -- UseRCl_OSV : Temp -> Pol -> RCl -> RS ; UseRCl_OSV t p cl = { - s = \\g,n => combineSentence (combineClause (cl.s ! g ! n) (lin Tense t) t.a (lin Pol p) VQFalse) ! SAPreO ! APreV ! DPreN ! VReg ! CPostV ! OSV ; + s = \\g,n => combineSentence (combineClause (t.s++p.s) (cl.s ! g ! n) t.t t.a p.p VQFalse) ! SAPreO ! APreV ! DPreN ! VReg ! CPostV ! OSV ; } ; -- UseRCl_OVS : Temp -> Pol -> RCl -> RS ; UseRCl_OVS t p cl = { - s = \\g,n => combineSentence (combineClause (cl.s ! g ! n) (lin Tense t) t.a (lin Pol p) VQFalse) ! SAPreO ! APreV ! DPreN ! VReg ! CPostV ! OVS ; -- SAPreO APreV DPreN VReg CPostV OVS + s = \\g,n => combineSentence (combineClause (t.s++p.s) (cl.s ! g ! n) t.t t.a p.p VQFalse) ! SAPreO ! APreV ! DPreN ! VReg ! CPostV ! OVS ; -- SAPreO APreV DPreN VReg CPostV OVS } ; -- UseRCl_SOV : Temp -> Pol -> RCl -> RS ; UseRCl_SOV t p cl = { - s = \\g,n => combineSentence (combineClause (cl.s ! g ! n) (lin Tense t) t.a (lin Pol p) VQFalse) ! SAPreS ! APreV ! DPreN ! VReg ! CPostV ! SOV ; + s = \\g,n => combineSentence (combineClause (t.s++p.s) (cl.s ! g ! n) t.t t.a p.p VQFalse) ! SAPreS ! APreV ! DPreN ! VReg ! CPostV ! SOV ; } ; -- UseRCl_SVO : Temp -> Pol -> RCl -> RS ; UseRCl_SVO t p cl = { - s = \\g,n => combineSentence (combineClause (cl.s ! g ! n) (lin Tense t) t.a (lin Pol p) VQFalse) ! SAPreS ! APreV ! DPreN ! VReg ! CPostV ! SVO ; + s = \\g,n => combineSentence (combineClause (t.s++p.s) (cl.s ! g ! n) t.t t.a p.p VQFalse) ! SAPreS ! APreV ! DPreN ! VReg ! CPostV ! SVO ; } ; -- PrepNP_DPostN : Prep -> NP -> Adv ; -- in the house PrepNP_DPostN prep np = diff --git a/src/latin/QuestionLat.gf b/src/latin/QuestionLat.gf index 75ab28dc..5888daf7 100644 --- a/src/latin/QuestionLat.gf +++ b/src/latin/QuestionLat.gf @@ -21,14 +21,9 @@ concrete QuestionLat of Question = CatLat ** open ResLat, IrregLat, Prelude in { compl = vp.compl ! Ag Masc ip.n Nom ; -- default gender masculine det = { s, sp = \\_ => [] ; n = ip.n } ; } ; - -- let qcl = mkQuestion { s = ip.s ! Nom } ( mkClause emptyNP vp ) - -- in {s = \\t,a,b,qd => qcl.s ! t ! a ! b ! qd} ; -- QuestSlash : IP -> ClSlash -> QCl ; -- whom does John love -- TO FIX - - -- QuestSlash ip slash = - -- mkQuestion (ss ( ip.s ! Acc) ) slash ; -- QuestIAdv : IAdv -> Cl -> QCl QuestIAdv iadv cl = cl ** { q = iadv.s } ; diff --git a/src/latin/ResLat.gf b/src/latin/ResLat.gf index c284e847..67d55879 100644 --- a/src/latin/ResLat.gf +++ b/src/latin/ResLat.gf @@ -1323,19 +1323,17 @@ oper compl = vp.compl ; adv = vp.adv ++ (a.s ! Posit) } ; - + -- clauses Sentence = { s,o,neg : AdvPos => Str ; -- Subject, verbphrase, object and negation particle plus potential adverb v : AdvPos => Str ; - t : C.Tense ; -- tense marker - p : C.Pol ; -- polarity marker sadv : Str ; -- sentence adverb¡ det : { s , sp : Case => Str } ; compl : Str -- verb complement } ; - + Clause = {s : AdvPos => Str ; o : AdvPos => Str ; @@ -1344,7 +1342,7 @@ oper compl : Str ; neg : Polarity => AdvPos => Str ; adv : Str } ; - QClause = {s : C.Tense => Anteriority => C.Pol => QForm => Str} ; + QClause = {s : Tense => Anteriority => Polarity => QForm => Str} ; mkClause : NounPhrase -> VerbPhrase -> Clause = \np,vp -> let @@ -1390,14 +1388,12 @@ oper adv = "" } ; - combineClause : Clause -> C.Tense -> Anteriority -> C.Pol -> VQForm -> Sentence = \cl,tense,anter,pol,vqf -> + combineClause : Str -> Clause -> Tense -> Anteriority -> Polarity -> VQForm -> Sentence = \params,cl,tense,anter,pol,vqf -> cl ** { - v = \\advpos => cl.v ! tense.t ! anter ! vqf ! advpos ; - neg = cl.neg ! pol.p ; - sadv = cl.adv ; - t = tense ; - p = pol ; + v = \\advpos => params ++ cl.v ! tense ! anter ! vqf ! advpos ; + neg = cl.neg ! pol ; + sadv = cl.adv } ; combineSentence : Sentence -> ( SAdvPos => AdvPos => DetPos => VPos => ComplPos => Order => Str ) = \s -> @@ -1420,37 +1416,31 @@ oper -- complosp is the position of the verb complement \\sadvpos,advpos,detpos,verbpos,complpos,order => case order of { SVO => - s.t.s ++ s.p.s ++ advpres sadvpos ++ (detpren detpos).s ! Nom ++ s.s ! advpos ++ (verbins verbpos) ! advpos ++ (detpostn detpos).s ! Nom ++ (detpren detpos).sp ! Nom ++ advpreneg sadvpos ++ s.neg ! advpos ++ advprev sadvpos ++ (complprev complpos) ++ (verbreg verbpos) ! advpos ++ (complpostv complpos) ++ advpreo sadvpos ++ s.o ! advpos; VSO => - s.t.s ++ s.p.s ++ advpreneg sadvpos ++ s.neg ! advpos ++ advprev sadvpos ++ (complprev complpos) ++ (verbreg verbpos) ! advpos ++ (complpostv complpos) ++ advpres sadvpos ++ (detpren detpos).s ! Nom ++ s.s ! advpos ++ (verbins verbpos) ! advpos ++ (detpostn detpos).s ! Nom ++ (detpren detpos).sp ! Nom ++ advpreo sadvpos ++ s.o ! advpos; VOS => - s.t.s ++ s.p.s ++ advpreneg sadvpos ++ s.neg ! advpos ++ advprev sadvpos ++ (complprev complpos) ++ (verbreg verbpos) ! advpos ++ (complpostv complpos) ++ advpreo sadvpos ++ s.o ! advpos ++ advpres sadvpos ++ (detpren detpos).s ! Nom ++ s.s ! advpos ++ (verbins verbpos) ! advpos ++ (detpostn detpos).s ! Nom ++ (detpren detpos).sp ! Nom ; OSV => - s.t.s ++ s.p.s ++ advpreo sadvpos ++ s.o ! advpos ++ advpres sadvpos ++ (detpren detpos).s ! Nom ++ s.s ! advpos ++ (verbins verbpos) ! advpos ++ (detpostn detpos).s ! Nom ++ (detpren detpos).sp ! Nom++ advpreneg sadvpos ++ s.neg ! advpos ++ advprev sadvpos ++ (complprev complpos) ++ (verbreg verbpos) ! advpos ++ (complpostv complpos) ; OVS => - s.t.s ++ s.p.s ++ advpreo sadvpos ++ s.o ! advpos ++ advpreneg sadvpos ++ s.neg ! advpos ++ advprev sadvpos ++ (complprev complpos) ++ (verbreg verbpos) ! advpos ++ (complpostv complpos) ++ advpres sadvpos ++ (detpren detpos).s ! Nom ++ s.s ! advpos ++ (verbins verbpos) ! advpos ++ (detpostn detpos).s ! Nom ++ (detpren detpos).sp ! Nom ; SOV => - s.t.s ++ s.p.s ++ advpres sadvpos ++ (detpren detpos).s ! Nom ++ s.s ! advpos ++ (verbins verbpos) ! advpos ++ (detpostn detpos).s ! Nom ++ (detpren detpos).sp ! Nom ++ advpreo sadvpos ++ s.o ! advpos ++ advpreneg sadvpos ++ s.neg ! advpos ++ @@ -1458,15 +1448,7 @@ oper } ; defaultSentence : Sentence -> Order => Str = \s -> combineSentence s ! SAPreS ! APreV ! DPreN ! VReg ! CPreV ; - - -- questions - mkQuestion : SS -> Clause -> QClause = \ss,cl -> { - s = \\tense,anter,pol,form => case form of { - QDir => ss.s ++ (defaultSentence (combineClause cl tense anter pol VQFalse)) ! OVS ; - QIndir => ss.s ++ (combineSentence (combineClause cl tense anter pol VQFalse)) ! SAPreO ! APreO ! DPreN ! VReg ! CPreV ! OSV - } - }; - + negation : Polarity -> Str = \p -> case p of { Pos => [] ; Neg => "non" diff --git a/src/latin/SentenceLat.gf b/src/latin/SentenceLat.gf index 4dc5e164..a88a4d6e 100644 --- a/src/latin/SentenceLat.gf +++ b/src/latin/SentenceLat.gf @@ -45,12 +45,12 @@ concrete SentenceLat of Sentence = CatLat ** open Prelude, ResLat in { -- EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr -- UseCl t p cl = -- Temp -> Pol-> Cl -> S - (combineClause cl (lin Tense t) t.a (lin Pol p) VQFalse) ; + (combineClause (t.s++p.s) cl t.t t.a p.p VQFalse) ; - -- UseQCl : Temp -> Pol -> QCl -> QS -- maybe use mkQuestion + -- UseQCl : Temp -> Pol -> QCl -> QS UseQCl t p cl = { - s = let qs = combineClause cl t t.a p VQTrue in + s = let qs = combineClause (t.s++p.s) cl t.t t.a p.p VQTrue in \\q => case q of { QDir => cl.q ++ defaultSentence qs ! SVO ; -- t.s ++ p.s ++ cl.q ++ cl.s ! PreV ++ cl.v ! t.t ! t.a ! VQTrue ! PreV ! CPostV ++ cl.o ! PreV ; QIndir => cl.q ++ defaultSentence qs ! SOV -- t.s ++ p.s ++ cl.q ++ cl.s ! PreV ++ cl.o ! PreV ++ cl.v ! t.t ! t.a ! VQTrue ! PreV ! CPostV @@ -58,7 +58,7 @@ concrete SentenceLat of Sentence = CatLat ** open Prelude, ResLat in { } ; -- UseRCl : Temp -> Pol -> RCl -> RS ; UseRCl t p cl = { - s = \\g,n => defaultSentence (combineClause (cl.s ! g ! n) (lin Tense t) t.a (lin Pol p) VQFalse) ! SOV ; + s = \\g,n => defaultSentence (combineClause (t.s++p.s) (cl.s ! g ! n) t.t t.a p.p VQFalse) ! SOV ; -- s = \\r => t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! r ; -- c = cl.c } ; diff --git a/src/maltese/ResMlt.gf b/src/maltese/ResMlt.gf index 8fc49a55..291161db 100644 --- a/src/maltese/ResMlt.gf +++ b/src/maltese/ResMlt.gf @@ -33,7 +33,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in { if_then_else Definiteness b Definite Indefinite ; -- Agreement system corrected based on comments by [AZ] - Agr : Type = { n : Number ; p : Person ; g : Gender } ; + Agr : PType = { n : Number ; p : Person ; g : Gender } ; -- Make Agr from raw ingredients mkAgr : Number -> Person -> Gender -> Agr = \n,p,g -> {n = n ; p = p ; g = g} ; diff --git a/src/portuguese/ParadigmsPor.gf b/src/portuguese/ParadigmsPor.gf index fe1fbd93..a26425be 100644 --- a/src/portuguese/ParadigmsPor.gf +++ b/src/portuguese/ParadigmsPor.gf @@ -46,7 +46,7 @@ resource ParadigmsPor = -- To abstract over gender names, we define the following identifiers. oper - Gender : Type ; + Gender : PType ; Gender = MorphoPor.Gender ; masculine, male : Gender ; @@ -57,7 +57,7 @@ oper -- To abstract over number names, we define the following. - Number : Type ; + Number : PType ; Number = MorphoPor.Number ; singular : Number ; diff --git a/src/romance/CommonRomance.gf b/src/romance/CommonRomance.gf index eb751a11..1298e1da 100644 --- a/src/romance/CommonRomance.gf +++ b/src/romance/CommonRomance.gf @@ -112,9 +112,9 @@ param -- Agreement of adjectives, verb phrases, relative pronouns, and predeterminers. oper - AAgr : Type = {g : Gender ; n : Number} ; + AAgr : PType = {g : Gender ; n : Number} ; - Agr : Type = {g : Gender ; n : Number ; p : Person} ; + Agr : PType = {g : Gender ; n : Number ; p : Person} ; complAgr : Agr -> {g : Gender ; n : Number} = \a -> {g = a.g ; n = a.n} ; diff --git a/src/romanian/ResRon.gf b/src/romanian/ResRon.gf index 0057a078..fbb5bfa6 100644 --- a/src/romanian/ResRon.gf +++ b/src/romanian/ResRon.gf @@ -504,11 +504,11 @@ oper -- for relatives - AAgr : Type = {g : Gender ; n : Number} ; + AAgr : PType = {g : Gender ; n : Number} ; -- for agreement between subject and predicate - Agr : Type = AAgr ** {p : Person} ; + Agr : PType = AAgr ** {p : Person} ; -- clause building function : diff --git a/src/sindhi/MorphoSnd.gf b/src/sindhi/MorphoSnd.gf index 3415e07b..2efe97d6 100644 --- a/src/sindhi/MorphoSnd.gf +++ b/src/sindhi/MorphoSnd.gf @@ -175,7 +175,6 @@ oper ----2 Pronouns --PronForm = {s:Pronoun => Str}; - DemonPronForm = {s:DemPronForm => Str}; mkDemonPronForm : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16:Str) -> DemPronForm = \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16 -> { s = table { diff --git a/src/slovak/ResSlo.gf b/src/slovak/ResSlo.gf index ba5f59f1..c6ea6043 100644 --- a/src/slovak/ResSlo.gf +++ b/src/slovak/ResSlo.gf @@ -894,7 +894,6 @@ oper msloc, msins, fsins, ampnom, fpnom, -- mpacc = fpacc = fpnom - pgen, pdat, -- NOT msins like AdjForms pins : Str } ; diff --git a/src/spanish/ParadigmsSpa.gf b/src/spanish/ParadigmsSpa.gf index d2ac452d..81a98f83 100644 --- a/src/spanish/ParadigmsSpa.gf +++ b/src/spanish/ParadigmsSpa.gf @@ -40,14 +40,14 @@ resource ParadigmsSpa = -- To abstract over gender names, we define the following identifiers. oper - Gender : Type ; + Gender : PType ; masculine : Gender ; feminine : Gender ; -- To abstract over number names, we define the following. - Number : Type ; + Number : PType ; singular : Number ; plural : Number ; diff --git a/src/swahili/ParadigmsSwa.gf b/src/swahili/ParadigmsSwa.gf index 0e53099f..8584e99c 100644 --- a/src/swahili/ParadigmsSwa.gf +++ b/src/swahili/ParadigmsSwa.gf @@ -9,7 +9,7 @@ resource ParadigmsSwa = open in { oper - Gender : Type ; + Gender : PType ; a_wa : Gender ; --m-wa u_i : Gender ; --m-mi li_ya : Gender ; --ji-ma @@ -26,14 +26,14 @@ oper -- To abstract over number names, we define the following. - Number : Type ; + Number : PType ; singular : Number ; plural : Number ; -- To abstract over case names, we define the following. - Case : Type ; --% + Case : PType ; --% nominative : Case ; --% locative : Case ; --% From cdc1108a36348f3115e80f6a76ccc981121505dd Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Mon, 11 Aug 2025 14:15:19 +0200 Subject: [PATCH 003/169] update GitHub workflows for GF 3.12 + newer runner --- .github/workflows/release.yml | 17 ++++++++++++----- .github/workflows/test.yml | 12 ++++++------ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4c1f9643..1f113e0d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,19 +8,26 @@ on: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-24.04 env: - GF_VERSION: 3.10-1 + GF_VERSION: 3.12 DEST: gf-rgl-${{ github.event.inputs.tag }} steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 + + - name: Download GF + uses: dsaltares/fetch-gh-release-asset@1.1.1 + with: + repo: 'GrammaticalFramework/gf-core' + version: 'tags/${{ env.GF_VERSION }}' + file: 'gf-${{ env.GF_VERSION }}-ubuntu-24.04.deb' + token: ${{ secrets.GITHUB_TOKEN }} - name: Install GF run: | - curl -s https://www.grammaticalframework.org/download/gf_${GF_VERSION}_amd64.deb -o gf.deb - sudo dpkg -i gf.deb + sudo dpkg -i gf-${GF_VERSION}-ubuntu-24.04.deb - name: Build RGL run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 251055ec..9a270764 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,26 +6,26 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 env: - GF_VERSION: 3.11 + GF_VERSION: 3.12 DEST: gf-rgl steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Download GF uses: dsaltares/fetch-gh-release-asset@1.1.1 with: repo: 'GrammaticalFramework/gf-core' - version: 'tags/${{ env.GF_VERSION }}' - file: 'gf-${{ env.GF_VERSION }}-ubuntu-20.04.deb' + version: 'tags/release-${{ env.GF_VERSION }}' + file: 'gf-${{ env.GF_VERSION }}-ubuntu-24.04.deb' token: ${{ secrets.GITHUB_TOKEN }} - name: Install GF run: | - sudo dpkg -i gf-${GF_VERSION}-ubuntu-20.04.deb + sudo dpkg -i gf-${GF_VERSION}-ubuntu-24.04.deb - name: Build RGL run: | From a0a8d9987275a4fe0a5b44147868010b4b13f43d Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Mon, 11 Aug 2025 14:43:38 +0200 Subject: [PATCH 004/169] don't use record extension with PTypes the current (non-majestic) runtime doesn't support it --- src/dutch/ResDut.gf | 2 +- src/romanian/ResRon.gf | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/dutch/ResDut.gf b/src/dutch/ResDut.gf index 6a980920..c8d009f4 100644 --- a/src/dutch/ResDut.gf +++ b/src/dutch/ResDut.gf @@ -513,7 +513,7 @@ param -- IL2018-02: a whole lot of times we only need number and person, not gender -- maybe switch to PersAgr at some point and halve the number of fields oper PersAgr : PType = {n : Number ; p : Person} ; - oper Agr : PType = PersAgr ** {g : Gender} ; + oper Agr : PType = {n : Number ; p : Person ; g : Gender} ; oper pagr : Agr -> PersAgr = \agr -> { p = agr.p ; n = agr.n } ; diff --git a/src/romanian/ResRon.gf b/src/romanian/ResRon.gf index fbb5bfa6..6497092e 100644 --- a/src/romanian/ResRon.gf +++ b/src/romanian/ResRon.gf @@ -502,13 +502,13 @@ oper -- Agreements : --- for relatives - +-- for relatives + AAgr : PType = {g : Gender ; n : Number} ; - + -- for agreement between subject and predicate - - Agr : PType = AAgr ** {p : Person} ; + + Agr : PType = {g : Gender ; n : Number ; p : Person} ; -- clause building function : From 3d0aa460c58b7cc297b981e7129a3e26d01dc33f Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Mon, 11 Aug 2025 15:32:05 +0200 Subject: [PATCH 005/169] build morphodict --- Setup.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Setup.sh b/Setup.sh index 3f2c2a97..7b99fb47 100755 --- a/Setup.sh +++ b/Setup.sh @@ -59,6 +59,7 @@ gfc="${gf} --batch --quiet --gf-lib-path=${dist}" mkdir -p "${dist}/prelude" mkdir -p "${dist}/present" mkdir -p "${dist}/alltenses" +mkdir -p "${dist}/morphodict" # Build: prelude echo "Building [prelude]" @@ -68,6 +69,7 @@ ${gfc} --gfo-dir="${dist}"/prelude "${src}"/prelude/*.gf # Gather all language modules for building modules_present= modules_alltenses= +modules_morphodict= for lang in $langs; do for mod in $modules_langs $modules_api; do if [ $mod == "Compatibility" ] && [[ "$langs_compat" != *"$lang"* ]]; then continue; fi @@ -80,8 +82,12 @@ for lang in $langs; do modules_alltenses="${modules_alltenses} ${file}" done done + file="${src}/morphodict/MorphoDict${lang}.gf" + if [ ! -f "$file" ]; then continue; fi + modules_morphodict="${modules_morphodict} ${file}" done + # Build: present echo "Building [present]" if [ $verbose = true ]; then echo $modules_present; fi @@ -96,6 +102,13 @@ for module in $modules_alltenses; do ${gfc} --no-pmcfg --gfo-dir="${dist}"/alltenses "${module}" done +# Build: morphodict +echo "Building [morphodict]" +if [ $verbose = true ]; then echo $modules_morphodict; fi +for module in $modules_morphodict; do + ${gfc} --no-pmcfg --gfo-dir="${dist}"/morphodict "${module}" +done + # Copy if [ $dest == $dist ]; then exit 0; fi echo "Copying to ${dest}" From 145e1affe94bde6169bed93cdedcd80a12b699cb Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 12 Aug 2025 11:13:29 +0200 Subject: [PATCH 006/169] added missing bits and pieces --- src/api/TryHun.gf | 16 ++++++++- src/hungarian/CatHun.gf | 2 +- src/hungarian/NumeralHun.gf | 8 ++++- src/hungarian/ParadigmsHun.gf | 64 ++++++++++++++++++++++++++++++++-- src/hungarian/StructuralHun.gf | 4 +-- 5 files changed, 86 insertions(+), 8 deletions(-) diff --git a/src/api/TryHun.gf b/src/api/TryHun.gf index 2674f64c..7a176408 100644 --- a/src/api/TryHun.gf +++ b/src/api/TryHun.gf @@ -1,3 +1,17 @@ --# -path=.:../hungarian:../common:../abstract:../prelude -resource TryHun = SyntaxHun, LexiconHun, ParadigmsHun - [mkAdv] ; +resource TryHun = SyntaxHun-[mkAdN], LexiconHun, ParadigmsHun - [mkAdv,mkAdN] ** + open (P = ParadigmsHun) in { + +oper + mkAdv = overload SyntaxHun { + mkAdv : Str -> Adv = P.mkAdv ; + } ; + + mkAdN = overload { + mkAdN : CAdv -> AdN = SyntaxHun.mkAdN ; + mkAdN : Str -> AdN = P.mkAdN ; + } ; + +} + diff --git a/src/hungarian/CatHun.gf b/src/hungarian/CatHun.gf index 2247e484..6bb0f8cc 100644 --- a/src/hungarian/CatHun.gf +++ b/src/hungarian/CatHun.gf @@ -117,7 +117,7 @@ concrete CatHun of Cat = CommonX - [Adv] ** open ResHun, Prelude in { N, N2, N3 = ResHun.Noun ; - PN = ResHun.NounPhrase ; + PN,LN,GN,SN = ResHun.NounPhrase ; Adv = {s : Str ; isPre : Bool} ; diff --git a/src/hungarian/NumeralHun.gf b/src/hungarian/NumeralHun.gf index 58405457..0bed49a2 100644 --- a/src/hungarian/NumeralHun.gf +++ b/src/hungarian/NumeralHun.gf @@ -6,7 +6,10 @@ lincat Sub10 = LinDigit ; Sub100, Sub1000, - Sub1000000 = ResHun.Numeral ; + Sub1000000, + Sub1000000000, + Sub1000000000000 = ResHun.Numeral ; + lin -- TODO: Add case inflection and ordinal forms to all numerals @@ -72,6 +75,9 @@ lin {s = table {p => n.s ! Attrib ++ "ezer" ++ m.s ! p} ; n = numNumber ; numtype = IsNum} ; + pot3as4 n = n ; + pot4as5 n = n ; + oper LinDigit : Type = {s : DForm*Place => Str ; n : Number} ; diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index 69f285e7..344436c1 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -31,6 +31,14 @@ oper -- mkPN : N -> Number -> PN ; } ; + mkLN : overload { + mkLN : Str -> PN ; -- Singular PN out of a string + mkLN : Str -> Number -> PN -- PN with a given number + } ; + + mkGN : Str -> PN ; -- GN out of a string + mkSN : Str -> SN ; -- SN out of a string + --2 Adjectives mkA : overload { @@ -110,6 +118,9 @@ oper mkAdA : Str -> AdA = \s -> lin AdA {s = s} ; + mkAdN : Str -> AdN + = \s -> lin AdN {s = s} ; + --. ------------------------------------------------------------------------------- @@ -184,6 +195,14 @@ oper -- mkPN : N -> Number -> PN ; } ; + mkLN = overload { + mkLN : Str -> LN = \s -> lin LN (defNP s Sg) ; + mkLN : Str -> Number -> LN = \s,n -> lin LN (defNP s n) ; + } ; + + mkGN s = lin GN (defNP s Sg) ; + mkSN s = lin SN (defNP s Sg) ; + mkA = overload { mkA : (sgnom : Str) -> A = \s -> lin A (mkAdj s) ; mkA : (sgnom,sgacc : Str) -> A = \nom,acc -> @@ -213,17 +232,54 @@ oper copula = ResHun.copula ; + mkVS = overload { + mkVS : Str -> VS = \v -> lin VS (mkVerb v) ; + mkVS : V -> VS = \v -> lin VS v ; + } ; + + mkVQ = overload { + mkVQ : Str -> VQ = \v -> lin VQ (mkVerb v) ; + mkVQ : V -> VQ = \v -> lin VQ v ; + } ; + + mkVA = overload { + mkVA : Str -> VA = \v -> lin VA (mkVerb v) ; + mkVA : V -> VA = \v -> lin VA v ; + } ; + mkV2 = overload { mkV2 : (plain : Str) -> V2 = \v2 -> lin V2 (mkVerb2 v2) ; mkV2 : V -> V2 = vtov2 ; } ; + mkVV = overload { + mkVV : Str -> VV = \v -> lin VV (mkVerb2 v) ; + mkVV : V -> VV = \v -> lin VV (vtov2 v) ; + } ; + + mkV2A = overload { + mkV2A : Str -> V2A = \v -> lin V2A (mkVerb2 v) ; + mkV2A : V -> V2A = \v -> lin V2A (vtov2 v) ; + } ; + + mkV2V = overload { + mkV2V : Str -> V2V = \v -> lin V2V (mkVerb2 v) ; + mkV2V : V -> V2V = \v -> lin V2V (vtov2 v) ; + } ; + + mkV2S = overload { + mkV2S : Str -> V2S = \v -> lin V2S (mkVerb2 v) ; + mkV2S : V -> V2S = \v -> lin V2S (vtov2 v) ; + } ; + + mkV2Q = overload { + mkV2Q : Str -> V2Q = \v -> lin V2Q (mkVerb2 v) ; + mkV2Q : V -> V2Q = \v -> lin V2Q (vtov2 v) ; + } ; + mkV3 = overload { mkV3 : (plain : Str) -> V3 = \v3 -> lin V3 (mkVerb3 v3) ; } ; - -- - -- mkVV = overload { - -- } ; mkPrep = overload { mkPrep : (e : Str) -> Prep @@ -234,6 +290,8 @@ oper casePrep : Case -> Prep = \c -> lin Prep (ResHun.caseAdp c) ; + + mkInterj : Str -> Interj = \s -> lin Interj {s = s} ; -------------------------------------------------------------------------------- } diff --git a/src/hungarian/StructuralHun.gf b/src/hungarian/StructuralHun.gf index 08d8babd..711ca6f0 100644 --- a/src/hungarian/StructuralHun.gf +++ b/src/hungarian/StructuralHun.gf @@ -121,12 +121,12 @@ lin under_Prep = nomAdp "alatt" ; -- Pron -- Pronouns are closed class, no constructor in ParadigmsHun. - -- it_Pron = i_Pron = pronTable ! ; youPol_Pron, youSg_Pron = pronTable ! ; he_Pron, - she_Pron = pronTable ! ; + she_Pron, + it_Pron = pronTable ! ; we_Pron = pronTable ! ; youPl_Pron = pronTable ! ; they_Pron = pronTable ! ; From 5aa5718ca543bd2861f1b22c09768d48ad0333e0 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 12 Aug 2025 15:00:45 +0200 Subject: [PATCH 007/169] add MorphoDict to languages.csv --- languages.csv | 116 +++++++++++++++++++++++++------------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/languages.csv b/languages.csv index e7787c3e..bfd38d97 100644 --- a/languages.csv +++ b/languages.csv @@ -1,58 +1,58 @@ -Code,Name,Directory,Functor,Unlexer,Present,All,Try,Symbolic,Compatibility,Synopsis -Afr,Afrikaans,afrikaans,,,,,,n,,y -Amh,Amharic,amharic,,,,,n,n,,n -Ara,Arabic,arabic,,,,,,y,,y -Bul,Bulgarian,bulgarian,,,y,,,,,y -Cat,Catalan,catalan,Romance,,y,,,,y,y -Cgg,Rukiga,rukiga,,,y,y,n,n,y,y -Chi,Chinese (simplified),chinese,,,,,,,,y -Cze,Czech,czech,,,,,,n,,y -Dan,Danish,danish,Scand,,y,,,,,y -Dut,Dutch,dutch,,,y,,,,,y -Eng,English,english,,,y,,,,y,y -Est,Estonian,estonian,,,,,,,,y -Eus,Basque,basque,,,,,,,,y -Fin,Finnish,finnish,,,y,,,,y,y -Fre,French,french,Romance,,y,,,,y,y -Ger,German,german,,,y,,,,,y -Grc,Ancient Greek,ancient_greek,,,y,,n,n,,n -Gre,Greek,greek,,,,,,,,y -Heb,Hebrew,hebrew,,,,,n,n,,n -Hin,Hindi,hindi,Hindustani,to_devanagari,y,,,,,y -Hrv,Croatian,croatian,,,,,,y,,n -Hun,Hungarian,hungarian,,,n,y,y,y,n,n -Ice,Icelandic,icelandic,,,,,,n,,y -Ina,Interlingua,interlingua,,,y,,n,n,,n -Ita,Italian,italian,Romance,,y,,,,y,y -Jpn,Japanese,japanese,,,,,,,,y -Kaz,Kazakh,kazakh,,,,y,n,n,n,y -Kor,Korean,korean,,,n,y,y,y,n,n -Lat,Latin,latin,,,,,y,y,n,y -Lav,Latvian,latvian,,,,,,,y,y -Mkd,Macedonian,macedonian,,,,y,n,n,n,y -May,Malay,malay,,,y,,,,n,y -Mlt,Maltese,maltese,,,,,,,,y -Mon,Mongolian,mongolian,,,,,,n,,y -Nep,Nepali,nepali,,,,,,n,,y -Nno,Norwegian (nynorsk),nynorsk,,,y,,,,,y -Nor,Norwegian (bokmål),norwegian,Scand,,y,,,,,y -Pes,Persian,persian,,,,,,,,y -Pnb,Punjabi,punjabi,,,y,,,,,y -Pol,Polish,polish,,,,,,,,y -Por,Portuguese,portuguese,Romance,,y,,,,y,y -Ron,Romanian,romanian,,,y,,,,,y -Rus,Russian,russian,,,y,,,,,y -Slo,Slovak,slovak,,,,,,n,,y -Slv,Slovenian,slovenian,,,,,n,n,,n -Snd,Sindhi,sindhi,,,,,,,,y -Spa,Spanish,spanish,Romance,,y,,,,y,y -Sqi,Albanian,albanian,,,,y,n,n,n,y -Swa,Swahili,swahili,Bantu,,,y,n,n,n,n -Swe,Swedish,swedish,Scand,,y,,,,y,y -Tam,Tamil,tamil,n,n,n,n,n,n,n,n -Tel,Telugu,telugu,,,y,n,n,n,,n -Tha,Thai,thai,,to_thai,,,,,,y -Tur,Turkish,turkish,,,y,,,n,,n -Urd,Urdu,urdu,Hindustani,,,,,,,y -Som,Somali,somali,,,,,n,n,,n -Zul,Zulu,zulu,,,,,n,n,,n +Code,Name,Directory,Functor,Unlexer,Present,All,Try,Symbolic,Compatibility,Synopsis,MorphoDict +Afr,Afrikaans,afrikaans,,,,,,n,,y,n +Amh,Amharic,amharic,,,,,n,n,,n,n +Ara,Arabic,arabic,,,,,,y,,y,y +Bul,Bulgarian,bulgarian,,,y,,,,,y,n +Cat,Catalan,catalan,Romance,,y,,,,y,y,n +Cgg,Rukiga,rukiga,,,y,y,n,n,y,y,n +Chi,Chinese (simplified),chinese,,,,,,,,y,y +Cze,Czech,czech,,,,,,n,,y,n +Dan,Danish,danish,Scand,,y,,,,,y,n +Dut,Dutch,dutch,,,y,,,,,y,n +Eng,English,english,,,y,,,,y,y,y +Est,Estonian,estonian,,,,,,,,y,n +Eus,Basque,basque,,,,,,,,y,n +Fin,Finnish,finnish,,,y,,,,y,y,y +Fre,French,french,Romance,,y,,,,y,y,y +Ger,German,german,,,y,,,,,y,y +Grc,Ancient Greek,ancient_greek,,,y,,n,n,,n,n +Gre,Greek,greek,,,,,,,,y,n +Heb,Hebrew,hebrew,,,,,n,n,,n,n +Hin,Hindi,hindi,Hindustani,to_devanagari,y,,,,,y,n +Hrv,Croatian,croatian,,,,,,y,,n,n +Hun,Hungarian,hungarian,,,n,y,y,y,n,n,n +Ice,Icelandic,icelandic,,,,,,n,,y,n +Ina,Interlingua,interlingua,,,y,,n,n,,n,n +Ita,Italian,italian,Romance,,y,,,,y,y,y +Jpn,Japanese,japanese,,,,,,,,y,n +Kaz,Kazakh,kazakh,,,,y,n,n,n,y,n +Kor,Korean,korean,,,n,y,y,y,n,n,n +Lat,Latin,latin,,,,,y,y,n,y,n +Lav,Latvian,latvian,,,,,,,y,y,n +Mkd,Macedonian,macedonian,,,,y,n,n,n,y,n +May,Malay,malay,,,y,,,,n,y,n +Mlt,Maltese,maltese,,,,,,,,y,n +Mon,Mongolian,mongolian,,,,,,n,,y,n +Nep,Nepali,nepali,,,,,,n,,y,n +Nno,Norwegian (nynorsk),nynorsk,,,y,,,,,y,n +Nor,Norwegian (bokmål),norwegian,Scand,,y,,,,,y,n +Pes,Persian,persian,,,,,,,,y,n +Pnb,Punjabi,punjabi,,,y,,,,,y,n +Pol,Polish,polish,,,,,,,,y,n +Por,Portuguese,portuguese,Romance,,y,,,,y,y,y +Ron,Romanian,romanian,,,y,,,,,y,n +Rus,Russian,russian,,,y,,,,,y,n +Slo,Slovak,slovak,,,,,,n,,y,n +Slv,Slovenian,slovenian,,,,,n,n,,n,n +Snd,Sindhi,sindhi,,,,,,,,y,n +Spa,Spanish,spanish,Romance,,y,,,,y,y,y +Sqi,Albanian,albanian,,,,y,n,n,n,y,n +Swa,Swahili,swahili,Bantu,,,y,n,n,n,n,n +Swe,Swedish,swedish,Scand,,y,,,,y,y,y +Tam,Tamil,tamil,n,n,n,n,n,n,n,n,n +Tel,Telugu,telugu,,,y,n,n,n,,n,n +Tha,Thai,thai,,to_thai,,,,,,y,n +Tur,Turkish,turkish,,,y,,,n,,n,n +Urd,Urdu,urdu,Hindustani,,,,,,,y,n +Som,Somali,somali,,,,,n,n,,n,n +Zul,Zulu,zulu,,,,,n,n,,n,n From b93fd7f051e0f3b9e5c23585b52cfd718ed6d56c Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 12 Aug 2025 15:13:19 +0200 Subject: [PATCH 008/169] add morphodict into Setup.hs --- Config.hs | 2 ++ Setup.hs | 26 +++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Config.hs b/Config.hs index b671eacb..07350748 100644 --- a/Config.hs +++ b/Config.hs @@ -25,6 +25,7 @@ data LangInfo = LangInfo , langSymbolic :: Bool , langCompatibility :: Bool , langSynopsis :: Bool -- ^ include in RGL synopsis + , langMorphodict :: Bool } deriving (Show,Eq) -- | Load language information from default config file @@ -55,6 +56,7 @@ loadLangsFrom configFile = do , langSymbolic = boolBit bits 8 True , langCompatibility = boolBit bits 9 False , langSynopsis = boolBit bits 10 False + , langMorphodict = boolBit bits 11 False } -- | Separate a string on a character diff --git a/Setup.hs b/Setup.hs index 2227ccb2..d1203b7f 100644 --- a/Setup.hs +++ b/Setup.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE CPP #-} +{-# LANGUAGE CPP, LambdaCase #-} -- | Main build script for RGL @@ -150,11 +150,12 @@ getRGLBuildSubDir mode = case mode of Present -> "present" AllTenses -> "alltenses" + MorphoDict -> "morphodict" ------------------------------------------------------------------------------- -- Build modes -data Mode = Present | AllTenses +data Mode = Present | AllTenses | MorphoDict deriving (Show,Eq) all_modes :: [String] @@ -187,6 +188,7 @@ rglCommands = , RGLCommand "lang" False $ gfcp [l,s] , RGLCommand "api" False $ gfcp [t,sc] , RGLCommand "compat" False $ gfcp [c] + , RGLCommand "morphodict" False $ gfcp [m] -- Special command, invoked when command ends in .gf , RGLCommand "modules" False $ \modes args bi -> do @@ -223,14 +225,20 @@ rglCommands = s mode args = (symbol,optml mode langTry args) c mode args = (compat,optml AllTenses langCompatibility args) t mode args = (try,optml mode langTry args) + m mode args = (morphodict,optml mode langMorphodict args) sc mode args = (symbolic,optml mode langSymbolic args) optml :: Mode -> (LangInfo -> Bool) -> [String] -> ([LangInfo] -> [LangInfo]) optml mode pred args = \langsAll -> - let langsDefault = filter (if mode == Present then langPresent else const True) (filter pred langsAll) + let langsDefault = filter (mode2langinfo mode) (filter pred langsAll) in getOptLangs langsAll langsDefault args + mode2langinfo = \case + Present -> langPresent + MorphoDict -> langMorphodict + _ -> const True + ------------------------------------------------------------------------------- -- Getting module paths/names @@ -260,6 +268,9 @@ syntax l = sourceDir "api" ("Syntax" ++ langCode l ++ ".gf") symbolic :: LangInfo -> FilePath symbolic l = sourceDir "api" ("Symbolic" ++ langCode l ++ ".gf") +morphodict :: LangInfo -> FilePath +morphodict l = sourceDir "morphodict" ("MorphoDict" ++ langCode l ++ ".gf") + ------------------------------------------------------------------------------- -- Argument helpers @@ -302,8 +313,9 @@ getOptMode args = else explicit_modes where explicit_modes = - [Present|have "present"]++ - [AllTenses|have "alltenses"] + [Present | have "present"] ++ + [AllTenses | have "alltenses"] ++ + [MorphoDict | have "morphodict"] have mode = mode `elem` args -- | List of languages overriding the default definitions @@ -366,8 +378,8 @@ gfcn :: Info -> Mode -> String -> [FilePath] -> IO () gfcn bi mode summary files = do let dir = getRGLBuildDir bi mode preproc = case mode of - Present -> "--preproc=mkPresent" - AllTenses -> "" + Present -> "--preproc=mkPresent" + _ -> "" createDirectoryIfMissing True dir if length files > 0 then do From de5468e40a773ae486c6e565ad32c541c526da4e Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 12 Aug 2025 15:13:51 +0200 Subject: [PATCH 009/169] control morphodict from Makefile (easy to comment out if desired) --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 50c3b493..cae50da4 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ default: build copy build: src/*/*.gf ifneq (, $(RUNGHC)) $(RUNGHC) build + $(RUNGHC) build morphodict else ./Setup.sh endif @@ -26,6 +27,7 @@ endif copy: ifneq (, $(RUNGHC)) $(RUNGHC) copy + $(RUNGHC) copy morphodict endif install: build copy From 51cb9c30912344f0cce23bba8075fdc50c15dec9 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 12 Aug 2025 15:29:06 +0200 Subject: [PATCH 010/169] the latest tag is called release-3.12, use it here --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1f113e0d..6c547b54 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: uses: dsaltares/fetch-gh-release-asset@1.1.1 with: repo: 'GrammaticalFramework/gf-core' - version: 'tags/${{ env.GF_VERSION }}' + version: 'tags/release-${{ env.GF_VERSION }}' file: 'gf-${{ env.GF_VERSION }}-ubuntu-24.04.deb' token: ${{ secrets.GITHUB_TOKEN }} From e24e0cc7ce2ac3c7bfab3e74b384ba3abab3f0f8 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 18 Aug 2025 18:42:40 +0200 Subject: [PATCH 011/169] number agreement when there is no preposition --- src/french/ExtendFre.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/french/ExtendFre.gf b/src/french/ExtendFre.gf index 6ffaeaa8..059cc0d6 100644 --- a/src/french/ExtendFre.gf +++ b/src/french/ExtendFre.gf @@ -101,7 +101,7 @@ lin CompoundN a b = lin N { NRelPrep p => prepCase (CPrep p) ; -- tasa de suicidio NRelNoPrep => [] -- connessione internet = internet connection } ++ - a.s ! Sg ; + a.s ! n ; g = b.g ; relType = b.relType } ; From 338c347d7ca7b4b16b8868ad4665b98a8618c72e Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 18 Aug 2025 19:13:53 +0200 Subject: [PATCH 012/169] another version of CompoundN --- src/french/ExtendFre.gf | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/french/ExtendFre.gf b/src/french/ExtendFre.gf index 059cc0d6..57ec59ac 100644 --- a/src/french/ExtendFre.gf +++ b/src/french/ExtendFre.gf @@ -98,10 +98,9 @@ lin ApposNP np1 np2 = np1 ** { -- guessed by KA lin CompoundN a b = lin N { s = \\n => b.s ! n ++ case b.relType of { - NRelPrep p => prepCase (CPrep p) ; -- tasa de suicidio - NRelNoPrep => [] -- connessione internet = internet connection - } ++ - a.s ! n ; + NRelPrep p => prepCase (CPrep p) ++ a.s ! Sg ; -- tasa de suicidio + NRelNoPrep => a.s ! n -- connessione internet = internet connection + } ; g = b.g ; relType = b.relType } ; From f2afe03303d905400ef548dd5fdeb4202071a115 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 22 Aug 2025 14:03:29 +0200 Subject: [PATCH 013/169] fix example in arabic documentation --- src/arabic/ParadigmsAra.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 3faaeff5..c708fa5f 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -153,7 +153,7 @@ resource ParadigmsAra = open nisbaA : Str -> Adj ; -- Forms relative adjectives with the suffix ِيّ. Takes either the stem and adds يّ, or the whole word ending in يّ and just adds declension. - idaafaA : N -> A -> A ; -- Forms adjectives of type غَيْرُ طَيِّبٍ 'not good'. Noun is in construct state but inflects in case. Adjective is in genitive, but inflects in gender, number and state. + idaafaA : N -> A -> A ; -- Forms adjectives of type غَيْرُ لَذيذٍ 'not tasty'. Noun is in construct state but inflects in case. Adjective is in genitive, but inflects in gender, number and state. degrA : (masc,fem,plur : Str) -> A ; -- Adjective where masculine singular is also the comparative form. Indeclinable singular, basic triptote declension for dual and plural. From 97227181fe4a619e7a23dfcacd191f9ccd380de3 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 22 Aug 2025 14:27:10 +0200 Subject: [PATCH 014/169] =?UTF-8?q?(Ara)=20add=20the=20preposition=20ka=20?= =?UTF-8?q?'=D9=83=D9=8E'=20which=20attaches=20to=20its=20head?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/arabic/MorphoAra.gf | 8 +++++--- src/arabic/ParadigmsAra.gf | 10 ++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/arabic/MorphoAra.gf b/src/arabic/MorphoAra.gf index dbb4f752..6cbb76de 100644 --- a/src/arabic/MorphoAra.gf +++ b/src/arabic/MorphoAra.gf @@ -70,6 +70,8 @@ oper _ => "لِ" }) Dat ; biPrep : Preposition = mkPrefix "بِ" ; + kaPrep : Preposition = mkPrefix "كَ" ; + accPrep : Preposition = mkPreposition [] Acc ; -- default object case in VP genPrep : Preposition = mkPreposition [] Gen ; -- default object case in N2 @@ -502,17 +504,17 @@ oper AComp d c => comp ! Sg ! d ! c } } ; - + mascFemCompAdj : (kabir, kabira, akbar : Str) -> Adj = \kabir, kabira, akbar -> ntablesAdj (positAdj kabir ! Masc) (positAdj kabir ! Fem) (positAdj akbar ! Masc) ; - + mascFemAdj : (kabir, kabira : Str) -> Adj = \kabir, kabira -> mascFemCompAdj kabir kabira kabir ; ---- comp mascAdj : (kabir : Str) -> Adj = \kabir -> mascFemAdj kabir (kabir + "َة") ; - + ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index c708fa5f..1c6540e3 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -99,7 +99,7 @@ resource ParadigmsAra = open mkLN = overload { mkLN : Str -> LN -- Predictable LN from a Str: fem hum if ends in ة, otherwise masc hum. = \s -> lin LN (N.UsePN (smartPN s)) ; - mkLN : Str -> Gender -> LN + mkLN : Str -> Gender -> LN = \s, g -> lin LN (N.UsePN (smartPN s ** {g = g})) ; mkLN : N -> LN -- Make a LN out of N. The LN is in construct state. = \n -> lin LN (N.MassNP (N.UseN n)) ; @@ -202,6 +202,7 @@ resource ParadigmsAra = open liPrep : Prep ; -- The preposition لِ, binding to its head. Vowel assimilation and def. article elision implemented. biPrep : Prep ; -- The preposition بِ, binding to its head. + kaPrep : Prep ; -- The preposition كَ, binding to its head. noPrep : Prep ; -- No preposition at all, "complement case" is nominative. --2 Conjunctions @@ -375,6 +376,7 @@ resource ParadigmsAra = open noPrep = lin Prep ResAra.noPrep ; biPrep = lin Prep ResAra.biPrep ; liPrep = lin Prep ResAra.liPrep ; + kaPrep = lin Prep ResAra.kaPrep ; casePrep : Case -> Prep = \c -> lin Prep {s=[]; c=c; binds=False} ; @@ -914,7 +916,7 @@ oper wmkN : {sg, pl : Str ; g : Gender} -> N = \r -> mkN r.sg r.pl r.g nohum ; --- hum/nohum not in Wikt wmkN : {sg : Str} -> N - = \r -> smartN r.sg ; + = \r -> smartN r.sg ; wmkN : {sg : Str ; g : Gender ; root : Str} -> N = \r -> smartN r.sg ** {g = r.g} ; ---- wmkN : {sg : Str; g : Gender} -> N @@ -924,8 +926,8 @@ oper wmkN : {sg : Str; pl : Str} -> N = \r -> mkN r.sg r.pl masc nohum ; ---- ** {g = (smartN r.sg).g} ; wmkN : {sg, pl : Str ; root : Str} -> N - = \r -> mkN r.sg r.pl masc nohum ; ---- - wmkN : {sg : Str; root : Str} -> N + = \r -> mkN r.sg r.pl masc nohum ; ---- + wmkN : {sg : Str; root : Str} -> N = \r -> smartN r.sg ; } ; From e3c9a0045efd298b294b7bc9f611b90c222904ed Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 22 Aug 2025 14:50:35 +0200 Subject: [PATCH 015/169] (Ger) Fix complement number agreement with AgPlPol MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Sie sind ein Vogel", not *Sie sind Vögel --- src/german/VerbGer.gf | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/german/VerbGer.gf b/src/german/VerbGer.gf index b2e5b557..6d89b332 100644 --- a/src/german/VerbGer.gf +++ b/src/german/VerbGer.gf @@ -113,12 +113,18 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in { CompNP np = {s = \\_ => np.s ! False ! Nom ++ np.rc ; ext = np.ext} ; CompAdv a = {s = \\_ => a.s ; ext = []} ; - CompCN cn = {s = \\a => case numberAgr a of { - Sg => "ein" + pronEnding ! GSg cn.g ! Nom ++ cn.s ! Strong ! Sg ! Nom ++ cn.rc ! Sg ; --- - Pl => cn.s ! Strong ! Pl ! Nom ++ cn.rc ! Pl --- - } ; - ext = cn.adv ++ cn.ext - } ; + CompCN cn = { + s = let + sg : Str = "ein" + pronEnding ! GSg cn.g ! Nom ++ cn.s ! Strong ! Sg ! Nom ++ cn.rc ! Sg ; --- + pl : Str = cn.s ! Strong ! Pl ! Nom ++ cn.rc ! Pl + in table { + AgPlPol => sg ; + a => case numberAgr a of { + Sg => sg ; + Pl => pl } + } ; + ext = cn.adv ++ cn.ext + } ; AdvVP vp adv = insertAdv adv.s vp ; ExtAdvVP vp adv = insertAdv (embedInCommas adv.s) vp ; From 94472bc4aba1b2f7283dd31465dd94435dddd8f3 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 22 Aug 2025 19:43:13 +0200 Subject: [PATCH 016/169] make sure that DocumentationLat is always compiled --- src/latin/LangLat.gf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/latin/LangLat.gf b/src/latin/LangLat.gf index 09e9d919..e69db27c 100644 --- a/src/latin/LangLat.gf +++ b/src/latin/LangLat.gf @@ -5,6 +5,7 @@ concrete LangLat of Lang = ParadigmsLat, LexiconLat -- ConstructionLat + ,DocumentationLat --# notpresent ** { flags startcat = Phr ; unlexer = text ; lexer = text ; From 1f3a35a95c2a2f27e9c462fc028a29f384f75aef Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 15 Aug 2025 20:40:33 +0200 Subject: [PATCH 017/169] start Gla by cloning the template --- src/gaelic/AdjectiveGla.gf | 68 ++++++ src/gaelic/AdverbGla.gf | 39 ++++ src/gaelic/AllGla.gf | 6 + src/gaelic/CatGla.gf | 121 ++++++++++ src/gaelic/ConjunctionGla.gf | 147 ++++++++++++ src/gaelic/ConstructionGla.gf | 117 ++++++++++ src/gaelic/ExtendGla.gf | 35 +++ src/gaelic/GrammarGla.gf | 17 ++ src/gaelic/IdiomGla.gf | 56 +++++ src/gaelic/LangGla.gf | 5 + src/gaelic/LexiconGla.gf | 419 ++++++++++++++++++++++++++++++++++ src/gaelic/MissingGla.gf | 313 +++++++++++++++++++++++++ src/gaelic/NamesGla.gf | 36 +++ src/gaelic/NounGla.gf | 210 +++++++++++++++++ src/gaelic/NumeralGla.gf | 115 ++++++++++ src/gaelic/ParadigmsGla.gf | 211 +++++++++++++++++ src/gaelic/PhraseGla.gf | 27 +++ src/gaelic/QuestionGla.gf | 105 +++++++++ src/gaelic/RelativeGla.gf | 24 ++ src/gaelic/ResGla.gf | 275 ++++++++++++++++++++++ src/gaelic/SentenceGla.gf | 76 ++++++ src/gaelic/StructuralGla.gf | 171 ++++++++++++++ src/gaelic/SymbolGla.gf | 73 ++++++ src/gaelic/VerbGla.gf | 114 +++++++++ 24 files changed, 2780 insertions(+) create mode 100644 src/gaelic/AdjectiveGla.gf create mode 100644 src/gaelic/AdverbGla.gf create mode 100644 src/gaelic/AllGla.gf create mode 100644 src/gaelic/CatGla.gf create mode 100644 src/gaelic/ConjunctionGla.gf create mode 100644 src/gaelic/ConstructionGla.gf create mode 100644 src/gaelic/ExtendGla.gf create mode 100644 src/gaelic/GrammarGla.gf create mode 100644 src/gaelic/IdiomGla.gf create mode 100644 src/gaelic/LangGla.gf create mode 100644 src/gaelic/LexiconGla.gf create mode 100644 src/gaelic/MissingGla.gf create mode 100644 src/gaelic/NamesGla.gf create mode 100644 src/gaelic/NounGla.gf create mode 100644 src/gaelic/NumeralGla.gf create mode 100644 src/gaelic/ParadigmsGla.gf create mode 100644 src/gaelic/PhraseGla.gf create mode 100644 src/gaelic/QuestionGla.gf create mode 100644 src/gaelic/RelativeGla.gf create mode 100644 src/gaelic/ResGla.gf create mode 100644 src/gaelic/SentenceGla.gf create mode 100644 src/gaelic/StructuralGla.gf create mode 100644 src/gaelic/SymbolGla.gf create mode 100644 src/gaelic/VerbGla.gf diff --git a/src/gaelic/AdjectiveGla.gf b/src/gaelic/AdjectiveGla.gf new file mode 100644 index 00000000..39c79158 --- /dev/null +++ b/src/gaelic/AdjectiveGla.gf @@ -0,0 +1,68 @@ +concrete AdjectiveGla of Adjective = CatGla ** open ResGla, Prelude in { + + flags optimize=all_subs ; + + lin + + -- : AP -> Adv -> AP ; -- warm by nature + AdvAP ap adv = ap ** { + s = ap.s ++ adv.s ; + } ; + + -- : A -> AP ; + PositA a = a ** { + compar = [] ; + } ; + + -- : A -> NP -> AP ; + ComparA a np = a ** { + compar = np.s + } ; + + -- : A2 -> NP -> AP ; -- married to her + -- ComplA2 a2 np = a2 ** { } ; + + -- : A2 -> AP ; -- married to itself + -- ReflA2 a2 = a2 ** { } ; + + -- : A2 -> AP ; -- married + UseA2 = PositA ; + + -- : A -> AP ; -- warmer + -- UseComparA a = a ** { + -- s = \\af => "???" ++ a.s ! af ; + -- compar = [] + -- } ; + + + -- : CAdv -> AP -> NP -> AP ; -- as cool as John + -- CAdvAP adv ap np = ap ** { } ; + +-- The superlative use is covered in $Ord$. + + -- : Ord -> AP ; -- warmest + -- AdjOrd ord = ord ** { + -- compar = [] + -- } ; + -- AdjOrd : Ord -> AP = + AdjOrd ord = ord ; + +-- Sentence and question complements defined for all adjectival +-- phrases, although the semantics is only clear for some adjectives. + + -- : AP -> SC -> AP ; -- good that she is here + -- SentAP ap sc = ap ** { + -- s = \\af => ap.s ! af ++ sc.s + -- } ; + +-- An adjectival phrase can be modified by an *adadjective*, such as "very". + + -- : AdA -> AP -> AP ; + -- AdAP ada ap = ap ** { } ; + + +-- It can also be postmodified by an adverb, typically a prepositional phrase. + + + +} diff --git a/src/gaelic/AdverbGla.gf b/src/gaelic/AdverbGla.gf new file mode 100644 index 00000000..dd89e853 --- /dev/null +++ b/src/gaelic/AdverbGla.gf @@ -0,0 +1,39 @@ +concrete AdverbGla of Adverb = CatGla ** open ResGla, ParadigmsGla, Prelude in { +{- +lin + + -- : A -> Adv ; + PositAdvAdj adj = + + -- : CAdv -> A -> NP -> Adv ; -- more warmly than John + ComparAdvAdj cadv a np = + + -- : CAdv -> A -> S -> Adv ; -- more warmly than he runs + ComparAdvAdjS cadv a s = + + -- : Prep -> NP -> Adv ; + PrepNP prep np = ; + +-- Adverbs can be modified by 'adadjectives', just like adjectives. + + -- : AdA -> Adv -> Adv ; -- very quickly + AdAdv ada adv = adv ** + +-- Like adverbs, adadjectives can be produced by adjectives. + + -- : A -> AdA ; -- extremely + PositAdAAdj a = + + -- Subordinate clauses can function as adverbs. + + -- : Subj -> S -> Adv ; + SubjS subj s = {s = subj.s ++ s.s} ; + +-- Comparison adverbs also work as numeral adverbs. + + -- : CAdv -> AdN ; -- less (than five) + AdnCAdv cadv = ; + +-} + +} diff --git a/src/gaelic/AllGla.gf b/src/gaelic/AllGla.gf new file mode 100644 index 00000000..29b533cb --- /dev/null +++ b/src/gaelic/AllGla.gf @@ -0,0 +1,6 @@ +--# -path=.:../abstract:../common:../prelude + +concrete AllGla of AllGlaAbs = + LangGla, + ExtendGla + ; diff --git a/src/gaelic/CatGla.gf b/src/gaelic/CatGla.gf new file mode 100644 index 00000000..a8032fe9 --- /dev/null +++ b/src/gaelic/CatGla.gf @@ -0,0 +1,121 @@ +concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { + + flags optimize=all_subs ; + + lincat + +--2 Sentences and clauses +-- Constructed in SentenceGla, and also in IdiomGla + S = SS ; + QS = SS ; + RS = SS ; + -- relative sentence. Tense and polarity fixed, + -- but agreement may depend on the CN/NP it modifies. + + Cl = ResGla.LinCl ; + ClSlash = SS ; + SSlash = SS ; -- sentence missing NP; e.g. "she has looked at" + Imp = SS ; -- imperative e.g. "look at this" + +--2 Questions and interrogatives + +-- Constructed in QuestionGla. + QCl = SS ; + IComp = SS ; -- interrogative complement of copula e.g. "where" + IDet = SS ; -- interrogative determiner e.g. "how many" + IQuant = SS ; -- interrogative quantifier e.g. "which" + IP = SS ; -- interrogative pronoun e.g. "who" + +--2 Subord clauses and pronouns + + RCl = SS ; + RP = SS ; + +--2 Verb phrases + +-- Constructed in VerbGla. + VP = ResGla.LinVP ; + VPSlash = SS ; + Comp = SS ; + +--2 Adjectival phrases + +-- Constructed in AdjectiveGla. + AP = SS ; + +--2 Nouns and noun phrases + +-- Constructed in NounGla. +-- Many atomic noun phrases e.g. "everybody" +-- are constructed in StructuralGla. + + CN = ResGla.LinCN ; + NP = ResGla.LinNP ; + Pron = SS ; -- NB. Pronouns need enough info to become NP or Quant. + Det = ResGla.LinDet ; -- s : Str , n : Number + Predet = SS ; + Quant = ResGla.LinQuant ; -- s : Number => Str + Num = ResGla.LinDet ; + Card = ResGla.LinDet ; + ACard = SS ; + Ord = SS ; + DAP = SS ; + + +--2 Numerals + +-- Constructed in NumeralGla. + + Numeral = ResGla.LinNumeral ; + Digits = ResGla.LinNumeral ; + +--2 Structural words + +-- Constructed in StructuralGla. + Conj = Coordination.ConjunctionDistr ** { + n : Number -- The number of the NP that results from + -- coordinating a list of NPs with that Conj. + } ; -- "[Ann and Bob] are children" → and_Conj.n = Pl + Subj = SS ; + Prep = SS ; + + + +--2 Words of open classes + +-- These are constructed in LexiconGla and in +-- additional lexicon modules. + + -- TODO: eventually different lincats + VS, -- sentence-complement verb e.g. "claim" + VQ, -- question-complement verb e.g. "wonder" + VA, -- adjective-complement verb e.g. "look" + V = ResGla.LinV ; + + VV -- verb-phrase-complement verb e.g. "want" + = SS ; + + V2A, -- verb with NP and AP complement e.g. "paint" + V2V, -- verb with NP and V complement e.g. "cause" + V2S, -- verb with NP and S complement e.g. "tell" + V2Q, -- verb with NP and Q complement e.g. "ask" + V2 = SS ; + V3 = SS ; + + A = SS ; + A2 = SS ; + + N = ResGla.LinN ; + N2 = ResGla.LinN ; + N3 = ResGla.LinN ; + PN = SS ; + + -- From the Names module, not in the official API as of 2023-08 + GN = SS ; -- Given name, e.g. "George" + SN = SS ; -- Second name, e.g. "Washington" + LN = SS ; -- Location name, e.g. "Sweden" + + linref + Cl = linCl ; + +} diff --git a/src/gaelic/ConjunctionGla.gf b/src/gaelic/ConjunctionGla.gf new file mode 100644 index 00000000..7191a485 --- /dev/null +++ b/src/gaelic/ConjunctionGla.gf @@ -0,0 +1,147 @@ +concrete ConjunctionGla of Conjunction = + CatGla ** open ResGla, Coordination, Prelude in { + + flags optimize=all_subs ; + + {- Conjunction for category X needs four things: + lincat [X] + lin BaseX + lin ConsX + lin ConjX + + For example, if X is defined as + + lincat X = {s : Number => Str ; g : Gender} ; + + then [X] will split its s field into two, and retain its other fields as is: + + lincat [X] = {s1,s2 : Number => Str ; g : Gender} ; + + Let us look at a simple case: Adv is of type {s : Str} + Then [Adv] is {s1,s2 : Str}. + BaseAdv, ConsAdv and ConjAdv can all use functions defined in prelude/Coordination: + + BaseAdv = twoSS ; + ConsAdv = consrSS comma ; + ConjAdv = conjunctSS ; + + --} + +----------------------------------------------------------------------------- +-- Adverb and other simple {s : Str} types. +lincat + [Adv],[AdV],[IAdv] = {s1,s2 : Str} ; + +lin + BaseAdv, BaseAdV, BaseIAdv = twoSS ; + ConsAdv, ConsAdV, ConsIAdv = consrSS comma ; + ConjAdv, ConjAdV, ConjIAdv = conjunctDistrSS ; + +{- + +----------------------------------------------------------------------------- +-- S is sometimes already {s : Str}, sometimes open for mood or word order. +-- Simply take the lincat of S, and split the s field into s1 and s2. +-- Then make sure that all of the other fields are retained. + +lincat + [S] = {s1, s2 : …} ; + +lin + -- : S -> S -> ListS ; -- John walks, Mary runs + BaseS x y = + + -- : S -> ListS -> ListS ; -- John walks, Mary runs, Bill swims + ConsS x xs = + + -- : Conj -> ListS -> S ; -- he walks and she runs + ConjS conj xs = + +----------------------------------------------------------------------------- +-- RS is variable on … and has inherent … +-- RS can modify CNs, which are open for …, and have inherent … + +lincat + [RS] = {s1,s2 : … => Str} ; + +lin + + -- : RS -> RS -> ListRS ; -- who walks, whom I know + BaseRS x y = + + -- : RS -> ListRS -> ListRS ; -- who wals, whom I know, who is here + ConsRS x xs = + + -- : Conj -> ListRS -> RS ; -- who walks and whose mother runs + ConjRS conj xs = + + +----------------------------------------------------------------------------- +-- NP is variable on … and has inherent … + +lincat + [NP] = {s1, s2 : …} ; + +lin + -- : NP -> NP -> ListNP ; -- John, Mary + BaseNP x y = + + -- : NP -> ListNP -> ListNP ; -- John, Mary, Bill + ConsNP x xs = + + -- : Conj -> ListNP -> NP ; -- she or we + ConjNP conj xs = + +----------------------------------------------------------------------------- +-- AP is variable on … and has an inherent … + +lincat + [AP] = {s1, s2 : …} ; + +lin + -- : AP -> AP -> ListAP ; -- red, white + BaseAP x y = + + -- : AP -> ListAP -> ListAP ; -- red, white, blue + ConsAP x xs = + + -- : Conj -> ListAP -> AP ; -- cold and warm + ConjAP conj xs = + +----------------------------------------------------------------------------- +-- CN is variable on … +-- CN conjunction is not in the API, so this can be lower prio + +lincat + [CN] = {s1, s2 : …} ; + +lin + -- : CN -> CN -> ListCN ; -- man, woman + BaseCN x y = + + -- : CN -> ListCN -> ListCN ; -- man, woman, child + ConsCN x xs = + + -- : Conj -> ListCN -> CN ; -- man and woman + ConjCN conj xs = + +----------------------------------------------------------------------------- +-- Det and DAP +-- Note that there is no [Det], the way to coordinate Dets is to make them +-- into DAP first, using Noun.DetDAP : Det -> DAP ; +-- DAP ("three small") isn't used in any API functions, so lower prio. + +lincat + [DAP] = {s1, s2 : …} ; + +lin + -- : DAP -> DAP -> ListDAP ; + BaseDAP x y = + + -- : DAP -> ListDAP -> ListDAP ; + ConsDAP xs x = + + -- : Conj -> ListDAP -> Det ; -- his or her + ConjDet conj xs = +-} +} diff --git a/src/gaelic/ConstructionGla.gf b/src/gaelic/ConstructionGla.gf new file mode 100644 index 00000000..abf40ebf --- /dev/null +++ b/src/gaelic/ConstructionGla.gf @@ -0,0 +1,117 @@ +concrete ConstructionGla of Construction = CatGla ** open ParadigmsGla in { + +lincat + Timeunit = N ; + Weekday = N ; + Monthday = NP ; + Month = N ; + Year = NP ; +{- +lin + + timeunitAdv n time = + let n_card : Card = n ; + n_hours_NP : NP = mkNP n_card time ; + in SyntaxGla.mkAdv for_Prep n_hours_NP | mkAdv (n_hours_NP.s ! R.npNom) ; + + weekdayPunctualAdv w = ; -- on Sunday + weekdayHabitualAdv w = ; -- on Sundays + weekdayNextAdv w = -- next Sunday + weekdayLastAdv w = -- last Sunday + + monthAdv m = mkAdv in_Prep (mkNP m) ; + yearAdv y = mkAdv in_Prep y ; + dayMonthAdv d m = ; -- on 17 Gla + monthYearAdv m y = ; -- in Gla 2012 + dayMonthYearAdv d m y = ; -- on 17 Gla 2013 + + intYear = symb ; + intMonthday = symb ; + +lincat Language = N ; + +lin InLanguage l = mkAdv ???_Prep (mkNP l) ; + +lin + weekdayN w = w ; + monthN m = m ; + + weekdayPN w = mkPN w ; + monthPN m = mkPN m ; + + languageCN l = mkCN l ; + languageNP l = mkNP l ; + + +oper mkLanguage : Str -> N = \s -> mkN s ; + +---------------------------------------------- +---- lexicon of special names + +lin second_Timeunit = mkN "second" ; +lin minute_Timeunit = mkN "minute" ; +lin hour_Timeunit = mkN "hour" ; +lin day_Timeunit = mkN "day" ; +lin week_Timeunit = mkN "week" ; +lin month_Timeunit = mkN "month" ; +lin year_Timeunit = mkN "year" ; + +lin monday_Weekday = mkN "Monday" ; +lin tuesday_Weekday = mkN "Tuesday" ; +lin wednesday_Weekday = mkN "Wednesday" ; +lin thursday_Weekday = mkN "Thursday" ; +lin friday_Weekday = mkN "Friday" ; +lin saturday_Weekday = mkN "Saturday" ; +lin sunday_Weekday = mkN "Sunday" ; + +lin january_Month = mkN "January" ; +lin february_Month = mkN "February" ; +lin march_Month = mkN "March" ; +lin april_Month = mkN "April" ; +lin may_Month = mkN "May" ; +lin june_Month = mkN "June" ; +lin july_Month = mkN "July" ; +lin august_Month = mkN "August" ; +lin september_Month = mkN "September" ; +lin october_Month = mkN "October" ; +lin november_Month = mkN "November" ; +lin december_Month = mkN "December" ; + +lin afrikaans_Language = mkLanguage "Afrikaans" ; +lin amharic_Language = mkLanguage "Amharic" ; +lin arabic_Language = mkLanguage "Arabic" ; +lin bulgarian_Language = mkLanguage "Bulgarian" ; +lin catalan_Language = mkLanguage "Catalan" ; +lin chinese_Language = mkLanguage "Chinese" ; +lin danish_Language = mkLanguage "Danish" ; +lin dutch_Language = mkLanguage "Dutch" ; +lin english_Language = mkLanguage "Euslish" ; +lin estonian_Language = mkLanguage "Estonian" ; +lin finnish_Language = mkLanguage "Finnish" ; +lin french_Language = mkLanguage "French" ; +lin german_Language = mkLanguage "German" ; +lin greek_Language = mkLanguage "Greek" ; +lin hebrew_Language = mkLanguage "Hebrew" ; +lin hindi_Language = mkLanguage "Hindi" ; +lin japanese_Language = mkLanguage "Japanese" ; +lin italian_Language = mkLanguage "Italian" ; +lin latin_Language = mkLanguage "Latin" ; +lin latvian_Language = mkLanguage "Latvian" ; +lin maltese_Language = mkLanguage "Maltese" ; +lin nepali_Language = mkLanguage "Nepali" ; +lin norwegian_Language = mkLanguage "Norwegian" ; +lin persian_Language = mkLanguage "Persian" ; +lin polish_Language = mkLanguage "Polish" ; +lin punjabi_Language = mkLanguage "Punjabi" ; +lin romanian_Language = mkLanguage "Romanian" ; +lin russian_Language = mkLanguage "Russian" ; +lin sindhi_Language = mkLanguage "Sindhi" ; +lin spanish_Language = mkLanguage "Spanish" ; +lin swahili_Language = mkLanguage "Swahili" ; +lin swedish_Language = mkLanguage "Swedish" ; +lin thai_Language = mkLanguage "Thai" ; +lin turkish_Language = mkLanguage "Turkish" ; +lin urdu_Language = mkLanguage "Urdu" ; + +-} +} diff --git a/src/gaelic/ExtendGla.gf b/src/gaelic/ExtendGla.gf new file mode 100644 index 00000000..5e70f743 --- /dev/null +++ b/src/gaelic/ExtendGla.gf @@ -0,0 +1,35 @@ +--# -path=.:../common:../abstract + +concrete ExtendGla of Extend = CatGla + ** ExtendFunctor - [ + VPS -- finite VP's with tense and polarity + , ListVPS + , VPI + , ListVPI -- infinitive VP's (TODO: with anteriority and polarity) + , MkVPS + , PredVPS + + -- excluded because RGL funs needed for them not implemented yet + , SlashBareV2S + , PredAPVP + , ComplBareVS + , AdvIsNP, AdvIsNPAP + , CompBareCN + , CompIQuant + , ComplSlashPartLast + , ComplDirectVQ + , ComplDirectVS + , DetNPFem, DetNPMasc + , ExistCN, ExistMassCN, ExistPluralCN, ExistsNP + , ExistIPQS, ExistNPQS, ExistS + , PredIAdvVP + , PrepCN + , ReflPossPron + , UttVP, UttVPShort, UttAccNP, UttDatNP, UttAccIP, UttDatIP + , EmptyRelSlash, StrandQuestSlash, StrandRelSlash + , SubjRelNP + , UseComp_ser, UseComp_estar + , iFem_Pron, weFem_Pron, youFem_Pron, youPlFem_Pron, youPolFem_Pron, youPolPlFem_Pron, youPolPl_Pron, theyFem_Pron, theyNeutr_Pron + , GenModNP + + ] with (Grammar=GrammarGla) ; diff --git a/src/gaelic/GrammarGla.gf b/src/gaelic/GrammarGla.gf new file mode 100644 index 00000000..1688ad9a --- /dev/null +++ b/src/gaelic/GrammarGla.gf @@ -0,0 +1,17 @@ +concrete GrammarGla of Grammar = + NounGla + , VerbGla + , AdjectiveGla + , AdverbGla + , NumeralGla + , SentenceGla + , QuestionGla + , RelativeGla + , ConjunctionGla + , PhraseGla + , TextX + , StructuralGla + , IdiomGla + , TenseX + , NamesGla -- Not part of original Grammar, here to trigger compilation + ; diff --git a/src/gaelic/IdiomGla.gf b/src/gaelic/IdiomGla.gf new file mode 100644 index 00000000..ab6a3acc --- /dev/null +++ b/src/gaelic/IdiomGla.gf @@ -0,0 +1,56 @@ + +--1 Idiom: Idiomatic Expressions + +concrete IdiomGla of Idiom = CatGla ** open Prelude, ResGla, VerbGla, QuestionGla, NounGla, StructuralGla in { + +-- This module defines constructions that are formed in fixed ways, +-- often different even in closely related languages. + +{- + lin + + + -- ImpersCl : VP -> Cl ; -- it is hot + ImpersCl vp = { + } ; + + -- : NP -> Cl ; -- there is a house + ExistNP np = + + -- ExistIP : IP -> QCl ; -- which houses are there + ExistIP ip = + + -- GenericCl : VP -> Cl ; -- one sleeps + GenericCl vp = + + CleftNP : NP -> RS -> Cl ; -- it is I who did it + CleftAdv : Adv -> S -> Cl ; -- it is here she slept + + -- : NP -> Cl ; -- there is a house + ExistNP np = + + ExistIP : IP -> QCl ; -- which houses are there + +-- 7/12/2012 generalizations of these + + ExistNPAdv : NP -> Adv -> Cl ; -- there is a house in Paris + ExistIPAdv : IP -> Adv -> QCl ; -- which houses are there in Paris + + -- : VP -> VP ; + ProgrVP vp = vp ** { + } ; + + + -- : VP -> Utt ; -- let's go + ImpPl1 vp = { } ; + + ImpP3 : NP -> VP -> Utt ; -- let John walk + +-- 3/12/2013 non-reflexive uses of "self" + + SelfAdvVP : VP -> VP ; -- is at home himself + SelfAdVVP : VP -> VP ; -- is himself at home + SelfNP : NP -> NP ; -- the president himself (is at home) +-} + +} diff --git a/src/gaelic/LangGla.gf b/src/gaelic/LangGla.gf new file mode 100644 index 00000000..99fee6e3 --- /dev/null +++ b/src/gaelic/LangGla.gf @@ -0,0 +1,5 @@ +--# -path=.:../abstract:../common:../prelude:../api +concrete LangGla of Lang = + GrammarGla, + LexiconGla, + ConstructionGla ; diff --git a/src/gaelic/LexiconGla.gf b/src/gaelic/LexiconGla.gf new file mode 100644 index 00000000..96142b55 --- /dev/null +++ b/src/gaelic/LexiconGla.gf @@ -0,0 +1,419 @@ +concrete LexiconGla of Lexicon = CatGla ** + open ParadigmsGla, ResGla in { + +---- +-- A +{- +lin add_V3 = mkV3 (mkV "") ; +lin airplane_N = mkN "" ; +lin alas_Interj = mkInterj "" ; +lin already_Adv = mkA "" ; +lin animal_N = mkN "" ; +lin answer_V2S = mkV2S (mkV "") ; +lin apartment_N = mkN "" ; +lin apple_N = mkN "" ; +lin art_N = mkN "" ; +lin ashes_N = mkN "" ; +lin ask_V2Q = mkV2Q (mkV "") ; + +---- +-- B + +lin baby_N = mkN "" ; +lin back_N = mkN "" ; +lin bad_A = mkA "" ; +lin bank_N = mkN "" ; +lin bark_N = mkN "" ; +lin beautiful_A = mkA "" ; +lin become_VA = mkVA (mkV "") ; +lin beer_N = mkN "" ; +lin beg_V2V = mkV2V (mkV "") ; +lin belly_N = mkN "" ; +lin big_A = mkA "" ; +lin bike_N = mkN "" ; +lin bird_N = mkN "" ; +lin bite_V2 = mkV2 "" ; +lin black_A = mkA "" ; -} +lin blood_N = mkN "blood" ; +{-lin blow_V = mkV "" ; +lin blue_A = mkA "" ; +lin boat_N = mkN "" ; +lin bone_N = mkN "" ; +lin boot_N = mkN "" ; +lin boss_N = mkN "" ; +lin book_N = mkN "" ; +lin boy_N = mkN "" ; +lin bread_N = mkN "" ; +lin break_V2 = mkV2 "" ; +lin breast_N = mkN "" ; +lin breathe_V = mkV "" ; +lin broad_A = mkA "" ; +lin brother_N2 = mkN "" ; +lin brown_A = mkA "" ; +lin burn_V = mkV "" ; +lin butter_N = mkN "" ; +lin buy_V2 = mkV2 "" ; + +---- +-- C + +lin camera_N = mkN "" ; +lin cap_N = mkN "" ; +lin car_N = mkN "" ; +lin carpet_N = mkN "" ; +lin cat_N = mkN "" ; +lin ceiling_N = mkN "" ; +lin chair_N = mkN "" ; +lin cheese_N = mkN "" ; +lin child_N = mkN "" ; +lin church_N = mkN "" ; +lin city_N = mkN "" ; +lin clean_A = mkA "" ; +lin clever_A = mkA "" ; +lin close_V2 = mkV2 "" ; +lin cloud_N = mkN "" ; +lin coat_N = mkN "" ; +lin cold_A = mkA "" ; +lin come_V = mkV "" ; +lin computer_N = mkN "" ; +lin correct_A = mkA "" ; +lin count_V2 = mkV2 "" ; +lin country_N = mkN "" ; +lin cousin_N = mkN "" ; +lin cow_N = mkN "" ; +lin cut_V2 = mkV2 "" ; + +---- +-- D + +lin day_N = mkN "" ; -} +lin die_V = mkV "die" ; +{-lin dig_V = mkV "" ; +lin dirty_A = mkA "" ; +lin distance_N3 = mkN3 (mkN "") ; +lin do_V2 = mkV2 "" ; +lin doctor_N = mkN "" ; +lin dog_N = mkN "" ; +lin door_N = mkN "" ; +lin drink_V2 = mkV2 "" ; +lin dry_A = mkA "" ; +lin dull_A = mkA "" ; +lin dust_N = mkN "" ; + +---- +-- E + +lin ear_N = mkN "" ; +lin earth_N = mkN "" ; +lin eat_V2 = mkV "" ; +lin egg_N = mkN "" ; +lin empty_A = mkA "" ; +lin enemy_N = mkN "" ; +lin eye_N = mkN "" ; + +---- +-- F + +lin factory_N = mkN "" ; +lin fall_V = mkV "" ; +lin far_Adv = mkA "" ; +lin fat_N = mkN "" ; +lin father_N2 = mkN2 (mkN "") ; +lin fear_V2 = mkV2 "" ; +lin fear_VS = mkVS (mkV "") ; +lin feather_N = mkN "" ; +lin fight_V2 = mkV2 "" ; +lin find_V2 = mkV2 "" ; +lin fingernail_N = mkN "" ; +lin fire_N = mkN "" ; +lin fish_N = mkN "" ; +lin float_V = mkV "" ; +lin floor_N = mkN "" ; +lin flow_V = mkV "" ; +lin flower_N = mkN "" ; +lin fly_V = mkV "" ; +lin fog_N = mkN "" ; +lin foot_N = mkN "" ; +lin forest_N = mkN "" ; +lin forget_V2 = mkV2 "" ; +lin freeze_V = mkV "" ; +lin fridge_N = mkN "" ; +lin friend_N = mkN "" ; +lin fruit_N = mkN "" ; +lin full_A = mkA "" ; +--lin fun_AV + +---- +-- G + +lin garden_N = mkN "" ; +lin girl_N = mkN "" ; +lin give_V3 = mkV3 (mkV "") ; +lin glove_N = mkN "" ; +lin go_V = mkV "" ; +lin gold_N = mkN "" ; +lin good_A = mkA "" ; +lin grammar_N = mkN "" ; +lin grass_N = mkN "" ; +lin green_A = mkA "" ; + +---- +-- H + +lin hair_N = mkN "" ; +lin hand_N = mkN "" ; +lin harbour_N = mkN "" ; +lin hat_N = mkN "" ; +lin hate_V2 = mkV2 "" ; +lin head_N = mkN "" ; +lin hear_V2 = mkV2 "" ; +lin heart_N = mkN "" ; +lin heavy_A = mkA "" ; +lin hill_N = mkN "" ; +lin hit_V2 = mkV2 "" ; +lin hold_V2 = mkV2 "" ; +lin hope_VS = mkV "" ; +lin horn_N = mkN "" ; +lin horse_N = mkN "" ; +lin hot_A = mkA "" ; +lin house_N = mkN "" ; +lin hunt_V2 = mkV2 "" ; +lin husband_N = mkN "" ; + +-------- +-- I - K + +lin ice_N = mkN "" ; +lin industry_N = mkN "" ; +lin iron_N = mkN "" ; +lin john_PN = mkPN "" ; +lin jump_V = mkV "" ; +lin kill_V2 = mkV2 "" ; +lin king_N = mkN "" ; +lin knee_N = mkN "" ; +lin know_V2 = mkV2 "" ; +lin know_VQ = mkVQ (mkV "") ; +lin know_VS = mkV "" ; + + +---- +-- L + +lin lake_N = mkN "" ; +lin lamp_N = mkN "" ; +lin language_N = mkN "" ; +lin laugh_V = mkV "" ; +lin leaf_N = mkN "" ; +lin learn_V2 = mkV2 "" ; +lin leather_N = mkN "" ; +lin leave_V2 = mkV2 "" ; +lin leg_N = mkN "" ; +lin lie_V = mkV "" ; +lin like_V2 = mkV2 "" ; +lin listen_V2 = mkV2 "" ; +lin live_V = mkV ""; +lin liver_N = mkN "" ; +lin long_A = mkA "" ; +lin lose_V2 = mkV2 "" ; +lin louse_N = mkN "" ; +lin love_N = mkN "" ; +lin love_V2 = mkV2 "" ; + +---- +-- M + +lin man_N = mkN "" ; +lin married_A2 = mkA2 (mkA "") ; +lin meat_N = mkN "" ; +lin milk_N = mkN "" ; +lin moon_N = mkN "" ; +lin mother_N2 = mkN2 (mkN "") ; +lin mountain_N = mkN "" ; +lin mouth_N = mkN "" ; +lin music_N = mkN "" ; + +---- +-- N + +lin name_N = mkN "" ; +lin narrow_A = mkA "" ; +lin near_A = mkA "" ; +lin neck_N = mkN "" ; +lin new_A = mkA "" ; +lin newspaper_N = mkN "" ; +lin night_N = mkN "" ; +lin nose_N = mkN "" ; +lin now_Adv = mkAdv "" ; +lin number_N = mkN "" ; + +-------- +-- O - P + + +lin oil_N = mkN "" ; +lin old_A = mkA "" ; +lin open_V2 = mkV2 "" ; +lin paint_V2A = mkV2A (mkV "") ; +lin paper_N = mkN "" ; +lin paris_PN = mkPN "Paris" ; +lin peace_N = mkN "" ; +lin pen_N = mkN "" ; +lin person_N = mkN "" ; +lin planet_N = mkN "" ; +lin plastic_N = mkN "" ; +lin play_V = mkV "" ; +lin policeman_N = mkN "" ; +lin priest_N = mkN "" ; +lin pull_V2 = mkV2 "" ; +lin push_V2 = mkV2 "" ; +lin put_V2 = mkV2 "" ; + +-------- +-- Q - R + + +lin queen_N = mkN "" ; +lin question_N = mkN "" ; +lin radio_N = mkN "" ; +lin rain_N = mkN "" ; +lin rain_V0 = mkV "" ; +lin read_V2 = mkV2 "" ; +lin ready_A = mkA "" ; +lin reason_N = mkN "" ; +lin red_A = mkA "" ; +lin religion_N = mkN "" ; +lin restaurant_N = mkN "" ; +lin river_N = mkN "" ; +lin road_N = mkN "" ; +lin rock_N = mkN "" ; +lin roof_N = mkN "" ; +lin root_N = mkN "" ; +lin rope_N = mkN "" ; +lin rotten_A = mkA "" ; +lin round_A = mkA "" ; +lin rub_V2 = mkV2 "" ; +lin rubber_N = mkN "" ; +lin rule_N = mkN "" ; +lin run_V = mkV "" ; + +---- +-- S + +lin salt_N = mkN "" ; +lin sand_N = mkN "" ; +lin say_VS = mkVS (mkV "") ; +lin school_N = mkN "" ; +lin science_N = mkN "" ; +lin scratch_V2 = mkV2 "" ; +lin sea_N = mkN "" ; +lin see_V2 = mkV2 "" ; +lin seed_N = mkN "" ; +lin seek_V2 = mkV2 "" ; +lin sell_V3 = mkV3 (mkV "" Meng) emptyPrep emptyPrep ; -- TODO +lin send_V3 = mkV3 (mkV "") ; +lin sew_V = mkV "" ; +lin sharp_A = mkA "" ; +lin sheep_N = mkN "" fem ; +lin ship_N = mkN "" ; +lin shirt_N = mkN "" ; +lin shoe_N = mkN "" ; +lin shop_N = mkN "" ; +lin short_A = mkA "" ; +lin silver_N = mkN "" ; +lin sing_V = mkV "" ; +lin sister_N = mkN "" ; +lin sit_V = mkV "" ; +lin skin_N = mkN "" ; +lin sky_N = mkN "" ; +lin sleep_V = mkV "" ; +lin small_A = mkA "" ; +lin smell_V = mkV "" ; +lin smoke_N = mkN "" ; +lin smooth_A = mkA "" ; +lin snake_N = mkN "" ; +lin snow_N = mkN "" ; +lin sock_N = mkN "" ; +lin song_N = mkN "" ; +lin speak_V2 = mkV2 "" ; +lin spit_V = mkV "" ; +lin split_V2 = mkV2 "" ; +lin squeeze_V2 = mkV2 "" ; +lin stab_V2 = mkV2 "" ; +lin stand_V = mkV "" ; +lin star_N = mkN "" ; +lin steel_N = mkN "" ; +lin stick_N = mkN "" ; +lin stone_N = mkN "" ; +lin stop_V = mkV "" ; +lin stove_N = mkN "" ; +lin straight_A = mkA "" ; +lin student_N = mkN "" ; +lin stupid_A = mkA "" ; +lin suck_V2 = mkV2 "" ; +lin sun_N = mkN "" ; +lin swell_V = mkV "" ; +lin swim_V = mkV "" ; + +---- +-- T + + +lin table_N = mkN "" ; +lin tail_N = mkN "" ; +lin talk_V3 = mkV3 (mkV "" Ber) (mkPrep "") (mkPrep "") ; +lin teach_V2 = mkV2 "" ; +lin teacher_N = mkN "" ; +lin television_N = mkN "" ; +lin thick_A = mkA "" ; +lin thin_A = mkA "" ; +lin think_V = mkV "" ; +lin throw_V2 = mkV2 "" ; +lin tie_V2 = mkV2 "" ; +lin today_Adv = mkA "" ; +lin tongue_N = mkN "" ; +lin tooth_N = mkN "" ; +lin train_N = mkN "" ; +lin travel_V = mkV "" ; +lin tree_N = mkN "" ; +lin turn_V = mkV "" ; + +-------- +-- U - V + +lin ugly_A = mkA "" ; +lin uncertain_A = mkA "" ; +lin understand_V2 = mkV2 "" ; +lin university_N = mkN "" ; +lin village_N = mkN "" ; +lin vomit_V = mkV2 "" ; + +-------- +-- W - Y + +lin wait_V2 = mkV2 "" ; +lin walk_V = mkV "" ; +lin war_N = mkN "" ; +lin warm_A = mkA "" ; +lin wash_V2 = mkV2 "" ; +lin watch_V2 = mkV2 "" ; +lin water_N = mkNoun "" ; +lin wet_A = mkA "" ; +lin white_A = mkA "" ; +lin wide_A = mkA "" ; +lin wife_N = mkN "" ; +lin win_V2 = mkV2 "" ; +lin wind_N = mkN "" ; +lin window_N = mkN "" ; +lin wine_N = mkN "" ; +lin wing_N = mkN "" ; +lin wipe_V2 = mkV2 "" ; +lin woman_N = mkN "" ; +lin wonder_VQ = mkVQ (mkV "") ; +lin wood_N = mkN "" ; +lin worm_N = mkN "" ; +lin write_V2 = mkV2 "" ; +lin year_N = mkN "" ; +lin yellow_A = mkA "" ; +lin young_A = mkA "" ; +-} +} diff --git a/src/gaelic/MissingGla.gf b/src/gaelic/MissingGla.gf new file mode 100644 index 00000000..12be87d0 --- /dev/null +++ b/src/gaelic/MissingGla.gf @@ -0,0 +1,313 @@ +resource MissingGla = open GrammarGla, Prelude in { +-- temporary definitions to enable the compilation of RGL API +oper AdAP : AdA -> AP -> AP = notYet "AdAP" ; +oper AdAdv : AdA -> Adv -> Adv = notYet "AdAdv" ; +oper AdNum : AdN -> Card -> Card = notYet "AdNum" ; +oper AdVVP : AdV -> VP -> VP = notYet "AdVVP" ; +oper AdVVPSlash : AdV -> VPSlash -> VPSlash = notYet "AdVVPSlash" ; +oper AddAdvQVP : QVP -> IAdv -> QVP = notYet "AddAdvQVP" ; +oper AdjCN : AP -> CN -> CN = notYet "AdjCN" ; +oper AdjDAP : DAP -> AP -> DAP = notYet "AdjDAP" ; +oper AdjOrd : Ord -> AP = notYet "AdjOrd" ; +oper AdnCAdv : CAdv -> AdN = notYet "AdnCAdv" ; +oper AdvAP : AP -> Adv -> AP = notYet "AdvAP" ; +oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ; +oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ; +oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ; +oper AdvImp : Adv -> Imp -> Imp = notYet "AdvImp" ; +oper AdvNP : NP -> Adv -> NP = notYet "AdvNP" ; +oper AdvQVP : VP -> IAdv -> QVP = notYet "AdvQVP" ; +oper AdvS : Adv -> S -> S = notYet "AdvS" ; +oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ; +oper AdvVP : VP -> Adv -> VP = notYet "AdvVP" ; +oper AdvVPSlash : VPSlash -> Adv -> VPSlash = notYet "AdvVPSlash" ; +oper ApposCN : CN -> NP -> CN = notYet "ApposCN" ; +oper BaseAP : AP -> AP -> ListAP = notYet "BaseAP" ; +oper BaseAdV : AdV -> AdV -> ListAdV = notYet "BaseAdV" ; +oper BaseAdv : Adv -> Adv -> ListAdv = notYet "BaseAdv" ; +oper BaseCN : CN -> CN -> ListCN = notYet "BaseCN" ; +oper BaseIAdv : IAdv -> IAdv -> ListIAdv = notYet "BaseIAdv" ; +oper BaseNP : NP -> NP -> ListNP = notYet "BaseNP" ; +oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ; +oper BaseS : S -> S -> ListS = notYet "BaseS" ; +oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ; +oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ; +oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ; +oper CompAP : AP -> Comp = notYet "CompAP" ; +oper CompAdv : Adv -> Comp = notYet "CompAdv" ; +oper CompCN : CN -> Comp = notYet "CompCN" ; +oper CompIAdv : IAdv -> IComp = notYet "CompIAdv" ; +oper CompIP : IP -> IComp = notYet "CompIP" ; +oper CompNP : NP -> Comp = notYet "CompNP" ; +oper ComparA : A -> NP -> AP = notYet "ComparA" ; +oper ComparAdvAdj : CAdv -> A -> NP -> Adv = notYet "ComparAdvAdj" ; +oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ; +oper ComplA2 : A2 -> NP -> AP = notYet "ComplA2" ; +oper ComplN2 : N2 -> NP -> CN = notYet "ComplN2" ; +oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ; +oper ComplSlash : VPSlash -> NP -> VP = notYet "ComplSlash" ; +oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ; +oper ComplVA : VA -> AP -> VP = notYet "ComplVA" ; +oper ComplVQ : VQ -> QS -> VP = notYet "ComplVQ" ; +oper ComplVS : VS -> S -> VP = notYet "ComplVS" ; +oper ComplVV : VV -> VP -> VP = notYet "ComplVV" ; +oper ConjAP : Conj -> ListAP -> AP = notYet "ConjAP" ; +oper ConjAdV : Conj -> ListAdV -> AdV = notYet "ConjAdV" ; +oper ConjAdv : Conj -> ListAdv -> Adv = notYet "ConjAdv" ; +oper ConjCN : Conj -> ListCN -> CN = notYet "ConjCN" ; +oper ConjDet : Conj -> ListDAP -> Det = notYet "ConjDet" ; +oper ConjIAdv : Conj -> ListIAdv -> IAdv = notYet "ConjIAdv" ; +oper ConjNP : Conj -> ListNP -> NP = notYet "ConjNP" ; +oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ; +oper ConjS : Conj -> ListS -> S = notYet "ConjS" ; +oper ConsAP : AP -> ListAP -> ListAP = notYet "ConsAP" ; +oper ConsAdV : AdV -> ListAdV -> ListAdV = notYet "ConsAdV" ; +oper ConsAdv : Adv -> ListAdv -> ListAdv = notYet "ConsAdv" ; +oper ConsCN : CN -> ListCN -> ListCN = notYet "ConsCN" ; +oper ConsIAdv : IAdv -> ListIAdv -> ListIAdv = notYet "ConsIAdv" ; +oper ConsNP : NP -> ListNP -> ListNP = notYet "ConsNP" ; +oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ; +oper ConsS : S -> ListS -> ListS = notYet "ConsS" ; +oper CountNP : Det -> NP -> NP = notYet "CountNP" ; +oper DetCN : Det -> CN -> NP = notYet "DetCN" ; +oper DetDAP : Det -> DAP = notYet "DetDAP" ; +oper DetNP : Det -> NP = notYet "DetNP" ; +oper DetQuantOrd : Quant -> Num -> Ord -> Det = notYet "DetQuantOrd" ; +oper EmbedQS : QS -> SC = notYet "EmbedQS" ; +oper EmbedS : S -> SC = notYet "EmbedS" ; +oper EmbedVP : VP -> SC = notYet "EmbedVP" ; +oper ExistIP : IP -> QCl = notYet "ExistIP" ; +oper ExistIPAdv : IP -> Adv -> QCl = notYet "ExistIPAdv" ; +oper ExistNP : NP -> Cl = notYet "ExistNP" ; +oper ExistNPAdv : NP -> Adv -> Cl = notYet "ExistNPAdv" ; +oper ExtAdvS : Adv -> S -> S = notYet "ExtAdvS" ; +oper ExtAdvVP : VP -> Adv -> VP = notYet "ExtAdvVP" ; +oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ; +oper GenericCl : VP -> Cl = notYet "GenericCl" ; +oper IdRP : RP = notYet "IdRP" ; +oper IdetCN : IDet -> CN -> IP = notYet "IdetCN" ; +oper IdetIP : IDet -> IP = notYet "IdetIP" ; +oper IdetQuant : IQuant -> Num -> IDet = notYet "IdetQuant" ; +oper ImpP3 : NP -> VP -> Utt = notYet "ImpP3" ; +oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ; +oper ImpVP : VP -> Imp = notYet "ImpVP" ; +oper ImpersCl : VP -> Cl = notYet "ImpersCl" ; +oper MassNP : CN -> NP = notYet "MassNP" ; +oper NumCard : Card -> Num = notYet "NumCard" ; +oper NumDigits : Digits -> Card = notYet "NumDigits" ; +oper NumNumeral : Numeral -> Card = notYet "NumNumeral" ; +oper OrdDigits : Digits -> Ord = notYet "OrdDigits" ; +oper OrdNumeral : Numeral -> Ord = notYet "OrdNumeral" ; +oper OrdNumeralSuperl : Numeral -> A -> Ord = notYet "OrdNumeralSuperl" ; +oper OrdSuperl : A -> Ord = notYet "OrdSuperl" ; +oper PConjConj : Conj -> PConj = notYet "PConjConj" ; +oper PPartNP : NP -> V2 -> NP = notYet "PPartNP" ; +oper PartNP : CN -> NP -> CN = notYet "PartNP" ; +oper PassV2 : V2 -> VP = notYet "PassV2" ; +oper PhrUtt : PConj -> Utt -> Voc -> Phr = notYet "PhrUtt" ; +oper PositA : A -> AP = notYet "PositA" ; +oper PositAdAAdj : A -> AdA = notYet "PositAdAAdj" ; +oper PositAdvAdj : A -> Adv = notYet "PositAdvAdj" ; +oper PossNP : CN -> NP -> CN = notYet "PossNP" ; +oper PossPron : Pron -> Quant = notYet "PossPron" ; +oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ; +oper PredVP : NP -> VP -> Cl = notYet "PredVP" ; +oper PredetNP : Predet -> NP -> NP = notYet "PredetNP" ; +oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ; +oper PrepNP : Prep -> NP -> Adv = notYet "PrepNP" ; +oper ProgrVP : VP -> VP = notYet "ProgrVP" ; +oper QuestCl : Cl -> QCl = notYet "QuestCl" ; +oper QuestIAdv : IAdv -> Cl -> QCl = notYet "QuestIAdv" ; +oper QuestIComp : IComp -> NP -> QCl = notYet "QuestIComp" ; +oper QuestQVP : IP -> QVP -> QCl = notYet "QuestQVP" ; +oper QuestSlash : IP -> ClSlash -> QCl = notYet "QuestSlash" ; +oper QuestVP : IP -> VP -> QCl = notYet "QuestVP" ; +oper ReflA2 : A2 -> AP = notYet "ReflA2" ; +oper ReflVP : VPSlash -> VP = notYet "ReflVP" ; +oper RelCN : CN -> RS -> CN = notYet "RelCN" ; +oper RelCl : Cl -> RCl = notYet "RelCl" ; +oper RelNP : NP -> RS -> NP = notYet "RelNP" ; +oper RelS : S -> RS -> S = notYet "RelS" ; +oper RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ; +oper RelVP : RP -> VP -> RCl = notYet "RelVP" ; +oper SSubjS : S -> Subj -> S -> S = notYet "SSubjS" ; +oper SelfAdVVP : VP -> VP = notYet "SelfAdVVP" ; +oper SelfAdvVP : VP -> VP = notYet "SelfAdvVP" ; +oper SelfNP : NP -> NP = notYet "SelfNP" ; +oper SentAP : AP -> SC -> AP = notYet "SentAP" ; +oper SentCN : CN -> SC -> CN = notYet "SentCN" ; +oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ; +oper Slash3V3 : V3 -> NP -> VPSlash = notYet "Slash3V3" ; +oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ; +oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ; +oper SlashV2Q : V2Q -> QS -> VPSlash = notYet "SlashV2Q" ; +oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ; +oper SlashV2V : V2V -> VP -> VPSlash = notYet "SlashV2V" ; +oper SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash = notYet "SlashV2VNP" ; +oper SlashV2a : V2 -> VPSlash = notYet "SlashV2a" ; +oper SlashVP : NP -> VPSlash -> ClSlash = notYet "SlashVP" ; +oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ; +oper SlashVV : VV -> VPSlash -> VPSlash = notYet "SlashVV" ; +oper SubjS : Subj -> S -> Adv = notYet "SubjS" ; +oper TFullStop : Phr -> Text -> Text = notYet "TFullStop" ; +oper Use2N3 : N3 -> N2 = notYet "Use2N3" ; +oper Use3N3 : N3 -> N2 = notYet "Use3N3" ; +oper UseA2 : A2 -> AP = notYet "UseA2" ; +oper UseCl : Temp -> Pol -> Cl -> S = notYet "UseCl" ; +oper UseComp : Comp -> VP = notYet "UseComp" ; +oper UseComparA : A -> AP = notYet "UseComparA" ; +oper UseCopula : VP = notYet "UseCopula" ; +oper UseN : N -> CN = notYet "UseN" ; +oper UseN2 : N2 -> CN = notYet "UseN2" ; +oper UsePN : PN -> NP = notYet "UsePN" ; +oper UsePron : Pron -> NP = notYet "UsePron" ; +oper UseQCl : Temp -> Pol -> QCl -> QS = notYet "UseQCl" ; +oper UseRCl : Temp -> Pol -> RCl -> RS = notYet "UseRCl" ; +oper UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ; +oper UseV : V -> VP = notYet "UseV" ; +oper UttAP : AP -> Utt = notYet "UttAP" ; +oper UttAdv : Adv -> Utt = notYet "UttAdv" ; +oper UttCN : CN -> Utt = notYet "UttCN" ; +oper UttCard : Card -> Utt = notYet "UttCard" ; +oper UttIAdv : IAdv -> Utt = notYet "UttIAdv" ; +oper UttIP : IP -> Utt = notYet "UttIP" ; +oper UttImpPl : Pol -> Imp -> Utt = notYet "UttImpPl" ; +oper UttImpPol : Pol -> Imp -> Utt = notYet "UttImpPol" ; +oper UttImpSg : Pol -> Imp -> Utt = notYet "UttImpSg" ; +oper UttInterj : Interj -> Utt = notYet "UttInterj" ; +oper UttNP : NP -> Utt = notYet "UttNP" ; +oper UttQS : QS -> Utt = notYet "UttQS" ; +oper UttS : S -> Utt = notYet "UttS" ; +oper UttVP : VP -> Utt = notYet "UttVP" ; +oper VPSlashPrep : VP -> Prep -> VPSlash = notYet "VPSlashPrep" ; +oper VocNP : NP -> Voc = notYet "VocNP" ; +oper above_Prep : Prep = notYet "above_Prep" ; +oper active2passive : Cl -> Cl = notYet "active2passive" ; +oper after_Prep : Prep = notYet "after_Prep" ; +oper alas_Interj : Interj = notYet "alas_Interj" ; +oper all_Predet : Predet = notYet "all_Predet" ; +oper almost_AdA : AdA = notYet "almost_AdA" ; +oper almost_AdN : AdN = notYet "almost_AdN" ; +oper already_Adv : Adv = notYet "already_Adv" ; +oper although_Subj : Subj = notYet "although_Subj" ; +oper always_AdV : AdV = notYet "always_AdV" ; +oper as_CAdv : CAdv = notYet "as_CAdv" ; +oper at_least_AdN : AdN = notYet "at_least_AdN" ; +oper at_most_AdN : AdN = notYet "at_most_AdN" ; +oper because_Subj : Subj = notYet "because_Subj" ; +oper before_Prep : Prep = notYet "before_Prep" ; +oper behind_Prep : Prep = notYet "behind_Prep" ; +oper between_Prep : Prep = notYet "between_Prep" ; +oper both7and_DConj : Conj = notYet "both7and_DConj" ; +oper but_PConj : PConj = notYet "but_PConj" ; +oper by8agent_Prep : Prep = notYet "by8agent_Prep" ; +oper by8means_Prep : Prep = notYet "by8means_Prep" ; +oper dconcat : Digits -> Digits -> Digits = notYet "dconcat" ; +oper digits2num : Digits -> Numeral = notYet "digits2num" ; +oper digits2numeral : Card -> Card = notYet "digits2numeral" ; +oper dn : Dig -> Digit = notYet "dn" ; +oper dn10 : Dig -> Sub10 = notYet "dn10" ; +oper dn100 : Dig -> Dig -> Sub100 = notYet "dn100" ; +oper dn1000 : Dig -> Dig -> Dig -> Sub1000 = notYet "dn1000" ; +oper dn1000000a : Dig -> Dig -> Dig -> Dig -> Sub1000000 = notYet "dn1000000a" ; +oper dn1000000b : Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 = notYet "dn1000000b" ; +oper dn1000000c : Dig -> Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 = notYet "dn1000000c" ; +oper during_Prep : Prep = notYet "during_Prep" ; +oper either7or_DConj : Conj = notYet "either7or_DConj" ; +oper every_Det : Det = notYet "every_Det" ; +oper everybody_NP : NP = notYet "everybody_NP" ; +oper everything_NP : NP = notYet "everything_NP" ; +oper everywhere_Adv : Adv = notYet "everywhere_Adv" ; +oper except_Prep : Prep = notYet "except_Prep" ; +oper few_Det : Det = notYet "few_Det" ; +oper for_Prep : Prep = notYet "for_Prep" ; +oper from_Prep : Prep = notYet "from_Prep" ; +oper he_Pron : Pron = notYet "he_Pron" ; +oper here7from_Adv : Adv = notYet "here7from_Adv" ; +oper here7to_Adv : Adv = notYet "here7to_Adv" ; +oper here_Adv : Adv = notYet "here_Adv" ; +oper how8many_IDet : IDet = notYet "how8many_IDet" ; +oper how8much_IAdv : IAdv = notYet "how8much_IAdv" ; +oper how_IAdv : IAdv = notYet "how_IAdv" ; +oper i_Pron : Pron = notYet "i_Pron" ; +oper if_Subj : Subj = notYet "if_Subj" ; +oper if_then_Conj : Conj = notYet "if_then_Conj" ; +oper in8front_Prep : Prep = notYet "in8front_Prep" ; +oper in_Prep : Prep = notYet "in_Prep" ; +oper it_Pron : Pron = notYet "it_Pron" ; +oper john_PN : PN = notYet "john_PN" ; +oper language_title_Utt : Utt = notYet "language_title_Utt" ; +oper left_Ord : Ord = notYet "left_Ord" ; +oper less_CAdv : CAdv = notYet "less_CAdv" ; +oper many_Det : Det = notYet "many_Det" ; +oper more_CAdv : CAdv = notYet "more_CAdv" ; +oper most_Predet : Predet = notYet "most_Predet" ; +oper much_Det : Det = notYet "much_Det" ; +oper nd : Digit -> Dig = notYet "nd" ; +oper nd10 : Sub10 -> Digits = notYet "nd10" ; +oper nd100 : Sub100 -> Digits = notYet "nd100" ; +oper nd1000 : Sub1000 -> Digits = notYet "nd1000" ; +oper nd1000000 : Sub1000000 -> Digits = notYet "nd1000000" ; +oper no_Quant : Quant = notYet "no_Quant" ; +oper no_Utt : Utt = notYet "no_Utt" ; +oper nobody_NP : NP = notYet "nobody_NP" ; +oper not_Predet : Predet = notYet "not_Predet" ; +oper nothing_NP : NP = notYet "nothing_NP" ; +oper num : Sub1000000 -> Numeral = notYet "num" ; +oper num2digits : Numeral -> Digits = notYet "num2digits" ; +oper on_Prep : Prep = notYet "on_Prep" ; +oper only_Predet : Predet = notYet "only_Predet" ; +oper or_Conj : Conj = notYet "or_Conj" ; +oper otherwise_PConj : PConj = notYet "otherwise_PConj" ; +oper part_Prep : Prep = notYet "part_Prep" ; +oper please_Voc : Voc = notYet "please_Voc" ; +oper possess_Prep : Prep = notYet "possess_Prep" ; +oper pot01 : Sub10 = notYet "pot01" ; +oper pot1 : Digit -> Sub100 = notYet "pot1" ; +oper pot110 : Sub100 = notYet "pot110" ; +oper pot111 : Sub100 = notYet "pot111" ; +oper pot1plus : Digit -> Sub10 -> Sub100 = notYet "pot1plus" ; +oper pot1to19 : Digit -> Sub100 = notYet "pot1to19" ; +oper pot2 : Sub10 -> Sub1000 = notYet "pot2" ; +oper pot2plus : Sub10 -> Sub100 -> Sub1000 = notYet "pot2plus" ; +oper pot3 : Sub1000 -> Sub1000000 = notYet "pot3" ; +oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ; +oper quite_Adv : AdA = notYet "quite_Adv" ; +oper right_Ord : Ord = notYet "right_Ord" ; +oper she_Pron : Pron = notYet "she_Pron" ; +oper so_AdA : AdA = notYet "so_AdA" ; +oper somePl_Det : Det = notYet "somePl_Det" ; +oper someSg_Det : Det = notYet "someSg_Det" ; +oper somebody_NP : NP = notYet "somebody_NP" ; +oper something_NP : NP = notYet "something_NP" ; +oper somewhere_Adv : Adv = notYet "somewhere_Adv" ; +oper that_Quant : Quant = notYet "that_Quant" ; +oper that_Subj : Subj = notYet "that_Subj" ; +oper there7from_Adv : Adv = notYet "there7from_Adv" ; +oper there7to_Adv : Adv = notYet "there7to_Adv" ; +oper there_Adv : Adv = notYet "there_Adv" ; +oper therefore_PConj : PConj = notYet "therefore_PConj" ; +oper they_Pron : Pron = notYet "they_Pron" ; +oper this_Quant : Quant = notYet "this_Quant" ; +oper through_Prep : Prep = notYet "through_Prep" ; +oper to_Prep : Prep = notYet "to_Prep" ; +oper too_AdA : AdA = notYet "too_AdA" ; +oper under_Prep : Prep = notYet "under_Prep" ; +oper very_AdA : AdA = notYet "very_AdA" ; +oper we_Pron : Pron = notYet "we_Pron" ; +oper whatPl_IP : IP = notYet "whatPl_IP" ; +oper whatSg_IP : IP = notYet "whatSg_IP" ; +oper when_IAdv : IAdv = notYet "when_IAdv" ; +oper when_Subj : Subj = notYet "when_Subj" ; +oper where_IAdv : IAdv = notYet "where_IAdv" ; +oper which_IQuant : IQuant = notYet "which_IQuant" ; +oper whoPl_IP : IP = notYet "whoPl_IP" ; +oper whoSg_IP : IP = notYet "whoSg_IP" ; +oper why_IAdv : IAdv = notYet "why_IAdv" ; +oper with_Prep : Prep = notYet "with_Prep" ; +oper without_Prep : Prep = notYet "without_Prep" ; +oper yes_Utt : Utt = notYet "yes_Utt" ; +oper youPl_Pron : Pron = notYet "youPl_Pron" ; +oper youPol_Pron : Pron = notYet "youPol_Pron" ; +oper youSg_Pron : Pron = notYet "youSg_Pron" ; +} diff --git a/src/gaelic/NamesGla.gf b/src/gaelic/NamesGla.gf new file mode 100644 index 00000000..7283f091 --- /dev/null +++ b/src/gaelic/NamesGla.gf @@ -0,0 +1,36 @@ +concrete NamesGla of Names = CatGla ** open Prelude in { + +-- An API layer to deal with names +-- Not part of the RGL API, but used in the AW project +-- So depends on your goals whether this is high or low priority to implement. +{- + lin + -- : GN -> NP ; + GivenName gn = + + -- : SN -> NP ; + MaleSurname sn = + + -- : SN -> NP ; + FemaleSurname sn = + + -- : SN -> NP ; + PlSurname sn = + + -- : GN -> SN -> NP ; + FullName gn sn = + + lin + -- : LN -> NP ; + UseLN ln = + + -- : LN -> NP ; + PlainLN ln = + + -- : LN -> Adv ; + InLN ln = + + -- : AP -> LN -> LN ; + AdjLN ap ln = +-} +} diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf new file mode 100644 index 00000000..24507a91 --- /dev/null +++ b/src/gaelic/NounGla.gf @@ -0,0 +1,210 @@ +concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { + + flags optimize=all_subs ; + + lin + +--2 Noun phrases + +-- : Det -> CN -> NP + DetCN det cn = emptyNP ** { + s = det.s ++ cn.s ! det.n + } ; +{- + -- : PN -> NP ; + -- Assuming that lincat PN = lincat NP + UsePN pn = pn ; + + -- : Pron -> NP ; + -- Assuming that lincat Pron = lincat NP + UsePron pron = pron ; + + -- : Predet -> NP -> NP ; -- only the man + PredetNP predet np = + +-- A noun phrase can also be postmodified by the past participle of a +-- verb, by an adverb, or by a relative clause + + -- low prio + -- : NP -> V2 -> NP ; -- the man seen + -- PPartNP np v2 = np ** { + -- s = + -- } ; + + -- : NP -> Adv -> NP ; -- Paris today + AdvNP np adv = np ** { + s = np.s ++ "," ++ adv.s + } ; + + -- : NP -> Adv -> NP ; -- boys, such as .. + ExtAdvNP np adv = AdvNP np {s = "," ++ adv.s} ; + + -- : NP -> RS -> NP ; -- Paris, which is here + RelNP np rs = np ** { + + } ; + +-- Determiners can form noun phrases directly. + + -- : Det -> NP ; + DetNP det = emptyNP ** { + s = \\_ => linDet det ; + } ; +-} + -- MassNP : CN -> NP ; + MassNP cn = emptyNP ** { + s = linCN cn + } ; + + +--2 Determiners + +-- The determiner has a fine-grained structure, in which a 'nucleus' +-- quantifier and an optional numeral can be discerned. + + -- : Quant -> Num -> Det ; + DetQuant quant num = quant ** { + s = quant.s ! num.n ++ num.s ; + n = num.n ; + } ; + + -- : Quant -> Num -> Ord -> Det ; + -- DetQuantOrd quant num ord = quant ** { + + -- } ; + +-- Whether the resulting determiner is singular or plural depends on the +-- cardinal. + +-- All parts of the determiner can be empty, except $Quant$, which is +-- the "kernel" of a determiner. It is, however, the $Num$ that determines +-- the inherent number. + + NumSg = {s = [] ; n = Sg} ; + NumPl = {s = [] ; n = Pl} ; + +{- + -- : Card -> Num ; -- two + NumCard card = card ; + + -- : Digits -> Card ; + NumDigits dig = -- probably like OrdDigits, but choose the NCard form + + -- : Numeral -> Card ; + NumNumeral num = { + s = num.s ! NCard ; + n = num.n -- inherits grammatical number (Sg, Pl, …) from the Numeral + } ; + + -- : AdN -> Card -> Card ; + AdNum adn card = card ** { s = adn.s ++ card.s } ; + + -- : Digits -> Ord ; + OrdDigits digs = digs ** { s = digs.s ! NOrd } ; + + -- : Numeral -> Ord ; + OrdNumeral num = { + s = num.s ! NOrd + } ; + + -- : A -> Ord ; + OrdSuperl a = { + s = "most" ++ a.s ! Superl + } ; + +-- One can combine a numeral and a superlative. + + -- : Numeral -> A -> Ord ; -- third largest + OrdNumeralSuperl num a = { + s = num.s ! NOrd ++ a.s ! Superl + } ; +-} + + -- : Quant + DefArt = mkQuant "the" "the" ; + + -- : Quant + IndefArt = mkQuant "a" [] ; + +{- + -- : Pron -> Quant -- my + PossPron pron = mkQuant pron.s ** { + + } ; +-} + +--2 Common nouns + + -- : N -> CN + UseN n = n ; + +{- + -- : N2 -> CN ; + UseN2 n2 = + + -- : N2 -> NP -> CN ; + ComplN2 n2 np = + + -- : N3 -> NP -> N2 ; -- distance from this city (to Paris) + ComplN3 n3 np = + + -- : N3 -> N2 ; -- distance (from this city) + Use2N3 n3 = lin N2 n3 ** { c2 = n3.c3 } ; + + -- : N3 -> N2 ; -- distance (to Paris) + Use3N3 n3 = lin N2 n3 ; + + -- : AP -> CN -> CN + AdjCN ap cn = + + -- : CN -> RS -> CN ; + RelCN cn rs = + + + -- : CN -> Adv -> CN ; + AdvCN cn adv = + +-- Nouns can also be modified by embedded sentences and questions. +-- For some nouns this makes little sense, but we leave this for applications +-- to decide. Sentential complements are defined in VerbGla. + + -- : CN -> SC -> CN ; -- question where she sleeps + SentCN cn sc = + +--2 Apposition + +-- This is certainly overgenerating. + + -- : CN -> NP -> CN ; -- city Paris (, numbers x and y) + ApposCN cn np = cn ** { + s = + } ; + +--2 Possessive and partitive constructs +-- NB. Below this, the functions are not in the API, so lower prio to implement + + -- : PossNP : CN -> NP -> CN ; + -- in English: book of someone; point is that we can add a determiner to the CN, + -- so it can become "a book of someone" or "the book of someone" + PossNP cn np = + + + -- : Det -> NP -> NP ; -- three of them, some of the boys + CountNP det np = -- Nonsense for DefArt or IndefArt, but don't worry about that! RGL can contain weird sentences, as long as it contains the non-weird stuff we want + + + -- : CN -> NP -> CN ; -- glass of wine / two kilos of red apples + PartNP cn np = + +--3 Conjoinable determiners and ones with adjectives + + -- : DAP -> AP -> DAP ; -- the large (one) + AdjDAP dap ap = dap ** { + + } ; + + -- : Det -> DAP ; -- this (or that) + DetDAP det = det ; +-} + +} diff --git a/src/gaelic/NumeralGla.gf b/src/gaelic/NumeralGla.gf new file mode 100644 index 00000000..a7e3af7c --- /dev/null +++ b/src/gaelic/NumeralGla.gf @@ -0,0 +1,115 @@ +concrete NumeralGla of Numeral = CatGla [Numeral,Digits] ** + open Prelude, ResGla in { + + lincat + Digit = LinNumeral ; -- 2..9 + Sub10, -- 1..9 + Sub100, -- 1..99 + Sub1000, -- 1..999 + Sub1000000, -- 1..999999 + Sub1000000000, -- 1..999999999 + Sub1000000000000 -- 1..999999999999 + = LinNumeral ; + +-- param CardOrd defined in ResGla +-- type LinNumeral -""- + + + lin + -- : Sub1000000 -> Numeral ; -- 123456 [coercion to top category] + num x = x ; + + -- : Digit ; + n2 = mkNumeral "two" ; + n3 = mkNumeral "three" ; + n4 = mkNumeral "four" ; + n5 = mkNumeral "five" ; + n6 = mkNumeral "six" ; + n7 = mkNumeral "seven" ; + n8 = mkNumeral "eight" ; + n9 = mkNumeral "nine" ; + + -- : Sub10 ; -- 1 + -- pot01 = + + -- : Digit -> Sub10 ; -- d * 1 + pot0 d = d ; + + -- : Sub100 ; -- 10 + -- pot110 = mkNum "ten" ; + + -- : Sub100 ; -- 11 + -- pot111 = mkNum "eleven" ; + + -- : Digit -> Sub100 ; -- 10 + d + -- pot1to19 d = + + -- : Sub10 -> Sub100 ; -- coercion of 1..9 + pot0as1 n = n ; + + -- : Digit -> Sub100 ; -- d * 10 + -- pot1 d = + + -- : Digit -> Sub10 -> Sub100 ; -- d * 10 + n + -- pot1plus d e = + + -- : Sub100 -> Sub1000 ; -- coercion of 1..99 + pot1as2 n = n ; + + -- : Sub10 -> Sub1000 ; -- m * 100 + -- pot2 d = + + -- : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n + -- pot2plus d e = + + -- : Sub1000 -> Sub1000000 ; -- coercion of 1..999 + pot2as3 n = n ; + + -- : Sub1000 -> Sub1000000 ; -- m * 1000 + -- pot3 d = + + -- : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n + -- pot3plus d e = + +-------------------------------------------------------------------------------- +-- Numerals as sequences of digits have a separate, simpler grammar +-- + + lincat + Dig = LinDig ; -- single digit 0..9 + + lin + -- : Dig -> Digits ; -- 8 + IDig d = d ; + + -- : Dig -> Digits -> Digits ; -- 876 + IIDig d e = { + s = table { + NCard => glue (d.s ! NCard) (e.s ! NCard) ; + NOrd => glue (d.s ! NCard) (e.s ! NOrd) + } ; + n = Pl ; + } ; + + -- : Dig ; + D_0 = mkDig "0" ; + D_1 = mkDig "1" ; + D_2 = mkDig "2" ; + D_3 = mkDig "3" ; + D_4 = mkDig "4" ; + D_5 = mkDig "5" ; + D_6 = mkDig "6" ; + D_7 = mkDig "7" ; + D_8 = mkDig "8" ; + D_9 = mkDig "9" ; + + oper + LinDig : Type = {s : CardOrd => Str ; n : Number} ; + mkDig : Str -> LinDig = \s -> { + s = table { + NCard => s ; + NOrd => s + "th" + } ; + n = Pl ; -- TODO: handle number 1 + } ; +} diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf new file mode 100644 index 00000000..330df734 --- /dev/null +++ b/src/gaelic/ParadigmsGla.gf @@ -0,0 +1,211 @@ +resource ParadigmsGla = open CatGla, ResGla, NounGla, Prelude in { + +oper + +--2 Parameters +-- +-- To abstract over number, valency and (some) case names, +-- we define the following identifiers. The application programmer +-- should always use these constants instead of the constructors +-- defined in $ResSom$. + + Prep : Type ; + noPrep : Prep ; + + -- Add more overload instances if needed for all categories! + +--2 Nouns + + mkN : overload { + mkN : Str -> N ; -- Predictable nouns + } ; + + mkPN : overload { + mkPN : Str -> PN ; -- Proper nouns + } ; + +--2 Adjectives + + mkA : overload { + mkA : Str -> A ; -- Predictable adjective + } ; + + mkA2 : overload { + mkA2 : Str -> A2 ; -- Predictable A2, no preposition + mkA2 : A -> Prep -> A2 ; -- A2 made from A and Prep + } ; + +--2 Verbs + + -- Verbs + mkV : overload { + mkV : Str -> V ; -- Predictable verb + } ; + + + mkV2 : overload { + mkV2 : Str -> V2 ; -- Predictable transitive verb + mkV2 : V -> Prep -> V2 ; -- V2 made from V and Prep + } ; + + mkV3 : overload { + mkV3 : V -> V3 ; -- No prepositions + mkV3 : V -> Prep -> Prep -> V3 ; -- Prepositions for direct and indirect objects given + } ; + + mkVV : overload { + mkVV : V -> VV ; + } ; + + mkVA : overload { + mkVA : V -> VA ; + } ; + + mkVQ : overload { + mkVQ : V -> VQ ; + } ; + + mkVS : overload { + mkV : V -> VS ; + } ; + + -- Etc. do the same for other V subcats (V2A, V2V, V2S, …) + + + ----- + +--2 Structural categories + + -- If prepositions take case, add that as argument to mkPrep + mkPrep : overload { + mkPrep : Str -> Prep ; + } ; + + mkConj : overload { + mkConj : (and : Str) -> Conj ; -- (coffee) and (tea) + mkConj : (either : Str) -> (or : Str) -> Conj ; -- either (coffee) or (tea) + } ; + + mkSubj : overload { + mkSubj : Str -> Subj ; + } ; + + mkAdv : overload { + mkAdv : Str -> Adv ; + } ; + + mkAdV : overload { + mkAdV : Str -> AdV ; + } ; + + mkAdA : overload { + mkAdA : Str -> AdA ; + } ; + + +--. +------------------------------------------------------------------------------- +-- The definitions should not bother the user of the API. So they are +-- hidden from the document. + + Prep = CatGla.Prep ; + noPrep = mkPrep [] ; + + -- Add more overload instances if needed for all categories! + + -- For explanation of `lin N`, see + -- https://inariksit.github.io/gf/2018/05/25/subtyping-gf.html#lock-fields + + mkN = overload { + mkN : Str -> N = \s -> lin N (ResGla.mkNoun s) ; + -- TODO: more overload instances + } ; + +{- + mkPN = overload { + mkPN : Str -> PN = … + } ; + +--2 Adjectives + + mkA = overload { + mkA : Str -> A = \s -> … + } ; + + mkA2 = overload { + mkA2 : Str -> A2 = \s -> … + mkA2 : A -> Prep -> A2 = \s -> … + } ; + +--2 Verbs +-} + -- Verbs + mkV = overload { + mkV : Str -> V = \s -> lin V (mkVerb s) ; + } ; + +{- + + mkV2 = overload { + mkV2 : Str -> V2 = \s -> … + mkV2 : V -> Prep -> V2 = \s -> … + } ; + + mkV3 = overload { + mkV3 : V -> V3 = \s -> … + mkV3 : V -> Prep -> Prep -> V3 = \s -> … + } ; + + mkVV = overload { + mkVV : V -> VV = \s -> … + } ; + + mkVA = overload { + mkVA : V -> VA = \s -> … + } ; + + mkVQ = overload { + mkVQ : V -> VQ = \s -> … + } ; + + + mkVS = overload { + mkV : V -> VS = \s -> … + } ; + + -- Etc. do the same for other V subcats (V2A, V2V, V2S, …) + + + ----- +-} + + -- If prepositions take case, add that as argument to mkPrep + mkPrep = overload { + mkPrep : Str -> Prep = \s -> lin Prep {s = s} ; + } ; +{- + mkConj = overload { + mkConj : (and : Str) -> Conj = \s -> … + mkConj : (either : Str) -> (or : Str) -> Conj = \s -> … + } ; + + mkSubj = overload { + mkSubj : Str -> Subj = \s -> … + } ; + + mkAdv = overload { + mkAdv : Str -> Adv = \s -> … + } ; + + mkAdV = overload { + mkAdV : Str -> AdV = \s -> … + } ; + + mkAdA = overload { + mkAdA : Str -> AdA = \s -> … + } ; + +-} +-------------------------------------------------------------------------------- + +} diff --git a/src/gaelic/PhraseGla.gf b/src/gaelic/PhraseGla.gf new file mode 100644 index 00000000..a8a5ad3b --- /dev/null +++ b/src/gaelic/PhraseGla.gf @@ -0,0 +1,27 @@ +concrete PhraseGla of Phrase = CatGla ** open Prelude, ResGla in { + + lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; +{- + UttQS qs = qs ; + UttIAdv iadv = iadv ; + UttNP np = + UttIP ip = + UttImpSg pol imp = { s = pol.s ++ imp.s ! Sg ! pol.p } ; + UttImpPl pol imp = + UttImpPol pol imp = {s = pol.s ++ imp.s ! Sg ! pol.p} ; + UttVP vp = {s = linVP vp} ; + UttAP ap = { s = ap.s } ; + UttAdv adv = {s = } ; + UttCN n = {s = } ; + UttCard n = {s = } ; + UttInterj i = i ; -} + NoPConj = {s = []} ; +-- PConjConj conj = {s = conj.s1 ++ conj.s2 ! …} ; + + NoVoc = {s = []} ; +-- VocNP np = { s = "," ++ np.s ! … } ; + +} diff --git a/src/gaelic/QuestionGla.gf b/src/gaelic/QuestionGla.gf new file mode 100644 index 00000000..d568c3bb --- /dev/null +++ b/src/gaelic/QuestionGla.gf @@ -0,0 +1,105 @@ +concrete QuestionGla of Question = CatGla ** open + Prelude, ResGla, ParadigmsGla, (V=VerbGla), (Noun=NounGla), (S=StructuralGla) in { + +-- A question can be formed from a clause ('yes-no question') or +-- with an interrogative. +-- Interrogative pronouns can be formed with interrogative +-- determiners, with or without a noun. + +{- +lin + -- : IDet -> CN -> IP ; -- which five songs + IdetCN idet cn = Noun.DetCN idet cn ** { + } ; + + -- : IDet -> IP ; -- which five + IdetIP idet = Noun.DetNP idet ** {sp = idet.sp}; + + -- : IQuant -> Num -> IDet ; -- which (five) + IdetQuant iquant num = iquant ** { + } ; + + -- : IP -> ClSlash -> QCl ; -- whom does John love + QuestSlash ip cls = cls ** { + + } ; + + -- : Cl -> QCl ; + QuestCl cl = cl ** { + }; + + + -- : IP -> VP -> QCl ; + QuestVP ip cl = cl ** { + } ; + + -- : IAdv -> Cl -> QCl ; -- why does John walk + QuestIAdv iadv cls = { + } ; + + -- : IP -> IComp ; + CompIP ip = {s = ip.s ! } ; -- who (is it) + + -- : IComp -> NP -> QCl ; -- where is John? + QuestIComp icomp np = { + } ; + + +-- Interrogative pronouns can be formed with interrogative +-- determiners, with or without a noun. + + -- : IDet -> CN -> IP ; -- which five songs + IdetCN idet cn = + + -- : IDet -> IP ; -- which five + IdetIP idet = + +-- They can be modified with adverbs. + + -- : IP -> Adv -> IP ; -- who in Paris + AdvIP = Noun.AdvNP ; + +-- Interrogative quantifiers have number forms and can take number modifiers. + + -- : IQuant -> Num -> IDet ; -- which (five) + IdetQuant = Noun.DetQuant ; + +-- Interrogative adverbs can be formed prepositionally. + -- : Prep -> IP -> IAdv ; -- with whom + PrepIP prep ip = + +-- They can be modified with other adverbs. + + -- : IAdv -> Adv -> IAdv ; -- where in Paris + AdvIAdv iadv adv = + +-- Interrogative complements to copulas can be both adverbs and +-- pronouns. + + -- : IAdv -> IComp ; + CompIAdv iadv = iadv ; -- where (is it) + + +-- More $IP$, $IDet$, and $IAdv$ are defined in $Structural$. + +-- Wh questions with two or more question words require a new, special category. + + lincat + -- buy what where + QVP = + lin + -- : VPSlash -> IP -> QVP ; -- buys what + ComplSlashIP vps ip = + + -- : VP -> IAdv -> QVP ; -- lives where + AdvQVP vp iadv = + + -- : QVP -> IAdv -> QVP ; -- buys what where + AddAdvQVP qvp iadv = + + -- : IP -> QVP -> QCl ; -- who buys what where + QuestQVP ip qvp = +-} + + +} diff --git a/src/gaelic/RelativeGla.gf b/src/gaelic/RelativeGla.gf new file mode 100644 index 00000000..9abc5c36 --- /dev/null +++ b/src/gaelic/RelativeGla.gf @@ -0,0 +1,24 @@ +concrete RelativeGla of Relative = CatGla ** open + ResGla, Prelude in { + +{- +lin + -- : Cl -> RCl ; -- such that John loves her + RelCl cl = cl ** { + } ; + + -- : RP -> VP -> RCl ; + RelVP rp vp = { + } ; + + -- : RP -> ClSlash -> RCl ; -- who I went with + RelSlash rp cls = { + } ; + + -- : RP ; + IdRP = {s = "that"} ; + + -- : Prep -> NP -> RP -> RP ; -- the mother of whom + FunRP prep np rp = +-} +} diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf new file mode 100644 index 00000000..dc277483 --- /dev/null +++ b/src/gaelic/ResGla.gf @@ -0,0 +1,275 @@ +resource ResGla = open Prelude, Predef in { + +-------------------------------------------------------------------------------- +-- General notes + +-- ** Naming ** +{- +I'm using the naming scheme for lincats and opers as explained here: +https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#my-naming-scheme-for-lincats-and-opers +-} + +-- ** File structure ** +-- The rest of this module is organised as follows: + + ----------------------------- + -- Grammatical categor(y|ies) + + {- + General comments on the cat(s) + + params related to the cat(s) + + opers related to the cat(s) + -} + +-------------------------------------------------------------------------------- +-- Nouns + + +param + Gender = Masc | Fem ; + Case = Nom | Gen | Dat | Voc ; + Number = Sg + | Pl + | Dual -- only after number 2 + ; + Person = P1 | P2 | P3 ; + +oper + LinN : Type = { + s : + Number => + Case => + Str ; + g : Gender ; + } ; + + -- Most often, the lincat for CN is the same as N, with possibly some additional fields. + -- However, sometimes you need more fields than just the s field, e.g. to keep word order flexible, or to add clitics and make sure they attach to the head, not modifiers. + -- If you don't know what the previous line means, you can get started with just a single s field. + -- You'll notice later whether you need such a field or not. + LinCN : Type = LinN + -- ** {postmod/premod/… : Str} -- if needed + ; + + LinPN : Type = { + s : Str ; + n : Number ; -- Proper nouns often have already an inherent number; you don't usually say "a Paris / many Parises" + g : Gender ; -- inherent gender/noun class, if your language has that + } ; + + -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 + mkNoun : Str -> Gender -> LinN = \str,g -> { + s = table { + _ => \\_ => str -- TODO: actual morphology + } ; + g = g ; + -- If your nouns have gender, it should come here as inherent field. + -- Usually you need to give the gender as an argument to mkNoun. + } ; + + linCN : LinCN -> Str = \cn -> cn.s ! Sg ! Nom + -- ++ cn.postmod -- If there is another field, use here + ; + +--------------------------------------------- +-- Numeral + +-- Used in NumeralGla + param + CardOrd = NCard | NOrd ; + + oper + LinNumeral : Type = {s : CardOrd => Str ; n : Number} ; + + mkNumeral : (card, ord : Str) -> LinNumeral = \card,ord -> { + s = table { + NCard => card ; -- aon(a) -- TODO: allomorph of this depends on the following word? + NOrd => ord -- a' chiad + } ; + n = Pl ; -- NB. singular for 1, 2, 20 + multiples of 20 and 100 (Lamb, p. 218) + } ; + +--------------------------------------------- +-- Pronoun + + +oper + LinPron : Type = { + s : Case => Str ; + n : Number ; + p : Person ; + -- g : Gender ; ?? -- we have already he_Pron and she_Pron in abstract syntax, does this affect inflection? + } ; + + mkPron : (_ : Str) -> Person -> Number -> LinPron = \str,per,num -> { + s = \\_ => str ; -- Pronoun inflection is often irregular, so possibly this constructor requires several forms as argument, even if mkNoun is nice and regular + p = per ; + n = num ; + } ; + +--------------------------------------------- +-- NP + +{- +In the RGL, a NP may come from a common noun, proper noun or pronoun. +Pronouns are the only ones that have an inherent person (nouns are almost always 3rd person! please give me counterexamples if you can think of any.) +So we can often say that NP's lincat is the same as Prons. + +NB. for later, when you want to make Pron into possessives, you may need more fields in LinPron than in LinNP. +That's why I'm copying over the definition below, instead of the neater `LinNP : Type = LinPron`. +-} + +param + Definiteness = Definite | Indefinite ; + -- Some prepositions govern different case when definite vs. indefinite + +oper + LinNP : Type = { +-- art : Str ; -- to be replaced with a combo coming from Prep, if argument of PrepNP? see Lamb p. 225 + -- TODO: is that an issue when the allomorph has been chosen by an inherent param in CN? + -- does that param need to be kept in LinNP, and Prep need an inflection table from that param? + -- or do we have an exhaustive list of prepositions that merge, and we can make that into a param and put on a LHS here? + + s : Case => Str ; -- TODO: is lenition a separate dimension from case? + + -- TODO can we make this combo of inherent params leaner? + n : Number ; + p : Person ; + d : Definiteness ; + } ; + + linNP : LinNP -> Str = \np -> np.s ! Nom ; + + emptyNP : LinNP = { + s = \\_ => [] ; + n = Sg ; + p = P3 ; + d = Indefinite ; + } ; + +-------------------------------------------------------------------------------- +-- Det, Quant, Card, Ord + + -- If your language has a number, it is very very very likely that + -- Quant has a variable number and Det has inherent number. + + LinQuant : Type = { + s, -- quantifier in a context, e.g. 'this (cat) (is nice)' + sp -- quantifier as standalone, e.g. 'this (is nice)' + : Number => Str ; + } ; + + LinDet : Type = { + s,s2 : Str ; + n : Number ; + } ; + + -- Can you reuse your mkNoun? Do nouns and quantifiers inflect the same way? + mkQuant : Str -> Str -> LinQuant = \this, these -> { + s, + sp = table { + Sg => this ; + _ => these } ; + }; + + mkDet : (seven, teen : Str) -> Number -> LinDet = \aon, deug, num -> { + s = aon ; + s2 = deug ; + n = num + } ; + +-------------------------------------------------------------------------------- +-- Adpositions + +{- The main use of Prep is in the fun + + PrepNP : Prep -> NP -> Adv + + Despite the name of the RGL category, a 'Prep' can be a preposition, postposition, + or just an instruction to choose a particular case from the NP. + A language may use one, two or all these strategies. + +-} + +-- TODO: prepositions can merge with articles +-- Lamb, page 210: obair _sa_ cheàrdaich 'working _in+the_ forge' + +-- more on preps: Lamb, p.224 + +oper + LinPrep : Type = { + s : Str ; + + c2 : Definiteness => Case ; -- most often dative + + + -- If your language has both pre- and postpositions, you need an inherent parameter in Prep to record which one a given Prep is. + -- position : PreOrPost ; + + -- Some cause lenition—is that separate from case? + } ; + + +-------------------------------------------------------------------------------- +-- Adjectives +-- Lamb p. 220 basic morphology, degree +-- Lamb p. 246: predicative adjectives + + LinA : Type = SS ; + LinA2 : Type = LinA ; + + mkAdj : Str -> LinA = \str -> {s = str} ; + + AdjPhrase : Type = LinA ; -- ** {compar : Str} ; +-------------------------------------------------------------------------------- +-- Verbs + +param + VForm = TODOVF Number Person ; + +oper + LinV : Type = { + s : VForm => Str + } ; + + LinV2 : Type = LinV ** { + c2 : LinPrep ; + } ; + + mkVerb : Str -> LinV = \str -> { + s = table { + _ => str + } + } ; + + copula : LinV = {s = \\_ => "TODO: copula"} ; -- often useful + +------------------ +-- VP +-- Lamb p. 229 +-- "tense, aspect, modality, voice, person and number. There are contrasts to be seen, as above, between inflected and periphrastic forms and, as a whole, periphrasis is more productive." + + LinVP : Type = { + s : VForm => Str ; + } ; + + LinVPSlash : Type = LinVP ** { + c2 : LinPrep ; + } ; + + linVP : LinVP -> Str = \vp -> vp.s ! TODOVF Sg P3 ; + +-------------------------------------------------------------------------------- +-- Cl, S + + -- Operations for clauses, sentences + LinCl : Type = { + subj : Str ; + pred : Str ; -- TODO: depend on Temp and Pol + } ; + + linCl : LinCl -> Str = \cl -> cl.subj ++ cl.pred ; + +} diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf new file mode 100644 index 00000000..893e105a --- /dev/null +++ b/src/gaelic/SentenceGla.gf @@ -0,0 +1,76 @@ + +concrete SentenceGla of Sentence = CatGla ** open + TenseX, ResGla, (AM=AdverbGla), Prelude in { + +flags optimize=all_subs ; + +lin + +--2 Clauses + + -- : NP -> VP -> Cl + PredVP np vp = { + subj = np.s ; -- ! Nom, if there are cases + pred = + -- table {something with tense+polarity => + vp.s ! TODOVF np.n np.p + -- TODO: all of the VP's tense and polarity should be open here! + -- PredVP only decides the subject. + -- } + } ; + +{- + -- : SC -> VP -> Cl ; -- that she goes is good + PredSCVP sc vp = ; + +--2 Clauses missing object noun phrases + -- : NP -> VPSlash -> ClSlash ; + SlashVP = + + -- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today + AdvSlash cls adv = + + -- : Cl -> Prep -> ClSlash ; -- (with whom) he walks + SlashPrep cl prep = cl ** {c2 = prep} ; + +-- Imperatives + -- : VP -> Imp ; + ImpVP vp = + +--2 Embedded sentences + + -- : S -> SC ; + EmbedS s = + + -- : QS -> SC ; + EmbedQS qs = + + -- : VP -> SC ; + EmbedVP vp = +-} +--2 Sentences + + -- : Temp -> Pol -> Cl -> S ; + UseCl t p cl = { + s = cl.subj ++ t.s ++ p.s ++ cl.pred -- ! t.t ! p.p -- eventually + } ; +{- + -- : Temp -> Pol -> QCl -> QS ; + UseQCl t p cl = + + -- : Temp -> Pol -> RCl -> RS ; + UseRCl t p cl = + + -- AdvS : Adv -> S -> S ; -- then I will go home + AdvS adv s = + + -- ExtAdvS : Adv -> S -> S ; -- next week, I will go home + ExtAdvS adv s = + + -- : S -> Subj -> S -> S ; + SSubjS s1 subj s2 = + + -- : S -> RS -> S ; -- she sleeps, which is good + RelS sent rs = +-} +} diff --git a/src/gaelic/StructuralGla.gf b/src/gaelic/StructuralGla.gf new file mode 100644 index 00000000..e76d33ca --- /dev/null +++ b/src/gaelic/StructuralGla.gf @@ -0,0 +1,171 @@ +concrete StructuralGla of Structural = CatGla ** + open Prelude, ResGla, (Noun=NounGla), ParadigmsGla in { + +------- +-- Ad* +{- +lin almost_AdA = +lin almost_AdN = +lin at_least_AdN = +lin at_most_AdN = +lin so_AdA = +lin too_AdA = +lin very_AdA = + +lin as_CAdv = +lin less_CAdv = +lin more_CAdv = + +lin how8much_IAdv = +lin when_IAdv = + +lin how_IAdv = +lin where_IAdv = +lin why_IAdv = + +lin always_AdV = ss "" ; + +lin everywhere_Adv = ss "" ; +lin here7from_Adv = ss "" ; +lin here7to_Adv = ss "" ; +lin here_Adv = ss "" ; +lin quite_Adv = ss "" ; +lin somewhere_Adv = ss "" ; +lin there7from_Adv = ss "" ; +lin there7to_Adv = ss "" ; +lin there_Adv = ss "" ; + +-} +------- +-- Conj + +-- The lincat of Conj is Coordination.ConjunctionDistr ** {n:Number} +-- which means that there are two fields for the strings, and +-- n:Number which specifies the number of the resulting NP. + +lin and_Conj = {s1 = [] ; s2 = "and" ; n = Pl} ; +-- lin or_Conj = +-- lin if_then_Conj = +lin both7and_DConj = {s1 = "both" ; s2 = "and" ; n = Pl} ; +-- lin either7or_DConj = + +-- lin but_PConj = +-- lin otherwise_PConj = +-- lin therefore_PConj = + + +----------------- +-- *Det and Quant +{- +lin how8many_IDet = +lin every_Det = + +lin all_Predet = {s = ""} ; +lin not_Predet = { s = "" } ; +lin only_Predet = { s = "" } ; +lin most_Predet = {s = ""} ; + +lin few_Det = R.indefDet "" pl ; +lin many_Det = R.indefDet "" pl ; +lin much_Det = R.indefDet "" sg ; + +lin somePl_Det = +lin someSg_Det = + +lin no_Quant = +lin that_Quant = mkQuant "" ; +lin this_Quant = mkQuant "" ; +lin which_IQuant = mkQuant "" ; + +----- +-- NP + +lin somebody_NP = + + +lin everybody_NP = +lin everything_NP = +lin nobody_NP = +lin nothing_NP = +lin somebody_NP = +lin something_NP = + +------- +-- Prep + +lin above_Prep = mkPrep "" ; +lin after_Prep = mkPrep "" ; +lin before_Prep = mkPrep "" ; +lin behind_Prep = mkPrep "" ; +lin between_Prep = = mkPrep "" ; +lin by8agent_Prep = mkPrep "" ; +lin by8means_Prep = mkPrep "" ; +lin during_Prep = mkPrep "" ; +lin except_Prep = mkPrep "" ; +lin for_Prep = mkPrep "" ; +lin from_Prep = mkPrep "" ; +lin in8front_Prep = mkPrep "" ; +lin in_Prep = mkPrep "" ; +lin on_Prep = mkPrep "" ; +lin part_Prep = mkPrep ; +lin possess_Prep = mkPrep "" ; +lin through_Prep = mkPrep "" ; +lin to_Prep = mkPrep "k" ; +lin under_Prep = mkPrep "" ; +lin with_Prep = mkPrep "" ; +lin without_Prep = mkPrep "" ; + +------- +-- Pron + +-- Pronouns are closed class, no constructor in ParadigmsGla. +lin it_Pron = +lin i_Pron = +lin youPol_Pron = +lin youSg_Pron = +lin he_Pron = +lin she_Pron = +lin we_Pron = +lin youPl_Pron = +lin they_Pron = + +lin whatPl_IP = +lin whatSg_IP = +lin whoPl_IP = +lin whoSg_IP = + +------- +-- Subj + +lin although_Subj = +lin because_Subj = +lin if_Subj = +lin that_Subj = +lin when_Subj = + + +------ +-- Utt + +lin language_title_Utt = ss "" ; +lin no_Utt = ss "" ; +lin yes_Utt = ss "" ; + + +------- +-- Verb + +lin have_V2 = + +lin can8know_VV = -- can (capacity) +lin can_VV = -- can (possibility) +lin must_VV = +lin want_VV = + +------ +-- Voc + +lin please_Voc = ss "" ; +-} + +} diff --git a/src/gaelic/SymbolGla.gf b/src/gaelic/SymbolGla.gf new file mode 100644 index 00000000..0878fe29 --- /dev/null +++ b/src/gaelic/SymbolGla.gf @@ -0,0 +1,73 @@ +--# -path=.:../abstract:../common:../prelude + +concrete SymbolGla of Symbol = CatGla ** + open Prelude, ParadigmsGla, ResGla, (Noun=NounGla) in { + +lin + + -- : Symb -> PN ; -- x + SymbPN i = mkPN_onRuntimeToken i.s ; + + -- : Int -> PN ; -- 27 + IntPN i = mkPN_onRuntimeToken i.s ; + + -- : Float -> PN ; -- 3.14159 + FloatPN i = mkPN_onRuntimeToken i.s ; + + -- : Card -> PN ; -- twelve [as proper name] + NumPN i = mkPN_onRuntimeToken (i.s ! NCard) ; + +lin +-- CNIntNP cn i = {} ; + + -- : Det -> CN -> [Symb] -> NP ; -- (the) (2) numbers x and y + CNSymbNP det cn xs = + let cnSymb : CN = cn ** {postmod = cn.postmod ++ xs.s} + in Noun.DetCN det cnSymb ; + + -- : CN -> Card -> NP ; -- level five ; level 5 + CNNumNP cn i = + let cnSymb : CN = cn ** {postmod = cn.postmod ++ i.s} + in Noun.MassNP cnSymb ; + + -- : Symb -> S ; + SymbS sy = sy ; + + -- : Symb -> Card ; + SymbNum sy = mkNumeral_onRuntimeToken sy.s ; + + -- : Symb -> Ord ; + SymbOrd sy = sy ; ---- TODO: nothing added to it. Lincat of Ord is just SS from the beginning. + + oper + -- To make Card or PN from a runtime argument, cannot use the single + operation. + -- See https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#unsupported-token-gluing + + mkNumeral_onRuntimeToken : Str -> LinNumeral = \str -> { + s = table { + NCard => str ; + NOrd => str ++ BIND ++ "th" + } ; + n = Pl ; -- NB. probably singular for number 1 + } ; + + mkPN_onRuntimeToken : Str -> LinPN = \str -> { + s = + -- table {_ => -- If lincat of PN changes so that it's an inflection table, uncomment this + str + -- } + ; + n = Sg ; + } ; + +lincat + Symb, [Symb] = SS ; + +lin + MkSymb s = s ; + + BaseSymb = infixSS "and" ; -- this comes between the last two ones + ConsSymb = infixSS "," ; + + +} diff --git a/src/gaelic/VerbGla.gf b/src/gaelic/VerbGla.gf new file mode 100644 index 00000000..b51fcc87 --- /dev/null +++ b/src/gaelic/VerbGla.gf @@ -0,0 +1,114 @@ +concrete VerbGla of Verb = CatGla ** open ResGla, AdverbGla, Prelude in { + + +lin + +----- +-- VP + -- : V -> VP + -- NB. assumes that lincat V = lincat VP + -- This will most likely change when you start working with VPs + UseV v = v ; + +{- + -- : V2 -> VP ; + PassV2 v2 = + + -- : VPSlash -> VP ; + ReflVP vps = + + -- : VV -> VP -> VP ; + ComplVV vv vp = + + -- : VS -> S -> VP ; + ComplVS vs s = + + -- : VQ -> QS -> VP ; + ComplVQ vq qs = + + -- : VA -> AP -> VP ; + ComplVA va ap = + + -- : Comp -> VP ; + UseComp comp = +-} +-------- +-- Slash +{- + -- : V2 -> VPSlash + SlashV2a v2 = + + -- : V3 -> NP -> VPSlash ; -- give it (to her) + Slash2V3 v3 dobj = + + -- : V3 -> NP -> VPSlash ; -- give (it) to her + Slash3V3 v3 iobj = + + SlashV2A v2 adj = + + -- : V2S -> S -> VPSlash ; -- answer (to him) that it is good + SlashV2S v2s s = + + -- : V2V -> VP -> VPSlash ; -- beg (her) to go + SlashV2V v2v vp = ; + + -- : V2Q -> QS -> VPSlash ; -- ask (him) who came + SlashV2Q v2q qs = ; + + -- : V2A -> AP -> VPSlash ; -- paint (it) red + SlashV2A v2a ap = ; + + + -- : VPSlash -> NP -> VP + -- Often VPSlash has a field called c2, which is used to pick right form of np complement + ComplSlash vps np = vps ** { + compl = np.s ! vps.c2 + } ; + + -- : VV -> VPSlash -> VPSlash ; + SlashVV vv vps = ComplVV vv vps ** { + } ; + + -- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy + SlashV2VNP v2v np vps = + + -- : VP -> Adv -> VP ; -- sleep here + AdvVP vp adv = + + -- : AdV -> VP -> VP ; -- always sleep + AdVVP adv vp = + + -- : VPSlash -> Adv -> VPSlash ; -- use (it) here + AdvVPSlash = insertAdv ; + + -- : VP -> Adv -> VP ; -- sleep , even though ... + ExtAdvVP vp adv = ; + + -- : AdV -> VPSlash -> VPSlash ; -- always use (it) + AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ; + + -- : VP -> Prep -> VPSlash ; -- live in (it) + VPSlashPrep vp prep = vp ** {c2 = prep} ; + + +--2 Complements to copula + +-- Adjectival phrases, noun phrases, and adverbs can be used. + + -- : AP -> Comp ; + CompAP ap = + + -- : CN -> Comp ; + CompCN cn = + + -- NP -> Comp ; + CompNP np = + + -- : Adv -> Comp ; + CompAdv adv = + + -- : VP -- Copula alone; + UseCopula = +-} + +} From c9c17230902602e669702d42d2ea981c97097614 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 20 Aug 2025 15:13:27 +0200 Subject: [PATCH 018/169] some morphology I pulled out of my ass --- src/gaelic/ResGla.gf | 186 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 163 insertions(+), 23 deletions(-) diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index dc277483..8a47a32c 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -35,23 +35,94 @@ param | Dual -- only after number 2 ; Person = P1 | P2 | P3 ; + Definiteness = Def | Indef ; -- Some prepositions govern different case when definite vs. indefinite + oper LinN : Type = { - s : - Number => - Case => - Str ; - g : Gender ; + base, -- tunnag fuil loch + lenited, -- thunnag fhuil loch + palatalised, -- tunnaig fuil loch + lenited_palatalised, -- thunnaig fhuil loch + suffixE, -- tunnaige fuile loche + lenited_suffixA, -- thunnaga fala locha + suffixAn -- tunnagan nonExist lochan + : Str ; + g : Gender } ; - -- Most often, the lincat for CN is the same as N, with possibly some additional fields. - -- However, sometimes you need more fields than just the s field, e.g. to keep word order flexible, or to add clitics and make sure they attach to the head, not modifiers. - -- If you don't know what the previous line means, you can get started with just a single s field. - -- You'll notice later whether you need such a field or not. - LinCN : Type = LinN - -- ** {postmod/premod/… : Str} -- if needed - ; + +{- + +PL.VOC: lenited + non-palatalized + -a + +class 1 masculine noun + boireannach SG.*.NOM, SG.INDEF.DAT, PL.DEF.GEN + boireannaich SG.INDEF.GEN, PL.*.NOM, PL.*.DAT + bhoireannach PL.INDEF.GEN, SG.DEF.DAT + bhoireannaich SG.DEF.GEN, SG.VOC + bhoireannacha PL.VOC + + indefinite + singular plural + nominative boireannach boireannaich + genitive boireannaich bhoireannach + dative boireannach boireannaich; boireannachaibh✝ + definite + singular plural + nominative (am) boireannach (na) boireannaich + genitive (a') bhoireannaich (nam) boireannach + dative (a') bhoireannach (na) boireannaich; boireannachaibh✝ + vocative bhoireannaich bhoireannacha + + +class 2 feminine noun + not affected by lenition? + làmh SG.*.NOM, PL.*.GEN, SG.VOC + làmh (imagine there was lenition) PL.INDEF.GEN, SG.VOC + làimh SG.*.DAT + làimhe SG.*.GEN + làmhan PL.*.NOM, PL.*.DAT + làmha PL.VOC + + indefinite + singular plural + nominative làmh làmhan + genitive làimhe làmh + dative làimh làmhan + definite + singular plural + nominative (an) làmh (na) làmhan + genitive (na) làimhe (nan) làmh + dative (an) làimh (na) làmhan + vocative làmh làmha + +class 2a feminine noun + tunnag SG.*.NOM, PL.DEF.GEN + thunnag PL.INDEF.GEN, SG.VOC + tunnaig SG.*.DAT, SG.*.GEN (allomorph (secondary?)), + tunnaige SG.*.GEN (allomorph (primary?)) + tunnagan PL.*.NOM, PL.*.DAT + thunnaga PL.VOC + + indefinite + singular plural + nominative tunnag tunnagan + genitive tunnaige, thunnag + tunnaig + dative tunnaig tunnagan + definite + singular plural + nominative (an) tunnag (na) tunnagan + genitive (na) tunnaige, (nan) tunnag + tunnaig + dative (an) tunnaig (na) tunnagan + vocative thunnag thunnaga + +class 3 + + +-} LinPN : Type = { s : Str ; @@ -60,19 +131,91 @@ oper } ; -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 - mkNoun : Str -> Gender -> LinN = \str,g -> { - s = table { - _ => \\_ => str -- TODO: actual morphology - } ; + mkNoun : (b,l,p,lp,se,sa,lsa,san : Str) -> Gender -> LinN = \b,l,p,lp,se,sa,lsa,san,g -> { + base = b ; -- tunnag fuil loch + lenited = l ; -- thunnag fhuil loch + palatalised = p ; -- tunnaig fuil loch + lenited_palatalised = lp ; -- thunnaig fhuil loch + suffixE = se ; -- tunnaige fuile loch + suffixA = sa ; -- tunnaga fala locha + lenited_suffixA = lsa ; -- thunnaga fala locha + suffixAn = san ; -- tunnagan g = g ; - -- If your nouns have gender, it should come here as inherent field. - -- Usually you need to give the gender as an argument to mkNoun. } ; - linCN : LinCN -> Str = \cn -> cn.s ! Sg ! Nom + -- TODO: no idea if this is even remotely correct + -- can always replace morphology with Katya's automated tool + useN : LinN -> LinCN = \n -> n ** { + s = table { + Pl => table { + Indef => table { + Nom|Dat => fm n.suffixAn n.palatalised ; + Gen => n.lenited ; + Voc => n.lenited_suffixA } ; + Def => table { + Nom|Dat => fm n.suffixAn n.palatalised ; + Gen => n.base ; + Voc => fm n.lenited n.lenited_palatalised } + } ; + _ => table { -- Sg and Dl + Indef => table { + Nom => n.base ; + Gen => fm n.suffixE n.palatalised ; + Dat => fm n.palatalised n.base ; + Voc => fm n.lenited n.lenited_palatalised } ; + Def => table { + Nom => n.base ; + Gen => fm n.suffixE n.lenited_palatalised ; + Dat => fm n.palatalised n.lenited ; + Voc => fm n.lenited n.lenited_palatalised } + } + } + } where { + fm : Str -> Str -> Str = \fem,masc -> case n.g of { + Fem => fem ; + Masc => masc + } + }; + + LinCN : Type = { + s : Number => + Definiteness => -- ???? is this needed ?????? + Case => + Str ; + g : Gender ; + -- ** postmod/premod/… : Str -- if needed? determiners can put stuff after head but it only comes at NP + } ; + + linCN : LinCN -> Str = \cn -> cn.s ! Sg ! Indef ! Nom -- ++ cn.postmod -- If there is another field, use here ; + +-- some test nouns — TODO: do smart paradigms +tunnag_N : LinN = { + base = "tunnag" ; + lenited = "thunnag" ; + palatalised = "tunnaig" ; + lenited_palatalised = "thunnaig" ; + suffixE = "tunnaige" ; + suffixA = "tunnaga" ; + lenited_suffixA = "thunnaga" ; + suffixAn = "tunnagan" ; + g = Fem ; + } ; + +boireannach_N : LinN = { + base = "boireannach" ; + lenited = "bhoireannach" ; + palatalised = "boireannaich" ; + lenited_palatalised = "bhoireannaich" ; + suffixE = "bhoireannaiche" ; + suffixA = "boireannacha" ; + lenited_suffixA = "bhoireannacha" ; + suffixAn = "boireannachan" ; + g = Masc ; + } ; + --------------------------------------------- -- Numeral @@ -121,9 +264,6 @@ NB. for later, when you want to make Pron into possessives, you may need more fi That's why I'm copying over the definition below, instead of the neater `LinNP : Type = LinPron`. -} -param - Definiteness = Definite | Indefinite ; - -- Some prepositions govern different case when definite vs. indefinite oper LinNP : Type = { @@ -146,7 +286,7 @@ oper s = \\_ => [] ; n = Sg ; p = P3 ; - d = Indefinite ; + d = Indef ; } ; -------------------------------------------------------------------------------- From 4b78bd6c6735a20cc0755b73b68fd6df65d059bc Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 20 Aug 2025 15:35:56 +0200 Subject: [PATCH 019/169] yep the morpho sucks, but let's fix it in next commits --- src/gaelic/CatGla.gf | 4 ++-- src/gaelic/LexiconGla.gf | 11 ++++++----- src/gaelic/NounGla.gf | 12 +++++++----- src/gaelic/NumeralGla.gf | 4 +++- src/gaelic/ParadigmsGla.gf | 2 +- src/gaelic/ResGla.gf | 30 +++++++++++++++++++++++++++--- src/gaelic/SentenceGla.gf | 2 +- 7 files changed, 47 insertions(+), 18 deletions(-) diff --git a/src/gaelic/CatGla.gf b/src/gaelic/CatGla.gf index a8032fe9..815d006f 100644 --- a/src/gaelic/CatGla.gf +++ b/src/gaelic/CatGla.gf @@ -55,8 +55,8 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { Det = ResGla.LinDet ; -- s : Str , n : Number Predet = SS ; Quant = ResGla.LinQuant ; -- s : Number => Str - Num = ResGla.LinDet ; - Card = ResGla.LinDet ; + Num = ResGla.LinNum ; + Card = ResGla.LinNum ; ACard = SS ; Ord = SS ; DAP = SS ; diff --git a/src/gaelic/LexiconGla.gf b/src/gaelic/LexiconGla.gf index 96142b55..b1409c01 100644 --- a/src/gaelic/LexiconGla.gf +++ b/src/gaelic/LexiconGla.gf @@ -33,9 +33,9 @@ lin big_A = mkA "" ; lin bike_N = mkN "" ; lin bird_N = mkN "" ; lin bite_V2 = mkV2 "" ; -lin black_A = mkA "" ; -} -lin blood_N = mkN "blood" ; -{-lin blow_V = mkV "" ; +lin black_A = mkA "" ; +lin blood_N = mkN "" ; +lin blow_V = mkV "" ; lin blue_A = mkA "" ; lin boat_N = mkN "" ; lin bone_N = mkN "" ; @@ -195,11 +195,12 @@ lin know_V2 = mkV2 "" ; lin know_VQ = mkVQ (mkV "") ; lin know_VS = mkV "" ; - +-} ---- -- L -lin lake_N = mkN "" ; +lin lake_N = smartN "loch" "locha" "lochan" Masc ; +{- lin lamp_N = mkN "" ; lin language_N = mkN "" ; lin laugh_V = mkV "" ; diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index 24507a91..2987be64 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -8,7 +8,8 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { - s = det.s ++ cn.s ! det.n + s = \\c => det.s ++ cn.s ! det.n ! det.d ! c ; + d = det.d } ; {- -- : PN -> NP ; @@ -53,7 +54,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- MassNP : CN -> NP ; MassNP cn = emptyNP ** { - s = linCN cn + s = cn.s ! Sg ! Indef } ; @@ -65,6 +66,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Quant -> Num -> Det ; DetQuant quant num = quant ** { s = quant.s ! num.n ++ num.s ; + s2 = "DUMMY" ; -- "teen" from numbers like seventeen n = num.n ; } ; @@ -121,10 +123,10 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- : Quant - DefArt = mkQuant "the" "the" ; + DefArt = mkQuant "an" "nan" Def ; -- : Quant - IndefArt = mkQuant "a" [] ; + IndefArt = mkQuant [] [] Indef ; {- -- : Pron -> Quant -- my @@ -136,7 +138,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { --2 Common nouns -- : N -> CN - UseN n = n ; + UseN = useN ; {- -- : N2 -> CN ; diff --git a/src/gaelic/NumeralGla.gf b/src/gaelic/NumeralGla.gf index a7e3af7c..e56c4ea2 100644 --- a/src/gaelic/NumeralGla.gf +++ b/src/gaelic/NumeralGla.gf @@ -1,6 +1,6 @@ concrete NumeralGla of Numeral = CatGla [Numeral,Digits] ** open Prelude, ResGla in { - +{- lincat Digit = LinNumeral ; -- 2..9 Sub10, -- 1..9 @@ -112,4 +112,6 @@ concrete NumeralGla of Numeral = CatGla [Numeral,Digits] ** } ; n = Pl ; -- TODO: handle number 1 } ; + + -} } diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf index 330df734..68984f3f 100644 --- a/src/gaelic/ParadigmsGla.gf +++ b/src/gaelic/ParadigmsGla.gf @@ -117,7 +117,7 @@ oper -- https://inariksit.github.io/gf/2018/05/25/subtyping-gf.html#lock-fields mkN = overload { - mkN : Str -> N = \s -> lin N (ResGla.mkNoun s) ; + mkN : Str -> N = \s -> lin N (ResGla.smartN s (s+"a") (s+"an") Masc) ; -- TODO: more overload instances } ; diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 8a47a32c..d892a148 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -51,6 +51,21 @@ oper g : Gender } ; + smartN = overload { + smartN : (nom,gen,pl : Str) -> Gender -> LinN = \loch,locha,lochan,g -> { + base, + lenited, + palatalised, + lenited_palatalised, + suffixE = loch ; + lenited_suffixA = lochan ; + suffixAn = lochan ; + g = g + } +-- ; +-- smartN : (…,…,…,… : Str) + } ; + {- @@ -123,7 +138,7 @@ class 3 -} - +oper LinPN : Type = { s : Str ; n : Number ; -- Proper nouns often have already an inherent number; you don't usually say "a Paris / many Parises" @@ -299,25 +314,34 @@ oper s, -- quantifier in a context, e.g. 'this (cat) (is nice)' sp -- quantifier as standalone, e.g. 'this (is nice)' : Number => Str ; + d : Definiteness ; } ; LinDet : Type = { s,s2 : Str ; n : Number ; + d : Definiteness ; + } ; + + LinNum : Type = { + s : Str ; + n : Number ; } ; -- Can you reuse your mkNoun? Do nouns and quantifiers inflect the same way? - mkQuant : Str -> Str -> LinQuant = \this, these -> { + mkQuant : Str -> Str -> Definiteness -> LinQuant = \this,these,d -> { s, sp = table { Sg => this ; _ => these } ; + d = d ; }; mkDet : (seven, teen : Str) -> Number -> LinDet = \aon, deug, num -> { s = aon ; s2 = deug ; - n = num + n = num ; + d = Indef ---- } ; -------------------------------------------------------------------------------- diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf index 893e105a..5fe17d4b 100644 --- a/src/gaelic/SentenceGla.gf +++ b/src/gaelic/SentenceGla.gf @@ -10,7 +10,7 @@ lin -- : NP -> VP -> Cl PredVP np vp = { - subj = np.s ; -- ! Nom, if there are cases + subj = np.s ! Nom ; pred = -- table {something with tense+polarity => vp.s ! TODOVF np.n np.p From cabf56aea90feb2362b634633001a2a034aa4807 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 20 Aug 2025 16:21:45 +0200 Subject: [PATCH 020/169] still broken but in a different way --- src/gaelic/ResGla.gf | 61 ++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index d892a148..a5c33eab 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -40,26 +40,25 @@ param oper LinN : Type = { - base, -- tunnag fuil loch - lenited, -- thunnag fhuil loch - palatalised, -- tunnaig fuil loch - lenited_palatalised, -- thunnaig fhuil loch - suffixE, -- tunnaige fuile loche - lenited_suffixA, -- thunnaga fala locha - suffixAn -- tunnagan nonExist lochan + base, -- tunnag fuil loch fear litir + gen, -- tunnaige fala locha fir litreach ("de-palatalised") + pl, -- tunnagan lochan fir litrichean + -- TODO: for nouns that only use suffixes, should these just show theoretical forms? + lenited, -- thunnag fhuil loch fhear + palatalised, -- tunnaig fuil loch fir + lenited_palatalised -- thunnaig fhuil loch fhir : Str ; g : Gender } ; smartN = overload { smartN : (nom,gen,pl : Str) -> Gender -> LinN = \loch,locha,lochan,g -> { + gen = locha ; + pl = lochan ; base, lenited, palatalised, - lenited_palatalised, - suffixE = loch ; - lenited_suffixA = lochan ; - suffixAn = lochan ; + lenited_palatalised = loch ; g = g } -- ; @@ -146,15 +145,13 @@ oper } ; -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 - mkNoun : (b,l,p,lp,se,sa,lsa,san : Str) -> Gender -> LinN = \b,l,p,lp,se,sa,lsa,san,g -> { - base = b ; -- tunnag fuil loch - lenited = l ; -- thunnag fhuil loch - palatalised = p ; -- tunnaig fuil loch - lenited_palatalised = lp ; -- thunnaig fhuil loch - suffixE = se ; -- tunnaige fuile loch - suffixA = sa ; -- tunnaga fala locha - lenited_suffixA = lsa ; -- thunnaga fala locha - suffixAn = san ; -- tunnagan + mkNoun : (b,g,pl,l,p,lp : Str) -> Gender -> LinN = \b,gen,pl,l,p,lp,g -> { + base = b ; -- tunnag fuil loch fear litir + gen = gen ; -- tunnaige fala locha fir litreach + pl = pl ; -- tunnagan lochan fir litrichean + lenited = l ; -- thunnag fhuil loch fhear litir ? + palatalised = p ; -- tunnaig fuil loch fir litir ? + lenited_palatalised = lp ; -- thunnaig fhuil loch fhir litir ? g = g ; } ; @@ -164,23 +161,23 @@ oper s = table { Pl => table { Indef => table { - Nom|Dat => fm n.suffixAn n.palatalised ; - Gen => n.lenited ; - Voc => n.lenited_suffixA } ; + Nom|Dat => n.pl ; + Gen => n.gen ; + Voc => glue n.lenited "a" } ; Def => table { - Nom|Dat => fm n.suffixAn n.palatalised ; + Nom|Dat => n.pl ; Gen => n.base ; Voc => fm n.lenited n.lenited_palatalised } } ; _ => table { -- Sg and Dl Indef => table { Nom => n.base ; - Gen => fm n.suffixE n.palatalised ; + Gen => n.gen ; Dat => fm n.palatalised n.base ; Voc => fm n.lenited n.lenited_palatalised } ; Def => table { Nom => n.base ; - Gen => fm n.suffixE n.lenited_palatalised ; + Gen => n.gen ; Dat => fm n.palatalised n.lenited ; Voc => fm n.lenited n.lenited_palatalised } } @@ -209,25 +206,21 @@ oper -- some test nouns — TODO: do smart paradigms tunnag_N : LinN = { base = "tunnag" ; + gen = "tunnaige" ; + pl = "tunnagan" ; lenited = "thunnag" ; palatalised = "tunnaig" ; lenited_palatalised = "thunnaig" ; - suffixE = "tunnaige" ; - suffixA = "tunnaga" ; - lenited_suffixA = "thunnaga" ; - suffixAn = "tunnagan" ; + g = Fem ; } ; boireannach_N : LinN = { base = "boireannach" ; + pl,gen = "boireannaich" ; lenited = "bhoireannach" ; palatalised = "boireannaich" ; lenited_palatalised = "bhoireannaich" ; - suffixE = "bhoireannaiche" ; - suffixA = "boireannacha" ; - lenited_suffixA = "bhoireannacha" ; - suffixAn = "boireannachan" ; g = Masc ; } ; From 4f5e67a5811c758ed3a4b5198d7385d2904fda7c Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 20 Aug 2025 16:42:24 +0200 Subject: [PATCH 021/169] make leaner param for CN (morpho still as wrong as always) --- src/gaelic/NounGla.gf | 8 +- src/gaelic/ResGla.gf | 157 +++++++++++--------------------------- src/gaelic/SentenceGla.gf | 2 +- 3 files changed, 50 insertions(+), 117 deletions(-) diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index 2987be64..ac0cbb39 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -8,7 +8,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { - s = \\c => det.s ++ cn.s ! det.n ! det.d ! c ; + s = \\c => det.s ++ cn.s ! getNForm det.n det.d c ; d = det.d } ; {- @@ -54,7 +54,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- MassNP : CN -> NP ; MassNP cn = emptyNP ** { - s = cn.s ! Sg ! Indef + s = \\c => cn.s ! getNForm Sg Indefinite c } ; @@ -123,10 +123,10 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- : Quant - DefArt = mkQuant "an" "nan" Def ; + DefArt = mkQuant "an" "nan" Definite ; -- : Quant - IndefArt = mkQuant [] [] Indef ; + IndefArt = mkQuant [] [] Indefinite ; {- -- : Pron -> Quant -- my diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index a5c33eab..e0d38a55 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -29,16 +29,28 @@ https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#my-naming-scheme-for-l param Gender = Masc | Fem ; - Case = Nom | Gen | Dat | Voc ; + CoreCase = Nom | Gen | Dat ; + Case = CC CoreCase | Voc ; Number = Sg | Pl - | Dual -- only after number 2 ; Person = P1 | P2 | P3 ; - Definiteness = Def | Indef ; -- Some prepositions govern different case when definite vs. indefinite + Definiteness = Definite | Indefinite ; -- Some prepositions govern different case when definite vs. indefinite + NForm = + Indef Number CoreCase + | Def Number Case + | Dual -- only after number 2, only for a handful of nouns. TODO: does it have different cases? + ; oper + getNForm : Number -> Definiteness -> Case -> NForm = \n,d,c -> + case of { + => Indef n Nom ; ---- ??? + => Indef n c ; + => Def n c + } ; + LinN : Type = { base, -- tunnag fuil loch fear litir gen, -- tunnaige fala locha fir litreach ("de-palatalised") @@ -65,85 +77,6 @@ oper -- smartN : (…,…,…,… : Str) } ; - -{- - -PL.VOC: lenited + non-palatalized + -a - -class 1 masculine noun - boireannach SG.*.NOM, SG.INDEF.DAT, PL.DEF.GEN - boireannaich SG.INDEF.GEN, PL.*.NOM, PL.*.DAT - bhoireannach PL.INDEF.GEN, SG.DEF.DAT - bhoireannaich SG.DEF.GEN, SG.VOC - bhoireannacha PL.VOC - - indefinite - singular plural - nominative boireannach boireannaich - genitive boireannaich bhoireannach - dative boireannach boireannaich; boireannachaibh✝ - definite - singular plural - nominative (am) boireannach (na) boireannaich - genitive (a') bhoireannaich (nam) boireannach - dative (a') bhoireannach (na) boireannaich; boireannachaibh✝ - vocative bhoireannaich bhoireannacha - - -class 2 feminine noun - not affected by lenition? - làmh SG.*.NOM, PL.*.GEN, SG.VOC - làmh (imagine there was lenition) PL.INDEF.GEN, SG.VOC - làimh SG.*.DAT - làimhe SG.*.GEN - làmhan PL.*.NOM, PL.*.DAT - làmha PL.VOC - - indefinite - singular plural - nominative làmh làmhan - genitive làimhe làmh - dative làimh làmhan - definite - singular plural - nominative (an) làmh (na) làmhan - genitive (na) làimhe (nan) làmh - dative (an) làimh (na) làmhan - vocative làmh làmha - -class 2a feminine noun - tunnag SG.*.NOM, PL.DEF.GEN - thunnag PL.INDEF.GEN, SG.VOC - tunnaig SG.*.DAT, SG.*.GEN (allomorph (secondary?)), - tunnaige SG.*.GEN (allomorph (primary?)) - tunnagan PL.*.NOM, PL.*.DAT - thunnaga PL.VOC - - indefinite - singular plural - nominative tunnag tunnagan - genitive tunnaige, thunnag - tunnaig - dative tunnaig tunnagan - definite - singular plural - nominative (an) tunnag (na) tunnagan - genitive (na) tunnaige, (nan) tunnag - tunnaig - dative (an) tunnaig (na) tunnagan - vocative thunnag thunnaga - -class 3 - - --} -oper - LinPN : Type = { - s : Str ; - n : Number ; -- Proper nouns often have already an inherent number; you don't usually say "a Paris / many Parises" - g : Gender ; -- inherent gender/noun class, if your language has that - } ; - -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 mkNoun : (b,g,pl,l,p,lp : Str) -> Gender -> LinN = \b,gen,pl,l,p,lp,g -> { base = b ; -- tunnag fuil loch fear litir @@ -159,29 +92,21 @@ oper -- can always replace morphology with Katya's automated tool useN : LinN -> LinCN = \n -> n ** { s = table { - Pl => table { - Indef => table { - Nom|Dat => n.pl ; - Gen => n.gen ; - Voc => glue n.lenited "a" } ; - Def => table { - Nom|Dat => n.pl ; - Gen => n.base ; - Voc => fm n.lenited n.lenited_palatalised } - } ; - _ => table { -- Sg and Dl - Indef => table { - Nom => n.base ; - Gen => n.gen ; - Dat => fm n.palatalised n.base ; - Voc => fm n.lenited n.lenited_palatalised } ; - Def => table { - Nom => n.base ; - Gen => n.gen ; - Dat => fm n.palatalised n.lenited ; - Voc => fm n.lenited n.lenited_palatalised } - } - } + Indef Sg Nom => n.base ; + Indef Sg Gen => n.gen ; + Indef Sg Dat => fm n.palatalised n.base ; + Def Sg (CC Nom) => n.base ; + Def Sg (CC Gen) => fm n.gen n.lenited_palatalised ; + Def Sg (CC Dat) => fm n.palatalised n.lenited ; + Def Sg Voc => n.lenited ; + Indef Pl Nom => n.pl ; + Indef Pl Gen => n.base ; + Indef Pl Dat => n.palatalised ; + Def Pl (CC Nom) => n.pl ; + Def Pl (CC Gen) => n.base ; + Def Pl (CC Dat) => n.pl ; + Def Pl Voc => glue n.lenited "a" ; + Dual => "TODO FIXME I AM DUAL"} } where { fm : Str -> Str -> Str = \fem,masc -> case n.g of { Fem => fem ; @@ -190,15 +115,13 @@ oper }; LinCN : Type = { - s : Number => - Definiteness => -- ???? is this needed ?????? - Case => + s : NForm => Str ; g : Gender ; -- ** postmod/premod/… : Str -- if needed? determiners can put stuff after head but it only comes at NP } ; - linCN : LinCN -> Str = \cn -> cn.s ! Sg ! Indef ! Nom + linCN : LinCN -> Str = \cn -> cn.s ! Indef Sg Nom -- ++ cn.postmod -- If there is another field, use here ; @@ -224,6 +147,16 @@ boireannach_N : LinN = { g = Masc ; } ; +--------------------------------------------- +-- Proper noun + +oper + LinPN : Type = { + s : Str ; + n : Number ; -- Proper nouns often have already an inherent number; you don't usually say "a Paris / many Parises" + g : Gender ; -- inherent gender/noun class, if your language has that + } ; + --------------------------------------------- -- Numeral @@ -288,13 +221,13 @@ oper d : Definiteness ; } ; - linNP : LinNP -> Str = \np -> np.s ! Nom ; + linNP : LinNP -> Str = \np -> np.s ! (CC Nom) ; emptyNP : LinNP = { s = \\_ => [] ; n = Sg ; p = P3 ; - d = Indef ; + d = Indefinite ; } ; -------------------------------------------------------------------------------- @@ -334,7 +267,7 @@ oper s = aon ; s2 = deug ; n = num ; - d = Indef ---- + d = Indefinite -- TODO fix } ; -------------------------------------------------------------------------------- diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf index 5fe17d4b..dd86a7dd 100644 --- a/src/gaelic/SentenceGla.gf +++ b/src/gaelic/SentenceGla.gf @@ -10,7 +10,7 @@ lin -- : NP -> VP -> Cl PredVP np vp = { - subj = np.s ! Nom ; + subj = np.s ! CC Nom ; pred = -- table {something with tense+polarity => vp.s ! TODOVF np.n np.p From 1c87e5ac78d42833e8afea214bab44a133dddf7f Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 21 Aug 2025 15:43:47 +0200 Subject: [PATCH 022/169] misc fixes in morpho (works for 4 nouns!) --- src/gaelic/ResGla.gf | 52 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index e0d38a55..4e120ff8 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -46,7 +46,7 @@ param oper getNForm : Number -> Definiteness -> Case -> NForm = \n,d,c -> case of { - => Indef n Nom ; ---- ??? + => Def n Voc ; => Indef n c ; => Def n c } ; @@ -72,11 +72,44 @@ oper palatalised, lenited_palatalised = loch ; g = g - } --- ; --- smartN : (…,…,…,… : Str) + } ; + smartN : (base : Str) -> Gender -> LinN = \tunnag,g -> { + base = tunnag ; + gen = fm (tunnaig + "e") tunnaig ; + pl = fm (tunnag + "an") tunnaig ; -- for other allomorphs, use 4-argument paradigm + lenited = thunnag ; + palatalised = tunnaig ; + lenited_palatalised = thunnaig ; + g = g + } where { + tunnaig : Str = palatalise tunnag ; + thunnag : Str = lenite tunnag ; + thunnaig : Str = lenite tunnaig ; + fm : Str -> Str -> Str = \fem,masc -> case g of { + Fem => fem ; Masc => masc } + } } ; + vowel : pattern Str = #("a"|"à"|"e"|"i"|"ì"|"o"|"u") ; -- more accents? + diphthong : pattern Str = #("ea"|"oi") ; + lenitable : pattern Str = #("b"|"c"|"f"|"g"|"m"|"p"|"d"|"t"|"s") ; + + palatalise : Str -> Str = \lamh -> case lamh of { + -- f + "ea" + r => f + "i" + r ; -- TODO is this irregular? + boireann@(_ + (#vowel|#diphthong) + ? + _ + (#vowel|#diphthong) + ? + _) + + a@#vowel + ch => boireann + a + "i" + ch ; + tunn@(_ + (#vowel|#diphthong) + ? + _) + + a@#vowel + g => tunn + a + "i" + g ; + l + a@#vowel + mh => l + a + "i" + mh ; + _ => lamh } ; + + lenite : Str -> Str = \tunnag -> case tunnag of { + "s" + ("p"|"g"|"m"|"t") + _ => tunnag ; -- sp, sg, sm, st don't lenite + t@#lenitable + "h" + _ => tunnag ; -- don't lenite twice + t@#lenitable + unnag => t + "h" + unnag ; + _ => tunnag } ; + + -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 mkNoun : (b,g,pl,l,p,lp : Str) -> Gender -> LinN = \b,gen,pl,l,p,lp,g -> { base = b ; -- tunnag fuil loch fear litir @@ -98,15 +131,16 @@ oper Def Sg (CC Nom) => n.base ; Def Sg (CC Gen) => fm n.gen n.lenited_palatalised ; Def Sg (CC Dat) => fm n.palatalised n.lenited ; - Def Sg Voc => n.lenited ; - Indef Pl Nom => n.pl ; - Indef Pl Gen => n.base ; - Indef Pl Dat => n.palatalised ; + Def Sg Voc => fm n.lenited n.lenited_palatalised ; + Indef Pl Nom => fm n.pl n.palatalised ; + Indef Pl Gen => n.lenited ; + Indef Pl Dat => fm n.pl n.palatalised ; -- TODO: is this correct? Def Pl (CC Nom) => n.pl ; Def Pl (CC Gen) => n.base ; Def Pl (CC Dat) => n.pl ; Def Pl Voc => glue n.lenited "a" ; - Dual => "TODO FIXME I AM DUAL"} + Dual => fm n.palatalised n.base -- TODO: is this correct? only for 1-syllable feminine nouns? + } } where { fm : Str -> Str -> Str = \fem,masc -> case n.g of { Fem => fem ; From b8d9098aaa613687d9275a01e613ac96354dd58d Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 21 Aug 2025 15:43:53 +0200 Subject: [PATCH 023/169] add more words --- src/gaelic/LexiconGla.gf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gaelic/LexiconGla.gf b/src/gaelic/LexiconGla.gf index b1409c01..bd5e1e36 100644 --- a/src/gaelic/LexiconGla.gf +++ b/src/gaelic/LexiconGla.gf @@ -30,8 +30,8 @@ lin beer_N = mkN "" ; lin beg_V2V = mkV2V (mkV "") ; lin belly_N = mkN "" ; lin big_A = mkA "" ; -lin bike_N = mkN "" ; -lin bird_N = mkN "" ; +lin bike_N = mkN "" ;-} +lin bird_N = smartN "tunnag" Fem ;{- lin bite_V2 = mkV2 "" ; lin black_A = mkA "" ; lin blood_N = mkN "" ; @@ -160,8 +160,8 @@ lin green_A = mkA "" ; ---- -- H -lin hair_N = mkN "" ; -lin hand_N = mkN "" ; +lin hair_N = mkN "" ;-} +lin hand_N = smartN "làmh" Fem ;{- lin harbour_N = mkN "" ; lin hat_N = mkN "" ; lin hate_V2 = mkV2 "" ; @@ -223,7 +223,7 @@ lin love_V2 = mkV2 "" ; ---- -- M -lin man_N = mkN "" ; +-}lin man_N = smartN "fear" Masc ;{- lin married_A2 = mkA2 (mkA "") ; lin meat_N = mkN "" ; lin milk_N = mkN "" ; @@ -407,8 +407,8 @@ lin wind_N = mkN "" ; lin window_N = mkN "" ; lin wine_N = mkN "" ; lin wing_N = mkN "" ; -lin wipe_V2 = mkV2 "" ; -lin woman_N = mkN "" ; +lin wipe_V2 = mkV2 "" ;-} +lin woman_N = smartN "boireannach" Masc ;{- lin wonder_VQ = mkVQ (mkV "") ; lin wood_N = mkN "" ; lin worm_N = mkN "" ; From a539db3d552f6761589d49b827168d2135c48807 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 21 Aug 2025 16:42:20 +0200 Subject: [PATCH 024/169] allomorphs for definite article --- src/gaelic/NounGla.gf | 10 +++--- src/gaelic/ResGla.gf | 83 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 71 insertions(+), 22 deletions(-) diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index ac0cbb39..de0e57c6 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -8,7 +8,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { - s = \\c => det.s ++ cn.s ! getNForm det.n det.d c ; + s = \\c => det.s ! cn.g ! c ++ cn.s ! getNForm det.n det.d c ; d = det.d } ; {- @@ -65,8 +65,8 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Quant -> Num -> Det ; DetQuant quant num = quant ** { - s = quant.s ! num.n ++ num.s ; - s2 = "DUMMY" ; -- "teen" from numbers like seventeen + s = \\g,c => getArt quant num.n g c ++ num.s ; + s2 = \\g,c => "DUMMY" ; -- "teen" from numbers like seventeen n = num.n ; } ; @@ -123,10 +123,10 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- : Quant - DefArt = mkQuant "an" "nan" Definite ; + DefArt = ResGla.defArt ; -- : Quant - IndefArt = mkQuant [] [] Indefinite ; + IndefArt = mkQuant [] Indefinite ; {- -- : Pron -> Quant -- my diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 4e120ff8..aaf19a71 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -93,9 +93,10 @@ oper vowel : pattern Str = #("a"|"à"|"e"|"i"|"ì"|"o"|"u") ; -- more accents? diphthong : pattern Str = #("ea"|"oi") ; lenitable : pattern Str = #("b"|"c"|"f"|"g"|"m"|"p"|"d"|"t"|"s") ; + labial : pattern Str = #("b"|"f"|"m"|"p") ; palatalise : Str -> Str = \lamh -> case lamh of { - -- f + "ea" + r => f + "i" + r ; -- TODO is this irregular? + f@? + "ea" + r => f + "i" + r ; -- TODO is this irregular? boireann@(_ + (#vowel|#diphthong) + ? + _ + (#vowel|#diphthong) + ? + _) + a@#vowel + ch => boireann + a + "i" + ch ; tunn@(_ + (#vowel|#diphthong) + ? + _) @@ -113,7 +114,7 @@ oper -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 mkNoun : (b,g,pl,l,p,lp : Str) -> Gender -> LinN = \b,gen,pl,l,p,lp,g -> { base = b ; -- tunnag fuil loch fear litir - gen = gen ; -- tunnaige fala locha fir litreach + gen = gen ; -- tunnaige fala locha fir litreach pl = pl ; -- tunnagan lochan fir litrichean lenited = l ; -- thunnag fhuil loch fhear litir ? palatalised = p ; -- tunnaig fuil loch fir litir ? @@ -267,18 +268,32 @@ oper -------------------------------------------------------------------------------- -- Det, Quant, Card, Ord - -- If your language has a number, it is very very very likely that - -- Quant has a variable number and Det has inherent number. +param + QForm = QSg Gender CoreCase | QPl CoreCase ; + +oper + getQForm : Number -> Gender -> Case -> QForm = \n,g,c -> case of { + => QSg g c ; + => QSg g Nom ; --- ?????? + => QPl c ; + => QPl Nom --- ?????? + } ; + + getArt : LinQuant -> Number -> Gender -> Case -> Str = \quant,n,g,c -> case c of { + Voc => "" ; -- TODO: add empty field to article to not get metavariables + _ => quant.s ! getQForm n g c + } ; LinQuant : Type = { - s, -- quantifier in a context, e.g. 'this (cat) (is nice)' - sp -- quantifier as standalone, e.g. 'this (is nice)' - : Number => Str ; + s -- quantifier in a context, e.g. 'this (cat) (is nice)' + : QForm => Str ; + sp : Str ; -- quantifier as standalone, e.g. 'this (is nice)' d : Definiteness ; } ; LinDet : Type = { - s,s2 : Str ; + s,s2 : Gender => Case => Str ; + sp : Str ; n : Number ; d : Definiteness ; } ; @@ -289,21 +304,55 @@ oper } ; -- Can you reuse your mkNoun? Do nouns and quantifiers inflect the same way? - mkQuant : Str -> Str -> Definiteness -> LinQuant = \this,these,d -> { - s, - sp = table { - Sg => this ; - _ => these } ; + mkQuant : Str -> Definiteness -> LinQuant = \this,d -> { + s = \\_ => this ; + sp = this ; d = d ; - }; + } ; mkDet : (seven, teen : Str) -> Number -> LinDet = \aon, deug, num -> { - s = aon ; - s2 = deug ; + s = \\_,_ => aon ; + s2 = \\_,_ => deug ; + sp = aon ; n = num ; - d = Indefinite -- TODO fix + d = Indefinite -- TODO add as param } ; +-- Allomorphs of the definite article + + AN, AN_L, NA, NAN : Str ; + AN = pre { + #vowel => "an t-" ++ BIND ; + #labial => "am" ; + _ => "an" } ; + + -- N.B. lenition comes from a different param, this is just a shorthand + AN_L = pre { + "b"|"m"|"p"|"c"|"g" => "a'" ; + "f" => "an" ; + "sl"|"sn"|"sr"| + "sa"|"sà"|"si"|"sì"| + "se"|"so"|"su" => "an t-" ++ BIND ; + _ => "an" } ; + NA = pre { + #vowel => "na h-" ++ BIND ; + _ => "na" } ; + NAN = pre { + #labial => "nam" ; + _ => "nan" } ; + + defArt : LinQuant = { + s = table { + QSg Masc Nom => AN ; + QSg Masc _ => AN_L ; + QSg Fem Gen => NA ; + QSg Fem _ => AN_L ; + QPl Gen => NAN ; + QPl _ => NA + } ; + sp = "an" ; --- meaningless for DefArt + d = Definite ; + } ; -------------------------------------------------------------------------------- -- Adpositions From c85e7a514b51cf035c298710c1c219fda03ac008 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 22 Aug 2025 16:30:30 +0200 Subject: [PATCH 025/169] Add some prepositions, merge with pronouns (TODO: merge with articles too) --- src/gaelic/AdverbGla.gf | 15 +++++++--- src/gaelic/CatGla.gf | 2 +- src/gaelic/NounGla.gf | 1 + src/gaelic/ParadigmsGla.gf | 6 ++-- src/gaelic/ResGla.gf | 57 ++++++++++++++++++++++++++++++------- src/gaelic/SentenceGla.gf | 2 +- src/gaelic/StructuralGla.gf | 46 +++++++++++++++--------------- 7 files changed, 87 insertions(+), 42 deletions(-) diff --git a/src/gaelic/AdverbGla.gf b/src/gaelic/AdverbGla.gf index dd89e853..848ad644 100644 --- a/src/gaelic/AdverbGla.gf +++ b/src/gaelic/AdverbGla.gf @@ -1,6 +1,6 @@ concrete AdverbGla of Adverb = CatGla ** open ResGla, ParadigmsGla, Prelude in { -{- lin +{- -- : A -> Adv ; PositAdvAdj adj = @@ -10,10 +10,17 @@ lin -- : CAdv -> A -> S -> Adv ; -- more warmly than he runs ComparAdvAdjS cadv a s = - +-} -- : Prep -> NP -> Adv ; - PrepNP prep np = ; - + PrepNP prep np = { + s = prep.s ! np.a ++ + case of { + <_, NotPron _> | + => np.s ! CC (prep.c2 ! np.d) ; + _ => np.empty -- empty string to avoid metavariables + } + } ; +{- -- Adverbs can be modified by 'adadjectives', just like adjectives. -- : AdA -> Adv -> Adv ; -- very quickly diff --git a/src/gaelic/CatGla.gf b/src/gaelic/CatGla.gf index 815d006f..ecb85c9f 100644 --- a/src/gaelic/CatGla.gf +++ b/src/gaelic/CatGla.gf @@ -77,7 +77,7 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { -- coordinating a list of NPs with that Conj. } ; -- "[Ann and Bob] are children" → and_Conj.n = Pl Subj = SS ; - Prep = SS ; + Prep = ResGla.LinPrep ; diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index de0e57c6..8021bc64 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -9,6 +9,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { s = \\c => det.s ! cn.g ! c ++ cn.s ! getNForm det.n det.d c ; + a = NotPron det.n ; d = det.d } ; {- diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf index 68984f3f..fe9ab02c 100644 --- a/src/gaelic/ParadigmsGla.gf +++ b/src/gaelic/ParadigmsGla.gf @@ -109,7 +109,7 @@ oper -- hidden from the document. Prep = CatGla.Prep ; - noPrep = mkPrep [] ; + noPrep = lin Prep ResGla.emptyPrep ; -- Add more overload instances if needed for all categories! @@ -178,12 +178,12 @@ oper ----- -} - +{- -- If prepositions take case, add that as argument to mkPrep mkPrep = overload { mkPrep : Str -> Prep = \s -> lin Prep {s = s} ; } ; -{- + mkConj = overload { mkConj : (and : Str) -> Conj = \s -> … mkConj : (either : Str) -> (or : Str) -> Conj = \s -> … diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index aaf19a71..61ae9d89 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -249,10 +249,11 @@ oper -- or do we have an exhaustive list of prepositions that merge, and we can make that into a param and put on a LHS here? s : Case => Str ; -- TODO: is lenition a separate dimension from case? - + empty : Str ; -- to avoid metavariables -- TODO can we make this combo of inherent params leaner? - n : Number ; - p : Person ; + a : Agr ; + -- n : Number ; + -- p : Person ; d : Definiteness ; } ; @@ -260,8 +261,10 @@ oper emptyNP : LinNP = { s = \\_ => [] ; - n = Sg ; - p = P3 ; + a = NotPron Sg ; + empty = [] ; + -- n = Sg ; + -- p = P3 ; d = Indefinite ; } ; @@ -371,12 +374,15 @@ oper -- more on preps: Lamb, p.224 +param + Agr = Sg1 | Sg2 | Sg3 Gender | Pl1 | Pl2 | Pl3 | NotPron Number ; + oper LinPrep : Type = { - s : Str ; - - c2 : Definiteness => Case ; -- most often dative + s : Agr => Str ; -- bare: aig 'on', inflected: agam 'on me', agad 'on you', … + c2 : Definiteness => CoreCase ; -- most often dative + replacesPron : Bool ; -- NP has to keep track of if it comes from a Pron -- If your language has both pre- and postpositions, you need an inherent parameter in Prep to record which one a given Prep is. -- position : PreOrPost ; @@ -384,7 +390,38 @@ oper -- Some cause lenition—is that separate from case? } ; + mkPrep : (replacesPron : Bool) + -> (indef,defi : CoreCase) + -> (aig,agam,agad,aige,aice,againn,agaibh,aca : Str) + -> LinPrep = + \replaces,casIndef,casDef,aig,agam,agad,aige,aice,againn,agaibh,aca -> { + s = table { + NotPron _ => aig ; Sg1 => agam ; Sg2 => agad ; + Sg3 Masc => aige ; Sg3 Fem => aice ; + Pl1 => againn ; Pl2 => agaibh ; Pl3 => aca } ; + c2 = table {Indefinite => casIndef ; Definite => casDef} ; + replacesPron = replaces + } ; + smartPrep : (aig,agam,agad,aige,aice,againn,agaibh,aca : Str) -> LinPrep = + mkPrep True Dat Dat ; + + emptyPrep : LinPrep = { + s = \\_ => [] ; + c2 = \\_ => Dat ; + replacesPron = False + } ; + + aigPrep : LinPrep = smartPrep "aig" "agam" "agad" "aige" "aice" "againn" "agaibh" "aca" ; + airPrep : LinPrep = smartPrep "air" "orm" "ort" "air" "oirre" "oirrn" "oirbh" "orra" ; + annPrep : LinPrep = smartPrep "ann" "annam" "annad" "ann" "innte" "annainn" "annaibh" "annta" ; + àsPrep : LinPrep = smartPrep "às" "asam" "asad" "às" "aiste" "asainn" "asaibh" "asda" ; + bhoPrep : LinPrep = smartPrep "bho" "bhuam" "bhuat" "bhuaithe" "bhuaipe" "bhuainn" "buaibh" "bhuapa" ; +{- dePrep : LinPrep = …-} + doPrep : LinPrep = smartPrep "do" "dhomh" "dhut" "dha" "dhi" "dhuinn" "dhuibh" "dhiubh" ; +{- eadarPrep : LinPrep = …-} +{- foPrep : LinPrep = …-} + guPrep : LinPrep = smartPrep "gu" "ugam" "ugad" "uige" "uice" "ugainn" "ugaibh" "uca" ; -------------------------------------------------------------------------------- -- Adjectives -- Lamb p. 220 basic morphology, degree @@ -400,7 +437,7 @@ oper -- Verbs param - VForm = TODOVF Number Person ; + VForm = TODOVF Agr; oper LinV : Type = { @@ -432,7 +469,7 @@ oper c2 : LinPrep ; } ; - linVP : LinVP -> Str = \vp -> vp.s ! TODOVF Sg P3 ; + linVP : LinVP -> Str = \vp -> vp.s ! TODOVF (NotPron Sg) ; -------------------------------------------------------------------------------- -- Cl, S diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf index dd86a7dd..9483fe6a 100644 --- a/src/gaelic/SentenceGla.gf +++ b/src/gaelic/SentenceGla.gf @@ -13,7 +13,7 @@ lin subj = np.s ! CC Nom ; pred = -- table {something with tense+polarity => - vp.s ! TODOVF np.n np.p + vp.s ! TODOVF np.a -- TODO: all of the VP's tense and polarity should be open here! -- PredVP only decides the subject. -- } diff --git a/src/gaelic/StructuralGla.gf b/src/gaelic/StructuralGla.gf index e76d33ca..800be0d6 100644 --- a/src/gaelic/StructuralGla.gf +++ b/src/gaelic/StructuralGla.gf @@ -90,35 +90,35 @@ lin nothing_NP = lin somebody_NP = lin something_NP = -------- +-------} -- Prep -lin above_Prep = mkPrep "" ; -lin after_Prep = mkPrep "" ; -lin before_Prep = mkPrep "" ; -lin behind_Prep = mkPrep "" ; -lin between_Prep = = mkPrep "" ; -lin by8agent_Prep = mkPrep "" ; -lin by8means_Prep = mkPrep "" ; -lin during_Prep = mkPrep "" ; -lin except_Prep = mkPrep "" ; -lin for_Prep = mkPrep "" ; -lin from_Prep = mkPrep "" ; -lin in8front_Prep = mkPrep "" ; -lin in_Prep = mkPrep "" ; -lin on_Prep = mkPrep "" ; -lin part_Prep = mkPrep ; -lin possess_Prep = mkPrep "" ; -lin through_Prep = mkPrep "" ; -lin to_Prep = mkPrep "k" ; -lin under_Prep = mkPrep "" ; -lin with_Prep = mkPrep "" ; -lin without_Prep = mkPrep "" ; +-- lin above_Prep = mkPrep "" ; +-- lin after_Prep = mkPrep "" ; +-- lin before_Prep = mkPrep "" ; +-- lin behind_Prep = mkPrep "" ; +-- lin between_Prep = = mkPrep "" ; +-- lin by8agent_Prep = mkPrep "" ; +-- lin by8means_Prep = mkPrep "" ; +-- lin during_Prep = mkPrep "" ; +-- lin except_Prep = mkPrep "" ; +lin for_Prep = ResGla.doPrep ; +lin from_Prep = ResGla.bhoPrep ; +-- lin in8front_Prep = mkPrep "" ; +lin in_Prep = ResGla.annPrep ; +lin on_Prep = ResGla.airPrep ; +-- lin part_Prep = mkPrep "" ; +-- lin possess_Prep = mkPrep "" ; +-- lin through_Prep = mkPrep "" ; +lin to_Prep = ResGla.guPrep ; +-- lin under_Prep = mkPrep "" ; +-- lin with_Prep = mkPrep "" ; +-- lin without_Prep = mkPrep "" ; ------- -- Pron --- Pronouns are closed class, no constructor in ParadigmsGla. +{-- Pronouns are closed class, no constructor in ParadigmsGla. lin it_Pron = lin i_Pron = lin youPol_Pron = From d4056e7db3e6c7962ef902cdc08c3a1ef4c4d742 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 22 Aug 2025 16:47:03 +0200 Subject: [PATCH 026/169] add pronouns, very much WIP (no object forms, possessives) --- src/gaelic/CatGla.gf | 2 +- src/gaelic/NounGla.gf | 8 ++++---- src/gaelic/ResGla.gf | 24 +++++++++++++++--------- src/gaelic/StructuralGla.gf | 22 +++++++++++----------- 4 files changed, 31 insertions(+), 25 deletions(-) diff --git a/src/gaelic/CatGla.gf b/src/gaelic/CatGla.gf index ecb85c9f..4f589838 100644 --- a/src/gaelic/CatGla.gf +++ b/src/gaelic/CatGla.gf @@ -51,7 +51,7 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { CN = ResGla.LinCN ; NP = ResGla.LinNP ; - Pron = SS ; -- NB. Pronouns need enough info to become NP or Quant. + Pron = LinPron ; Det = ResGla.LinDet ; -- s : Str , n : Number Predet = SS ; Quant = ResGla.LinQuant ; -- s : Number => Str diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index 8021bc64..456c131e 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -12,15 +12,15 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { a = NotPron det.n ; d = det.d } ; -{- + -- : PN -> NP ; -- Assuming that lincat PN = lincat NP - UsePN pn = pn ; + -- UsePN pn = pn ; -- : Pron -> NP ; -- Assuming that lincat Pron = lincat NP - UsePron pron = pron ; - + UsePron pron = emptyNP ** pron ; +{- -- : Predet -> NP -> NP ; -- only the man PredetNP predet np = diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 61ae9d89..cb2acfa0 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -215,17 +215,22 @@ oper oper +-- TODO: possessive ?????? LinPron : Type = { s : Case => Str ; - n : Number ; - p : Person ; - -- g : Gender ; ?? -- we have already he_Pron and she_Pron in abstract syntax, does this affect inflection? + a : Agr ; + empty : Str ; -- to prevent metavariables } ; - mkPron : (_ : Str) -> Person -> Number -> LinPron = \str,per,num -> { - s = \\_ => str ; -- Pronoun inflection is often irregular, so possibly this constructor requires several forms as argument, even if mkNoun is nice and regular - p = per ; - n = num ; + -- TODO: nicer API where you can give Person, Number, Gender etc. + -- not this weird unintuitive Agr param + mkPron : (_ : Str) -> Agr -> LinPron = \str,agr -> { + s = table { + CC Nom => str ; + _ => "gam" -- TODO fix this + } ; + a = agr ; + empty = [] } ; --------------------------------------------- @@ -265,7 +270,7 @@ oper empty = [] ; -- n = Sg ; -- p = P3 ; - d = Indefinite ; + d = Definite ; } ; -------------------------------------------------------------------------------- @@ -378,9 +383,10 @@ param Agr = Sg1 | Sg2 | Sg3 Gender | Pl1 | Pl2 | Pl3 | NotPron Number ; oper + LinPrep : Type = { s : Agr => Str ; -- bare: aig 'on', inflected: agam 'on me', agad 'on you', … - + -- TODO: possessive forms c2 : Definiteness => CoreCase ; -- most often dative replacesPron : Bool ; -- NP has to keep track of if it comes from a Pron diff --git a/src/gaelic/StructuralGla.gf b/src/gaelic/StructuralGla.gf index 800be0d6..28823c35 100644 --- a/src/gaelic/StructuralGla.gf +++ b/src/gaelic/StructuralGla.gf @@ -118,17 +118,17 @@ lin to_Prep = ResGla.guPrep ; ------- -- Pron -{-- Pronouns are closed class, no constructor in ParadigmsGla. -lin it_Pron = -lin i_Pron = -lin youPol_Pron = -lin youSg_Pron = -lin he_Pron = -lin she_Pron = -lin we_Pron = -lin youPl_Pron = -lin they_Pron = - +-- Pronouns are closed class, no constructor in ParadigmsGla. +--lin it_Pron = +lin i_Pron = mkPron "mi" Sg1 ; +lin youPol_Pron = mkPron"sibh" Pl2 ; +lin youSg_Pron = mkPron "tu" Sg2 ; +lin he_Pron = mkPron "e" (Sg3 Masc) ; +lin she_Pron = mkPron "i" (Sg3 Fem) ; +lin we_Pron = mkPron "sinn" Pl1 ; +lin youPl_Pron = mkPron "sibh" Pl2 ; +lin they_Pron = mkPron "iad" Pl3 ; +{- lin whatPl_IP = lin whatSg_IP = lin whoPl_IP = From 512412b4bb55ab0ef522ba537053b449da43a88a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 26 Aug 2025 16:30:13 +0200 Subject: [PATCH 027/169] added invarA --- src/french/ParadigmsFre.gf | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/french/ParadigmsFre.gf b/src/french/ParadigmsFre.gf index cd54e63f..930b8c49 100644 --- a/src/french/ParadigmsFre.gf +++ b/src/french/ParadigmsFre.gf @@ -200,7 +200,7 @@ oper mkA : (banal,banale,banaux,banalement : Str) -> A ; -- almost worst-case adjective -- This is the worst-case paradigm for the positive forms, used for "vieux/vieil". - mkA : (vieux,vieil,vieille,vieuxs,vieuxment : Str) -> A ; -- worst-case adjetive + mkA : (vieux,vieil,vieille,vieux,vieillement : Str) -> A ; -- worst-case adjetive -- If comparison forms are irregular (i.e. not formed by "plus", e.g. -- "bon-meilleur"), the positive and comparative can be given as separate @@ -468,6 +468,17 @@ oper prefixA = prefA ; + invarA : (sud : Str) -> A = \sud -> compADeg { + s = table { + AF _ _ => sud; + AAttrMasc => sud; + AA => case sud of { + _ + "ée" => init sud + "ment" ; + _ => sud + "ment" + } + } ; + } ; + mkAdv x = ss x ** {lock_Adv = <>} ; mkAdV x = ss x ** {lock_AdV = <>} ; mkAdA x = ss x ** {lock_AdA = <>} ; From 625ddf1e1ef45f08ff133715c481034bea4ab6de Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 26 Aug 2025 16:40:42 +0200 Subject: [PATCH 028/169] added lindef VP --- src/russian/CatRus.gf | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/russian/CatRus.gf b/src/russian/CatRus.gf index f45881e1..781425b2 100644 --- a/src/russian/CatRus.gf +++ b/src/russian/CatRus.gf @@ -151,4 +151,24 @@ linref RCl = \s -> s.subj ! GSg Neut ! Inanimate ! Nom ++ s.adv ! Ag (GSg Neut) P3 ++ (verbInf s.verb) ++ s.dep ++ s.compl ! Pos ! Ag (GSg Neut) P3 ; IP = \s -> s.nom ; RP = \s -> s.s!GSg Neut!Inanimate!Nom ; + +lindef + VP = \s -> { + adv = \\_ => "" ; + verb = { + inf,infrefl, + prsg1,prsg2,prsg3, + prpl1,prpl2,prpl3, + psgm,psgs, + isg2,isg2refl,ipl1, + ppps,pppss,prtr,ptr=s; + asp=Imperfective ; + fut=NullFuture ; + refltran = Trans + } ; + dep = "" ; + compl = \\_,_ => "" ; + p = Pos + } ; + } From ed745708b25ea7bf84326b8a2a0c5b56683e0ca0 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 26 Aug 2025 17:07:07 +0200 Subject: [PATCH 029/169] massive restructure, very broken, will fix later --- src/gaelic/AdverbGla.gf | 21 ++-- src/gaelic/NounGla.gf | 23 ++--- src/gaelic/ResGla.gf | 194 ++++++++++++++++++++++++++---------- src/gaelic/SentenceGla.gf | 2 +- src/gaelic/StructuralGla.gf | 16 +-- 5 files changed, 173 insertions(+), 83 deletions(-) diff --git a/src/gaelic/AdverbGla.gf b/src/gaelic/AdverbGla.gf index 848ad644..f550ecc8 100644 --- a/src/gaelic/AdverbGla.gf +++ b/src/gaelic/AdverbGla.gf @@ -13,13 +13,20 @@ lin -} -- : Prep -> NP -> Adv ; PrepNP prep np = { - s = prep.s ! np.a ++ - case of { - <_, NotPron _> | - => np.s ! CC (prep.c2 ! np.d) ; - _ => np.empty -- empty string to avoid metavariables - } - } ; + s = prepAndArt ++ noun + } where { + complCase : Case = CC (prep.c2 ! getDefi np.a) ; + prepStr : Str = prep.s ! agr2pagr np.a ; -- can be Prep or Prep+Pron merged + artStr : Str = np.art ! complCase ; + prepAndArt : Str = case np.a of { + NotPron (DDef _ Indefinite) => prepStr ++ artStr ; + _ => prepStr } ; + noun : Str = case of { + <_, NotPron _> | + => np.s ! complCase ; + _ => np.empty -- empty string to avoid metavariables + } + }; {- -- Adverbs can be modified by 'adadjectives', just like adjectives. diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index 456c131e..fb882653 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -8,9 +8,9 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { - s = \\c => det.s ! cn.g ! c ++ cn.s ! getNForm det.n det.d c ; - a = NotPron det.n ; - d = det.d + art = \\c => det.s ! cn.g ! c ; + s = \\c => cn.s ! getNForm det.dt c ; + a = NotPron det.dt ; } ; -- : PN -> NP ; @@ -19,7 +19,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Pron -> NP ; -- Assuming that lincat Pron = lincat NP - UsePron pron = emptyNP ** pron ; + UsePron pron = emptyNP ** pron ** {a = IsPron pron.a} ; {- -- : Predet -> NP -> NP ; -- only the man PredetNP predet np = @@ -55,7 +55,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- MassNP : CN -> NP ; MassNP cn = emptyNP ** { - s = \\c => cn.s ! getNForm Sg Indefinite c + s = \\c => cn.s ! getNForm (DDef Sg Indefinite) c ---- ?????? } ; @@ -68,7 +68,9 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { DetQuant quant num = quant ** { s = \\g,c => getArt quant num.n g c ++ num.s ; s2 = \\g,c => "DUMMY" ; -- "teen" from numbers like seventeen - n = num.n ; + dt = case quant.qt of { + QDef defi => DDef num.n defi ; + QPoss agr => DPoss num.n agr } ; } ; -- : Quant -> Num -> Ord -> Det ; @@ -127,14 +129,11 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { DefArt = ResGla.defArt ; -- : Quant - IndefArt = mkQuant [] Indefinite ; + IndefArt = mkQuant [] (QDef Indefinite) ; + -{- -- : Pron -> Quant -- my - PossPron pron = mkQuant pron.s ** { - - } ; --} + PossPron pron = mkQuant pron.poss (QPoss pron.a) ; --2 Common nouns diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index cb2acfa0..bae20ef2 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -44,11 +44,13 @@ param ; oper - getNForm : Number -> Definiteness -> Case -> NForm = \n,d,c -> + getNForm : DType -> Case -> NForm = \d,c -> case of { - => Def n Voc ; - => Indef n c ; - => Def n c + => Def n Voc ; + => Indef n c ; + => Def n c ; + => Indef n Nom ; -- as per Michal on Discord https://discord.com/channels/865093807343140874/865094084683366400/1409838154550087711 . TODO: Def or Indef nom ???? + => Def n c -- ???????????????? } ; LinN : Type = { @@ -215,20 +217,21 @@ oper oper --- TODO: possessive ?????? LinPron : Type = { s : Case => Str ; - a : Agr ; + a : PronAgr ; + poss : Str ; -- if a case is needed, it comes from the Prep! TODO verify this (do we ever need a dative for poss pron without a prep present? some preps merge, others not, but the pronoun is present in all the preps. why this way—I counted on there being fewer pronouns than prepositions.) empty : Str ; -- to prevent metavariables } ; -- TODO: nicer API where you can give Person, Number, Gender etc. -- not this weird unintuitive Agr param - mkPron : (_ : Str) -> Agr -> LinPron = \str,agr -> { + mkPron : (subj,poss : Str) -> PronAgr -> LinPron = \subj,poss,agr -> { s = table { - CC Nom => str ; + CC Nom => subj ; _ => "gam" -- TODO fix this } ; + poss = poss ; a = agr ; empty = [] } ; @@ -248,39 +251,44 @@ That's why I'm copying over the definition below, instead of the neater `LinNP : oper LinNP : Type = { --- art : Str ; -- to be replaced with a combo coming from Prep, if argument of PrepNP? see Lamb p. 225 + art, -- to be replaced with a combo coming from Prep, if argument of PrepNP? see Lamb p. 225 -- TODO: is that an issue when the allomorph has been chosen by an inherent param in CN? -- does that param need to be kept in LinNP, and Prep need an inflection table from that param? -- or do we have an exhaustive list of prepositions that merge, and we can make that into a param and put on a LHS here? s : Case => Str ; -- TODO: is lenition a separate dimension from case? empty : Str ; -- to avoid metavariables - -- TODO can we make this combo of inherent params leaner? - a : Agr ; - -- n : Number ; - -- p : Person ; - d : Definiteness ; + a : Agr ; -- includes whether it's pron and whether it's definite. TODO: probably can make even leaner (wasn't a prio so far). } ; - linNP : LinNP -> Str = \np -> np.s ! (CC Nom) ; + linNP : LinNP -> Str = \np -> np.art ! (CC Nom) ++ np.s ! (CC Nom) ; emptyNP : LinNP = { - s = \\_ => [] ; - a = NotPron Sg ; + s,art = \\_ => [] ; + a = NotPron (DDef Sg Indefinite) ; -- we assume pronouns are definite by default. also it just matters for PrepNP. empty = [] ; - -- n = Sg ; - -- p = P3 ; - d = Definite ; } ; -------------------------------------------------------------------------------- -- Det, Quant, Card, Ord param - QForm = QSg Gender CoreCase | QPl CoreCase ; + QuantForm = QSg Gender CoreCase | QPl CoreCase ; + QType = QDef Definiteness | QPoss PronAgr ; + DType = DDef Number Definiteness | DPoss Number PronAgr ; + + -- The minimum forms that preposition merges with + PrepAgr = PrepBase | PrepDefiniteArticle Number | PrepObjectPron PronAgr | PrepPossPron PronAgr ; oper - getQForm : Number -> Gender -> Case -> QForm = \n,g,c -> case of { + agr2pagr : Agr -> PrepAgr = \a -> case a of { + NotPron (DDef n Definite) => PrepDefiniteArticle n ; + NotPron (DPoss n agr) => PrepPossPron agr ; + IsPron agr => PrepObjectPron agr ; + NotPron _ => PrepBase + } ; + + getQuantForm : Number -> Gender -> Case -> QuantForm = \n,g,c -> case of { => QSg g c ; => QSg g Nom ; --- ?????? => QPl c ; @@ -289,21 +297,20 @@ oper getArt : LinQuant -> Number -> Gender -> Case -> Str = \quant,n,g,c -> case c of { Voc => "" ; -- TODO: add empty field to article to not get metavariables - _ => quant.s ! getQForm n g c + _ => quant.s ! getQuantForm n g c } ; LinQuant : Type = { s -- quantifier in a context, e.g. 'this (cat) (is nice)' - : QForm => Str ; + : QuantForm => Str ; sp : Str ; -- quantifier as standalone, e.g. 'this (is nice)' - d : Definiteness ; + qt : QType ; -- Definite, Indefinite or Possessive } ; LinDet : Type = { s,s2 : Gender => Case => Str ; sp : Str ; - n : Number ; - d : Definiteness ; + dt : DType ; -- includes number } ; LinNum : Type = { @@ -312,18 +319,17 @@ oper } ; -- Can you reuse your mkNoun? Do nouns and quantifiers inflect the same way? - mkQuant : Str -> Definiteness -> LinQuant = \this,d -> { + mkQuant : Str -> QType -> LinQuant = \this,qt -> { s = \\_ => this ; sp = this ; - d = d ; + qt = qt ; } ; - mkDet : (seven, teen : Str) -> Number -> LinDet = \aon, deug, num -> { + mkDet : (seven, teen : Str) -> Definiteness -> Number -> LinDet = \aon, deug, defi, num -> { s = \\_,_ => aon ; s2 = \\_,_ => deug ; sp = aon ; - n = num ; - d = Indefinite -- TODO add as param + dt = DDef num defi } ; -- Allomorphs of the definite article @@ -359,7 +365,7 @@ oper QPl _ => NA } ; sp = "an" ; --- meaningless for DefArt - d = Definite ; + qt = QDef Definite ; } ; -------------------------------------------------------------------------------- -- Adpositions @@ -380,15 +386,20 @@ oper -- more on preps: Lamb, p.224 param - Agr = Sg1 | Sg2 | Sg3 Gender | Pl1 | Pl2 | Pl3 | NotPron Number ; + PronAgr = Sg1 | Sg2 | Sg3 Gender | Pl1 | Pl2 | Pl3 ; + -- PronType = Object | Possessive ; + Agr = NotPron DType | IsPron PronAgr ; oper + getDefi : Agr -> Definiteness = \a -> case a of { + NotPron (DDef n d) => d ; + _ => Definite + } ; LinPrep : Type = { - s : Agr => Str ; -- bare: aig 'on', inflected: agam 'on me', agad 'on you', … - -- TODO: possessive forms + s : PrepAgr => Str ; -- bare: aig 'on', inflected: agam 'on me', agad 'on you', … c2 : Definiteness => CoreCase ; -- most often dative - replacesPron : Bool ; -- NP has to keep track of if it comes from a Pron + replacesObjPron : Bool ; -- NP has to keep track of if it comes from a Pron -- If your language has both pre- and postpositions, you need an inherent parameter in Prep to record which one a given Prep is. -- position : PreOrPost ; @@ -396,38 +407,93 @@ oper -- Some cause lenition—is that separate from case? } ; - mkPrep : (replacesPron : Bool) + PrepForms : Type = {base, sg1, sg2, sg3M, sg3F, pl1, pl2, pl3 : Str} ; + + invarPrepForms : Str -> PrepForms = \str -> + {base=str ; sg1=str+"mo^L"; sg2=str+"do^L"; sg3M=str+"a^L"; + sg3F=str+"a^H"; pl1=str+"àr^N"; pl2=str+"ùr^N"; pl3=str+AN} ; -- AN is defined as an allomorph to def art, TODO does the possessive add t- before vowel? + + mkPrep : (replacesObjPron : Bool) -> (indef,defi : CoreCase) - -> (aig,agam,agad,aige,aice,againn,agaibh,aca : Str) + -> (objForms, possForms : PrepForms) -> LinPrep = - \replaces,casIndef,casDef,aig,agam,agad,aige,aice,againn,agaibh,aca -> { + \replaces,casIndef,casDef,objForms,possForms -> { s = table { - NotPron _ => aig ; Sg1 => agam ; Sg2 => agad ; - Sg3 Masc => aige ; Sg3 Fem => aice ; - Pl1 => againn ; Pl2 => agaibh ; Pl3 => aca } ; + PrepBase => aig ; + PrepDefiniteArticle Sg => aig + "✨" ++ BIND ++ AN ; -- TODO: merge with article!!!!!! + PrepDefiniteArticle Pl => aig + "✨" ++ BIND ++ NA ; -- TODO: merge with article!!!!!! + PrepObjectPron Sg1 => agam ; + PrepObjectPron Sg2 => agad ; + PrepObjectPron (Sg3 Masc) => aige ; + PrepObjectPron (Sg3 Fem) => aice ; + PrepObjectPron Pl1 => againn ; + PrepObjectPron Pl2 => agaibh ; + PrepObjectPron Pl3 => aca ; + PrepPossPron Sg1 => gam ; + PrepPossPron Sg2 => gad ; + PrepPossPron (Sg3 Masc) => ga_L ; + PrepPossPron (Sg3 Fem) => ga_H ; + PrepPossPron Pl1 => gar ; + PrepPossPron Pl2 => gur ; + PrepPossPron Pl3 => gan } ; c2 = table {Indefinite => casIndef ; Definite => casDef} ; - replacesPron = replaces + replacesObjPron = replaces + } where { + aig = objForms.base ; agam = objForms.sg1 ; agad = objForms.sg2 ; + aige = objForms.sg3M ; aice = objForms.sg3F ; + againn = objForms.pl1 ; agaibh = objForms.pl2 ; aca = objForms.pl3 ; + gam = possForms.sg1 ; gad = possForms.sg2 ; + ga_L = possForms.sg3M ; ga_H = possForms.sg3F ; + gar = possForms.pl1 ; gur = possForms.pl2 ; gan = possForms.pl3 ; } ; - smartPrep : (aig,agam,agad,aige,aice,againn,agaibh,aca : Str) -> LinPrep = + smartPrep : (objForms, possForms : PrepForms) -> LinPrep = mkPrep True Dat Dat ; emptyPrep : LinPrep = { s = \\_ => [] ; + poss = \\_ => [] ; c2 = \\_ => Dat ; - replacesPron = False + replacesObjPron = False } ; - aigPrep : LinPrep = smartPrep "aig" "agam" "agad" "aige" "aice" "againn" "agaibh" "aca" ; - airPrep : LinPrep = smartPrep "air" "orm" "ort" "air" "oirre" "oirrn" "oirbh" "orra" ; - annPrep : LinPrep = smartPrep "ann" "annam" "annad" "ann" "innte" "annainn" "annaibh" "annta" ; - àsPrep : LinPrep = smartPrep "às" "asam" "asad" "às" "aiste" "asainn" "asaibh" "asda" ; - bhoPrep : LinPrep = smartPrep "bho" "bhuam" "bhuat" "bhuaithe" "bhuaipe" "bhuainn" "buaibh" "bhuapa" ; + aigPrep : LinPrep = + smartPrep + {base="aig"; sg1="agam"; sg2="agad"; sg3M="aige"; sg3F="aice"; pl1="againn"; pl2="agaibh"; pl3="aca"} + {base="aig"; sg1="'gam^L"; sg2="'gad^L"; sg3M="'ga^L"; sg3F="'ga^H"; pl1="'gar^N"; pl2="'gur^N"; pl3="'gan"} ; + airPrep : LinPrep = + smartPrep + {base="air"; sg1="orm"; sg2="ort"; sg3M="air"; sg3F="oirre"; pl1="oirrn"; pl2="oirbh"; pl3="orra"} + (invarPrepForms "air") ; + + annPrep : LinPrep = + smartPrep + {base="ann"; sg1="annam"; sg2="annad"; sg3M="ann"; sg3F="innte"; pl1="annainn"; pl2="annaibh"; pl3="annta"} + {base="ann"; sg1="'nam^L"; sg2="'nad^L"; sg3M="'na^L"; sg3F="'na^H"; pl1="'nar^N"; pl2="'nur^N"; pl3="'nan"} ; + + àsPrep : LinPrep = + smartPrep + {base="às"; sg1="asam"; sg2="asad"; sg3M="às"; sg3F="aiste"; pl1="asainn"; pl2="asaibh"; pl3="asda"} + (invarPrepForms "às") ; + + bhoPrep : LinPrep = + smartPrep + {base="bho"; sg1="bhuam"; sg2="bhuat"; sg3M="bhuaithe"; sg3F="bhuaipe"; pl1="bhuainn"; pl2="buaibh"; pl3="bhuapa"} + {base="bho"; sg1="bhom^L"; sg2="bhod^L"; sg3M="bho a^L"; sg3F="bho a^H"; pl1="bhor^N"; pl2="bhu^N"; pl3="bhon"} ; {- dePrep : LinPrep = …-} - doPrep : LinPrep = smartPrep "do" "dhomh" "dhut" "dha" "dhi" "dhuinn" "dhuibh" "dhiubh" ; + + doPrep : LinPrep = + smartPrep + {base="do"; sg1="dhomh"; sg2="dhut"; sg3M="dha"; sg3F="dhi"; pl1="dhuinn"; pl2="dhuibh"; pl3="dhiubh"} + {base="bho"; sg1="dom^L"; sg2="dod^L"; sg3M="dhaL^"; sg3F="dha^H"; pl1="dor^N"; pl2="dhur^N"; pl3="don"} ; + {- eadarPrep : LinPrep = …-} {- foPrep : LinPrep = …-} - guPrep : LinPrep = smartPrep "gu" "ugam" "ugad" "uige" "uice" "ugainn" "ugaibh" "uca" ; + guPrep : LinPrep = + smartPrep + {base="gu"; sg1="ugam"; sg2="ugad"; sg3M="uige"; sg3F="uice"; pl1="ugainn"; pl2="ugaibh"; pl3="uca"} + {base="gu"; sg1="gum^L"; sg2="gud^L"; sg3M="gu a^L"; sg3F="gu a^H"; pl1="gar^N"; pl2="gur^N"; pl3="gun"} ; + -------------------------------------------------------------------------------- -- Adjectives -- Lamb p. 220 basic morphology, degree @@ -443,9 +509,27 @@ oper -- Verbs param - VForm = TODOVF Agr; + VAgr = VSg1 | VSg2 | VSg3 | VPl1 | VPl2 | VPl3 ; + VForm = VInf | VPres VAgr | VPast VAgr ; -- TODO oper + nagr2vagr : Agr -> VAgr = \a -> case a of { + NotPron (DDef Sg _) => VSg3 ; + NotPron (DDef Pl _) => VPl3 ; + + -- this is the number of the possessee—number of possessor only matters for PrepNP! + NotPron (DPoss Sg _) => VSg3 ; + NotPron (DPoss Pl _) => VPl3 ; + + -- this is subject pronoun, which agrees with verb + IsPron Sg1 => VSg1 ; + IsPron Sg2 => VSg2 ; + IsPron (Sg3 _) => VSg3 ; + IsPron Pl1 => VPl1 ; + IsPron Pl2 => VPl2 ; + IsPron Pl3 => VPl3 + } ; + LinV : Type = { s : VForm => Str } ; @@ -475,7 +559,7 @@ oper c2 : LinPrep ; } ; - linVP : LinVP -> Str = \vp -> vp.s ! TODOVF (NotPron Sg) ; + linVP : LinVP -> Str = \vp -> vp.s ! VInf ; -------------------------------------------------------------------------------- -- Cl, S diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf index 9483fe6a..36c219ef 100644 --- a/src/gaelic/SentenceGla.gf +++ b/src/gaelic/SentenceGla.gf @@ -13,7 +13,7 @@ lin subj = np.s ! CC Nom ; pred = -- table {something with tense+polarity => - vp.s ! TODOVF np.a + vp.s ! VPres (nagr2vagr np.a) -- TODO: all of the VP's tense and polarity should be open here! -- PredVP only decides the subject. -- } diff --git a/src/gaelic/StructuralGla.gf b/src/gaelic/StructuralGla.gf index 28823c35..5d47c498 100644 --- a/src/gaelic/StructuralGla.gf +++ b/src/gaelic/StructuralGla.gf @@ -120,14 +120,14 @@ lin to_Prep = ResGla.guPrep ; -- Pronouns are closed class, no constructor in ParadigmsGla. --lin it_Pron = -lin i_Pron = mkPron "mi" Sg1 ; -lin youPol_Pron = mkPron"sibh" Pl2 ; -lin youSg_Pron = mkPron "tu" Sg2 ; -lin he_Pron = mkPron "e" (Sg3 Masc) ; -lin she_Pron = mkPron "i" (Sg3 Fem) ; -lin we_Pron = mkPron "sinn" Pl1 ; -lin youPl_Pron = mkPron "sibh" Pl2 ; -lin they_Pron = mkPron "iad" Pl3 ; +lin i_Pron = mkPron "mi" "mo^L" Sg1 ; +lin youPol_Pron = youPl_Pron ; +lin youSg_Pron = mkPron "tu" "do^L" Sg2 ; +lin he_Pron = mkPron "e" "a^L" (Sg3 Masc) ; +lin she_Pron = mkPron "i" "a^H" (Sg3 Fem) ; +lin we_Pron = mkPron "sinn" "àr^N" Pl1 ; +lin youPl_Pron = mkPron"sibh" "ùr^N" Pl2 ; +lin they_Pron = mkPron "iad" AN Pl3 ; {- lin whatPl_IP = lin whatSg_IP = From d652c81fa721433973bb18f7451048195d41e107 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 27 Aug 2025 17:22:33 +0200 Subject: [PATCH 030/169] WIP more preposition contractions + phonological mutation rules --- src/gaelic/AdverbGla.gf | 4 ++- src/gaelic/NounGla.gf | 7 ++-- src/gaelic/ResGla.gf | 69 +++++++++++++++++++++++++++------------ src/gaelic/SentenceGla.gf | 2 +- 4 files changed, 57 insertions(+), 25 deletions(-) diff --git a/src/gaelic/AdverbGla.gf b/src/gaelic/AdverbGla.gf index f550ecc8..700f80b0 100644 --- a/src/gaelic/AdverbGla.gf +++ b/src/gaelic/AdverbGla.gf @@ -15,7 +15,9 @@ lin PrepNP prep np = { s = prepAndArt ++ noun } where { - complCase : Case = CC (prep.c2 ! getDefi np.a) ; + complCase : NPCase = case np.a of { + NotPron (DPoss _ (Sg1|Sg2|Sg3 Masc)) => NPLenited ; + _ => NPC (prep.c2 ! getDefi np.a) } ; prepStr : Str = prep.s ! agr2pagr np.a ; -- can be Prep or Prep+Pron merged artStr : Str = np.art ! complCase ; prepAndArt : Str = case np.a of { diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index fb882653..dae16a3b 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -8,7 +8,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { - art = \\c => det.s ! cn.g ! c ; + art = \\c => det.s ! cn.g ! npc2c c ; s = \\c => cn.s ! getNForm det.dt c ; a = NotPron det.dt ; } ; @@ -19,7 +19,10 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Pron -> NP ; -- Assuming that lincat Pron = lincat NP - UsePron pron = emptyNP ** pron ** {a = IsPron pron.a} ; + UsePron pron = emptyNP ** pron ** { + s = \\c => pron.s ! npc2cc c ; + a = IsPron pron.a + } ; {- -- : Predet -> NP -> NP ; -- only the man PredetNP predet np = diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index bae20ef2..08253255 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -31,26 +31,47 @@ param Gender = Masc | Fem ; CoreCase = Nom | Gen | Dat ; Case = CC CoreCase | Voc ; + NPCase = NPC CoreCase | NPVoc | NPLenited ; Number = Sg | Pl ; Person = P1 | P2 | P3 ; Definiteness = Definite | Indefinite ; -- Some prepositions govern different case when definite vs. indefinite +oper + npc2cc : NPCase -> CoreCase = \npc -> case npc of { + NPC c => c ; + _ => Nom ------ TODO check? NPVoc and NPLenited (which is not a case but this is cheaper) + } ; + npc2c : NPCase -> Case = \npc -> case npc of { + NPC c => CC c ; + NPVoc => Voc ; + _ => CC Nom ---- this is just lenited TODO does this make any sense + } ; + +param NForm = Indef Number CoreCase | Def Number Case + | Lenited -- keep this separate from case, because some prepositions' requirement of lenited form overrides the usual case requirement | Dual -- only after number 2, only for a handful of nouns. TODO: does it have different cases? ; + {- + * The 1st person singular, 2nd person singular and 3rd person singular masculine forms here trigger lenition (indicated with a superscript L). + * 1st and 2nd person plurals trigger the prefixation of n- onto words beginning with vowels (nasalization), This is indicated with a superscript N. the pronunciation of the a consonant following these and the 3rd person plural is also frequently voiced or nasalized. + * Finally the 3rd person feminine forms prefix an onto words beginning with a vowel. This is indicated with H. + -} + oper - getNForm : DType -> Case -> NForm = \d,c -> + getNForm : DType -> NPCase -> NForm = \d,c -> case of { - => Def n Voc ; - => Indef n c ; - => Def n c ; - => Indef n Nom ; -- as per Michal on Discord https://discord.com/channels/865093807343140874/865094084683366400/1409838154550087711 . TODO: Def or Indef nom ???? - => Def n c -- ???????????????? + <_, NPLenited> => Lenited ; -- bit of a hack + => Def n Voc ; + => Indef n c ; + => Def n (npc2c npc) ; + => Indef n Nom ; -- as per Michal on Discord https://discord.com/channels/865093807343140874/865094084683366400/1409838154550087711 . TODO: Def or Indef nom ???? + => Def n (npc2c npc) -- ???????????????? } ; LinN : Type = { @@ -142,7 +163,8 @@ oper Def Pl (CC Gen) => n.base ; Def Pl (CC Dat) => n.pl ; Def Pl Voc => glue n.lenited "a" ; - Dual => fm n.palatalised n.base -- TODO: is this correct? only for 1-syllable feminine nouns? + Dual => fm n.palatalised n.base ; -- TODO: is this correct? only for 1-syllable feminine nouns? + Lenited => n.lenited } } where { fm : Str -> Str -> Str = \fem,masc -> case n.g of { @@ -218,7 +240,7 @@ oper oper LinPron : Type = { - s : Case => Str ; + s : CoreCase => Str ; a : PronAgr ; poss : Str ; -- if a case is needed, it comes from the Prep! TODO verify this (do we ever need a dative for poss pron without a prep present? some preps merge, others not, but the pronoun is present in all the preps. why this way—I counted on there being fewer pronouns than prepositions.) empty : Str ; -- to prevent metavariables @@ -228,8 +250,8 @@ oper -- not this weird unintuitive Agr param mkPron : (subj,poss : Str) -> PronAgr -> LinPron = \subj,poss,agr -> { s = table { - CC Nom => subj ; - _ => "gam" -- TODO fix this + Nom => subj ; + _ => "gam" -- TODO fix this } ; poss = poss ; a = agr ; @@ -256,12 +278,12 @@ oper -- does that param need to be kept in LinNP, and Prep need an inflection table from that param? -- or do we have an exhaustive list of prepositions that merge, and we can make that into a param and put on a LHS here? - s : Case => Str ; -- TODO: is lenition a separate dimension from case? + s : NPCase => Str ; -- TODO: is lenition a separate dimension from case? empty : Str ; -- to avoid metavariables a : Agr ; -- includes whether it's pron and whether it's definite. TODO: probably can make even leaner (wasn't a prio so far). } ; - linNP : LinNP -> Str = \np -> np.art ! (CC Nom) ++ np.s ! (CC Nom) ; + linNP : LinNP -> Str = \np -> np.art ! (NPC Nom) ++ np.s ! (NPC Nom) ; emptyNP : LinNP = { s,art = \\_ => [] ; @@ -290,9 +312,9 @@ oper getQuantForm : Number -> Gender -> Case -> QuantForm = \n,g,c -> case of { => QSg g c ; - => QSg g Nom ; --- ?????? + => QSg g Nom ; --- ?????? => QPl c ; - => QPl Nom --- ?????? + => QPl Nom --- ?????? } ; getArt : LinQuant -> Number -> Gender -> Case -> Str = \quant,n,g,c -> case c of { @@ -409,9 +431,14 @@ oper PrepForms : Type = {base, sg1, sg2, sg3M, sg3F, pl1, pl2, pl3 : Str} ; + H, N : Str ; + H = pre {#vowel => "h" ++ BIND ; _ => []} ; + N = pre {#vowel => "n-" ++ BIND ; _ => []} ; + + invarPrepForms : Str -> PrepForms = \str -> - {base=str ; sg1=str+"mo^L"; sg2=str+"do^L"; sg3M=str+"a^L"; - sg3F=str+"a^H"; pl1=str+"àr^N"; pl2=str+"ùr^N"; pl3=str+AN} ; -- AN is defined as an allomorph to def art, TODO does the possessive add t- before vowel? + {base=str ; sg1=str++"mo^L"; sg2=str++"do^L"; sg3M=str++"a^L"; + sg3F=str++"a"++H; pl1=str++"àr"++N; pl2=str++"ùr"++N; pl3=str++AN} ; -- AN is defined as an allomorph to def art, TODO does the possessive add t- before vowel? mkPrep : (replacesObjPron : Bool) -> (indef,defi : CoreCase) @@ -460,7 +487,7 @@ oper aigPrep : LinPrep = smartPrep {base="aig"; sg1="agam"; sg2="agad"; sg3M="aige"; sg3F="aice"; pl1="againn"; pl2="agaibh"; pl3="aca"} - {base="aig"; sg1="'gam^L"; sg2="'gad^L"; sg3M="'ga^L"; sg3F="'ga^H"; pl1="'gar^N"; pl2="'gur^N"; pl3="'gan"} ; + {base="aig"; sg1="'gam^L"; sg2="'gad^L"; sg3M="'ga^L"; sg3F="'ga"++H; pl1="'gar"++N; pl2="'gur"++N; pl3="'gan"} ; airPrep : LinPrep = smartPrep {base="air"; sg1="orm"; sg2="ort"; sg3M="air"; sg3F="oirre"; pl1="oirrn"; pl2="oirbh"; pl3="orra"} @@ -469,7 +496,7 @@ oper annPrep : LinPrep = smartPrep {base="ann"; sg1="annam"; sg2="annad"; sg3M="ann"; sg3F="innte"; pl1="annainn"; pl2="annaibh"; pl3="annta"} - {base="ann"; sg1="'nam^L"; sg2="'nad^L"; sg3M="'na^L"; sg3F="'na^H"; pl1="'nar^N"; pl2="'nur^N"; pl3="'nan"} ; + {base="ann"; sg1="'nam^L"; sg2="'nad^L"; sg3M="'na^L"; sg3F="'na"++H; pl1="'nar"++N; pl2="'nur"++N; pl3="'nan"} ; àsPrep : LinPrep = smartPrep @@ -479,20 +506,20 @@ oper bhoPrep : LinPrep = smartPrep {base="bho"; sg1="bhuam"; sg2="bhuat"; sg3M="bhuaithe"; sg3F="bhuaipe"; pl1="bhuainn"; pl2="buaibh"; pl3="bhuapa"} - {base="bho"; sg1="bhom^L"; sg2="bhod^L"; sg3M="bho a^L"; sg3F="bho a^H"; pl1="bhor^N"; pl2="bhu^N"; pl3="bhon"} ; + {base="bho"; sg1="bhom^L"; sg2="bhod^L"; sg3M="bho a^L"; sg3F="bho a"++H; pl1="bhor"++N; pl2="bhu"++N; pl3="bhon"} ; {- dePrep : LinPrep = …-} doPrep : LinPrep = smartPrep {base="do"; sg1="dhomh"; sg2="dhut"; sg3M="dha"; sg3F="dhi"; pl1="dhuinn"; pl2="dhuibh"; pl3="dhiubh"} - {base="bho"; sg1="dom^L"; sg2="dod^L"; sg3M="dhaL^"; sg3F="dha^H"; pl1="dor^N"; pl2="dhur^N"; pl3="don"} ; + {base="bho"; sg1="dom^L"; sg2="dod^L"; sg3M="dha^L"; sg3F="dha"++H; pl1="dor"++N; pl2="dhur"++N; pl3="don"} ; {- eadarPrep : LinPrep = …-} {- foPrep : LinPrep = …-} guPrep : LinPrep = smartPrep {base="gu"; sg1="ugam"; sg2="ugad"; sg3M="uige"; sg3F="uice"; pl1="ugainn"; pl2="ugaibh"; pl3="uca"} - {base="gu"; sg1="gum^L"; sg2="gud^L"; sg3M="gu a^L"; sg3F="gu a^H"; pl1="gar^N"; pl2="gur^N"; pl3="gun"} ; + {base="gu"; sg1="gum^L"; sg2="gud^L"; sg3M="gu a^L"; sg3F="gu a"++H; pl1="gar"++N; pl2="gur"++N; pl3="gun"} ; -------------------------------------------------------------------------------- -- Adjectives diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf index 36c219ef..c7a8634b 100644 --- a/src/gaelic/SentenceGla.gf +++ b/src/gaelic/SentenceGla.gf @@ -10,7 +10,7 @@ lin -- : NP -> VP -> Cl PredVP np vp = { - subj = np.s ! CC Nom ; + subj = np.s ! NPC Nom ; pred = -- table {something with tense+polarity => vp.s ! VPres (nagr2vagr np.a) From 8c25bdeacc42bb8850c9e1439642a93fa90efb26 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 28 Aug 2025 15:43:56 +0200 Subject: [PATCH 031/169] add lenition in the case table as separate dimension for Nom and Dat --- src/gaelic/AdverbGla.gf | 10 ++- src/gaelic/NounGla.gf | 4 +- src/gaelic/ResGla.gf | 157 ++++++++++++++++++++++---------------- src/gaelic/SentenceGla.gf | 2 +- 4 files changed, 100 insertions(+), 73 deletions(-) diff --git a/src/gaelic/AdverbGla.gf b/src/gaelic/AdverbGla.gf index 700f80b0..5a832613 100644 --- a/src/gaelic/AdverbGla.gf +++ b/src/gaelic/AdverbGla.gf @@ -15,9 +15,13 @@ lin PrepNP prep np = { s = prepAndArt ++ noun } where { - complCase : NPCase = case np.a of { - NotPron (DPoss _ (Sg1|Sg2|Sg3 Masc)) => NPLenited ; - _ => NPC (prep.c2 ! getDefi np.a) } ; + defaultCase : CoreCase = prep.c2 ! getDefi np.a ; + complCase : Case = case of { + + => CC (Dat Lenited) ; -- force lenition if possessive triggers it + + => CC (Nom Lenited) ; -- force lenition if possessive triggers it + _ => CC defaultCase } ; prepStr : Str = prep.s ! agr2pagr np.a ; -- can be Prep or Prep+Pron merged artStr : Str = np.art ! complCase ; prepAndArt : Str = case np.a of { diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index dae16a3b..40051660 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -8,7 +8,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { - art = \\c => det.s ! cn.g ! npc2c c ; + art = det.s ! cn.g ; s = \\c => cn.s ! getNForm det.dt c ; a = NotPron det.dt ; } ; @@ -58,7 +58,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- MassNP : CN -> NP ; MassNP cn = emptyNP ** { - s = \\c => cn.s ! getNForm (DDef Sg Indefinite) c ---- ?????? + s = \\c => cn.s ! getNForm (DDef Sg Indefinite) c -- no article, singular indefinite forms, open for cases+mutations } ; diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 08253255..3344124f 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -29,9 +29,10 @@ https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#my-naming-scheme-for-l param Gender = Masc | Fem ; - CoreCase = Nom | Gen | Dat ; + CoreCase = Nom Mutation | Gen | Dat Mutation ; Case = CC CoreCase | Voc ; - NPCase = NPC CoreCase | NPVoc | NPLenited ; +-- NPCase = NPC CoreCase | NPVoc ; + Mutation = Lenited | NoMutation ; Number = Sg | Pl ; @@ -39,39 +40,28 @@ param Definiteness = Definite | Indefinite ; -- Some prepositions govern different case when definite vs. indefinite oper - npc2cc : NPCase -> CoreCase = \npc -> case npc of { - NPC c => c ; - _ => Nom ------ TODO check? NPVoc and NPLenited (which is not a case but this is cheaper) - } ; - npc2c : NPCase -> Case = \npc -> case npc of { - NPC c => CC c ; - NPVoc => Voc ; - _ => CC Nom ---- this is just lenited TODO does this make any sense + NOM : CoreCase = Nom NoMutation ; -- shorthand + + npc2cc : Case -> CoreCase = \npc -> case npc of { + CC c => c ; + _ => NOM } ; param NForm = Indef Number CoreCase | Def Number Case - | Lenited -- keep this separate from case, because some prepositions' requirement of lenited form overrides the usual case requirement | Dual -- only after number 2, only for a handful of nouns. TODO: does it have different cases? ; - {- - * The 1st person singular, 2nd person singular and 3rd person singular masculine forms here trigger lenition (indicated with a superscript L). - * 1st and 2nd person plurals trigger the prefixation of n- onto words beginning with vowels (nasalization), This is indicated with a superscript N. the pronunciation of the a consonant following these and the 3rd person plural is also frequently voiced or nasalized. - * Finally the 3rd person feminine forms prefix an onto words beginning with a vowel. This is indicated with H. - -} - oper - getNForm : DType -> NPCase -> NForm = \d,c -> + getNForm : DType -> Case -> NForm = \d,c -> case of { - <_, NPLenited> => Lenited ; -- bit of a hack - => Def n Voc ; - => Indef n c ; - => Def n (npc2c npc) ; - => Indef n Nom ; -- as per Michal on Discord https://discord.com/channels/865093807343140874/865094084683366400/1409838154550087711 . TODO: Def or Indef nom ???? - => Def n (npc2c npc) -- ???????????????? + => Def n Voc ; + => Indef n c ; + => Def n c ; + => Indef n NOM ; -- as per Michal on Discord https://discord.com/channels/865093807343140874/865094084683366400/1409838154550087711 . TODO: Def or Indef nom ???? + => Def n c -- ???????????????? } ; LinN : Type = { @@ -81,7 +71,8 @@ oper -- TODO: for nouns that only use suffixes, should these just show theoretical forms? lenited, -- thunnag fhuil loch fhear palatalised, -- tunnaig fuil loch fir - lenited_palatalised -- thunnaig fhuil loch fhir + lenited_palatalised, -- thunnaig fhuil loch fhir + lenited_plural : Str ; g : Gender } ; @@ -90,6 +81,7 @@ oper smartN : (nom,gen,pl : Str) -> Gender -> LinN = \loch,locha,lochan,g -> { gen = locha ; pl = lochan ; + lenited_plural = lenite lochan ; base, lenited, palatalised, @@ -99,17 +91,19 @@ oper smartN : (base : Str) -> Gender -> LinN = \tunnag,g -> { base = tunnag ; gen = fm (tunnaig + "e") tunnaig ; - pl = fm (tunnag + "an") tunnaig ; -- for other allomorphs, use 4-argument paradigm + pl = plural ; -- for other allomorphs, use 4-argument paradigm + lenited_plural = lenite plural ; lenited = thunnag ; palatalised = tunnaig ; lenited_palatalised = thunnaig ; g = g } where { + fm : Str -> Str -> Str = \fem,masc -> case g of { + Fem => fem ; Masc => masc } ; tunnaig : Str = palatalise tunnag ; thunnag : Str = lenite tunnag ; thunnaig : Str = lenite tunnaig ; - fm : Str -> Str -> Str = \fem,masc -> case g of { - Fem => fem ; Masc => masc } + plural : Str = fm (tunnag + "an") tunnaig ; } } ; @@ -135,13 +129,14 @@ oper -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 - mkNoun : (b,g,pl,l,p,lp : Str) -> Gender -> LinN = \b,gen,pl,l,p,lp,g -> { + mkNoun : (b,g,pl,l,p,lp,lpl : Str) -> Gender -> LinN = \b,gen,pl,l,p,lp,lpl,g -> { base = b ; -- tunnag fuil loch fear litir gen = gen ; -- tunnaige fala locha fir litreach pl = pl ; -- tunnagan lochan fir litrichean lenited = l ; -- thunnag fhuil loch fhear litir ? palatalised = p ; -- tunnaig fuil loch fir litir ? lenited_palatalised = lp ; -- thunnaig fhuil loch fhir litir ? + lenited_plural = lpl ; -- thunnagan lochan fhir litrichean ? g = g ; } ; @@ -149,22 +144,29 @@ oper -- can always replace morphology with Katya's automated tool useN : LinN -> LinCN = \n -> n ** { s = table { - Indef Sg Nom => n.base ; + Indef Sg (Nom NoMutation) => n.base ; + Indef Sg (Nom Lenited) => n.lenited ; Indef Sg Gen => n.gen ; - Indef Sg Dat => fm n.palatalised n.base ; - Def Sg (CC Nom) => n.base ; + Indef Sg (Dat NoMutation) => fm n.palatalised n.base ; + Indef Sg (Dat Lenited) => fm n.lenited_palatalised n.lenited ; + Def Sg (CC (Nom NoMutation)) => n.base ; + Def Sg (CC (Nom Lenited)) => n.lenited ; Def Sg (CC Gen) => fm n.gen n.lenited_palatalised ; - Def Sg (CC Dat) => fm n.palatalised n.lenited ; + Def Sg (CC (Dat NoMutation)) => fm n.palatalised n.lenited ; + Def Sg (CC (Dat Lenited)) => fm n.lenited_palatalised n.lenited ; Def Sg Voc => fm n.lenited n.lenited_palatalised ; - Indef Pl Nom => fm n.pl n.palatalised ; + Indef Pl (Nom NoMutation) => fm n.pl n.palatalised ; + Indef Pl (Nom Lenited) => fm n.lenited_plural n.lenited_palatalised ; Indef Pl Gen => n.lenited ; - Indef Pl Dat => fm n.pl n.palatalised ; -- TODO: is this correct? - Def Pl (CC Nom) => n.pl ; + Indef Pl (Dat NoMutation) => fm n.pl n.palatalised ; -- TODO: is this correct? + Indef Pl (Dat Lenited) => fm n.lenited_plural n.lenited_palatalised ; -- TODO: ???? + Def Pl (CC (Nom NoMutation)) => n.pl ; + Def Pl (CC (Nom Lenited)) => n.lenited_plural ; Def Pl (CC Gen) => n.base ; - Def Pl (CC Dat) => n.pl ; + Def Pl (CC (Dat NoMutation)) => n.pl ; + Def Pl (CC (Dat Lenited)) => n.lenited_plural ; Def Pl Voc => glue n.lenited "a" ; - Dual => fm n.palatalised n.base ; -- TODO: is this correct? only for 1-syllable feminine nouns? - Lenited => n.lenited + Dual => fm n.palatalised n.base -- TODO: is this correct? only for 1-syllable feminine nouns? } } where { fm : Str -> Str -> Str = \fem,masc -> case n.g of { @@ -180,7 +182,7 @@ oper -- ** postmod/premod/… : Str -- if needed? determiners can put stuff after head but it only comes at NP } ; - linCN : LinCN -> Str = \cn -> cn.s ! Indef Sg Nom + linCN : LinCN -> Str = \cn -> cn.s ! Indef Sg NOM -- ++ cn.postmod -- If there is another field, use here ; @@ -190,10 +192,10 @@ tunnag_N : LinN = { base = "tunnag" ; gen = "tunnaige" ; pl = "tunnagan" ; + lenited_plural = "thunnagan" ; lenited = "thunnag" ; palatalised = "tunnaig" ; lenited_palatalised = "thunnaig" ; - g = Fem ; } ; @@ -202,7 +204,8 @@ boireannach_N : LinN = { pl,gen = "boireannaich" ; lenited = "bhoireannach" ; palatalised = "boireannaich" ; - lenited_palatalised = "bhoireannaich" ; + lenited_palatalised, + lenited_plural = "bhoireannaich" ; g = Masc ; } ; @@ -250,7 +253,7 @@ oper -- not this weird unintuitive Agr param mkPron : (subj,poss : Str) -> PronAgr -> LinPron = \subj,poss,agr -> { s = table { - Nom => subj ; + Nom _ => subj ; _ => "gam" -- TODO fix this } ; poss = poss ; @@ -278,12 +281,12 @@ oper -- does that param need to be kept in LinNP, and Prep need an inflection table from that param? -- or do we have an exhaustive list of prepositions that merge, and we can make that into a param and put on a LHS here? - s : NPCase => Str ; -- TODO: is lenition a separate dimension from case? + s : Case => Str ; -- TODO: is lenition a separate dimension from case? empty : Str ; -- to avoid metavariables a : Agr ; -- includes whether it's pron and whether it's definite. TODO: probably can make even leaner (wasn't a prio so far). } ; - linNP : LinNP -> Str = \np -> np.art ! (NPC Nom) ++ np.s ! (NPC Nom) ; + linNP : LinNP -> Str = \np -> np.art ! CC NOM ++ np.s ! CC NOM ; emptyNP : LinNP = { s,art = \\_ => [] ; @@ -312,9 +315,9 @@ oper getQuantForm : Number -> Gender -> Case -> QuantForm = \n,g,c -> case of { => QSg g c ; - => QSg g Nom ; --- ?????? + => QSg g NOM ; --- ?????? => QPl c ; - => QPl Nom --- ?????? + => QPl NOM --- ?????? } ; getArt : LinQuant -> Number -> Gender -> Case -> Str = \quant,n,g,c -> case c of { @@ -379,7 +382,7 @@ oper defArt : LinQuant = { s = table { - QSg Masc Nom => AN ; + QSg Masc (Nom _) => AN ; QSg Masc _ => AN_L ; QSg Fem Gen => NA ; QSg Fem _ => AN_L ; @@ -431,16 +434,17 @@ oper PrepForms : Type = {base, sg1, sg2, sg3M, sg3F, pl1, pl2, pl3 : Str} ; - H, N : Str ; + H, N, LENITION_DEBUG : Str ; H = pre {#vowel => "h" ++ BIND ; _ => []} ; N = pre {#vowel => "n-" ++ BIND ; _ => []} ; + LENITION_DEBUG = "^L" ; -- Only for debugging purposes—replace with empty string for production invarPrepForms : Str -> PrepForms = \str -> - {base=str ; sg1=str++"mo^L"; sg2=str++"do^L"; sg3M=str++"a^L"; + {base=str ; sg1=str++"mo" + LENITION_DEBUG; sg2=str++"do" + LENITION_DEBUG; sg3M=str++"a" + LENITION_DEBUG; sg3F=str++"a"++H; pl1=str++"àr"++N; pl2=str++"ùr"++N; pl3=str++AN} ; -- AN is defined as an allomorph to def art, TODO does the possessive add t- before vowel? - mkPrep : (replacesObjPron : Bool) + mkLinPrep : (replacesObjPron : Bool) -> (indef,defi : CoreCase) -> (objForms, possForms : PrepForms) -> LinPrep = @@ -475,51 +479,70 @@ oper } ; smartPrep : (objForms, possForms : PrepForms) -> LinPrep = - mkPrep True Dat Dat ; + mkLinPrep True (Dat Lenited) (Dat Lenited) ; + + mkPrep = overload { + mkPrep : (objForms, possForms : PrepForms) -> LinPrep = smartPrep ; + mkPrep : (objForms, possForms : PrepForms) -> Mutation -> LinPrep = + \obj,poss,mutation -> mkLinPrep True (Dat mutation) (Dat mutation) obj poss ; + mkPrep : (replacesObjPron : Bool) -> (indef,defi : CoreCase) + -> (objForms, possForms : PrepForms) -> LinPrep = mkLinPrep + } ; emptyPrep : LinPrep = { s = \\_ => [] ; poss = \\_ => [] ; - c2 = \\_ => Dat ; + c2 = \\_ => Dat Lenited ; replacesObjPron = False } ; aigPrep : LinPrep = - smartPrep + mkPrep {base="aig"; sg1="agam"; sg2="agad"; sg3M="aige"; sg3F="aice"; pl1="againn"; pl2="agaibh"; pl3="aca"} - {base="aig"; sg1="'gam^L"; sg2="'gad^L"; sg3M="'ga^L"; sg3F="'ga"++H; pl1="'gar"++N; pl2="'gur"++N; pl3="'gan"} ; + {base="aig"; sg1="'gam" + LENITION_DEBUG; sg2="'gad" + LENITION_DEBUG; sg3M="'ga" + LENITION_DEBUG; sg3F="'ga"++H; pl1="'gar"++N; pl2="'gur"++N; pl3="'gan"} + NoMutation ; + airPrep : LinPrep = - smartPrep + mkPrep {base="air"; sg1="orm"; sg2="ort"; sg3M="air"; sg3F="oirre"; pl1="oirrn"; pl2="oirbh"; pl3="orra"} - (invarPrepForms "air") ; + (invarPrepForms "air") + NoMutation ; annPrep : LinPrep = - smartPrep + mkPrep {base="ann"; sg1="annam"; sg2="annad"; sg3M="ann"; sg3F="innte"; pl1="annainn"; pl2="annaibh"; pl3="annta"} - {base="ann"; sg1="'nam^L"; sg2="'nad^L"; sg3M="'na^L"; sg3F="'na"++H; pl1="'nar"++N; pl2="'nur"++N; pl3="'nan"} ; + {base="ann"; sg1="'nam" + LENITION_DEBUG; sg2="'nad" + LENITION_DEBUG; sg3M="'na" + LENITION_DEBUG; sg3F="'na"++H; pl1="'nar"++N; pl2="'nur"++N; pl3="'nan"} + NoMutation ; àsPrep : LinPrep = - smartPrep + mkPrep {base="às"; sg1="asam"; sg2="asad"; sg3M="às"; sg3F="aiste"; pl1="asainn"; pl2="asaibh"; pl3="asda"} - (invarPrepForms "às") ; + (invarPrepForms "às") + NoMutation ; bhoPrep : LinPrep = - smartPrep + mkPrep {base="bho"; sg1="bhuam"; sg2="bhuat"; sg3M="bhuaithe"; sg3F="bhuaipe"; pl1="bhuainn"; pl2="buaibh"; pl3="bhuapa"} - {base="bho"; sg1="bhom^L"; sg2="bhod^L"; sg3M="bho a^L"; sg3F="bho a"++H; pl1="bhor"++N; pl2="bhu"++N; pl3="bhon"} ; + {base="bho"; sg1="bhom" + LENITION_DEBUG; sg2="bhod" + LENITION_DEBUG; sg3M="bho a" + LENITION_DEBUG; sg3F="bho a"++H; pl1="bhor"++N; pl2="bhu"++N; pl3="bhon"} + Lenited ; {- dePrep : LinPrep = …-} doPrep : LinPrep = - smartPrep + mkPrep {base="do"; sg1="dhomh"; sg2="dhut"; sg3M="dha"; sg3F="dhi"; pl1="dhuinn"; pl2="dhuibh"; pl3="dhiubh"} - {base="bho"; sg1="dom^L"; sg2="dod^L"; sg3M="dha^L"; sg3F="dha"++H; pl1="dor"++N; pl2="dhur"++N; pl3="don"} ; + {base="bho"; sg1="dom" + LENITION_DEBUG; sg2="dod" + LENITION_DEBUG; sg3M="dha" + LENITION_DEBUG; sg3F="dha"++H; pl1="dor"++N; pl2="dhur"++N; pl3="don"} + Lenited ; {- eadarPrep : LinPrep = …-} {- foPrep : LinPrep = …-} guPrep : LinPrep = - smartPrep + mkPrep + True {-replaces object pronoun-} + (Dat NoMutation) {-governs dative when indefinite, no mutation-} + Gen {-governs genitive when definite-} {base="gu"; sg1="ugam"; sg2="ugad"; sg3M="uige"; sg3F="uice"; pl1="ugainn"; pl2="ugaibh"; pl3="uca"} - {base="gu"; sg1="gum^L"; sg2="gud^L"; sg3M="gu a^L"; sg3F="gu a"++H; pl1="gar"++N; pl2="gur"++N; pl3="gun"} ; + {base="gu"; sg1="gum" + LENITION_DEBUG; sg2="gud" + LENITION_DEBUG; sg3M="gu a" + LENITION_DEBUG; sg3F="gu a"++H; pl1="gar"++N; pl2="gur"++N; pl3="gun"} + ; -------------------------------------------------------------------------------- -- Adjectives diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf index c7a8634b..523eb632 100644 --- a/src/gaelic/SentenceGla.gf +++ b/src/gaelic/SentenceGla.gf @@ -10,7 +10,7 @@ lin -- : NP -> VP -> Cl PredVP np vp = { - subj = np.s ! NPC Nom ; + subj = linNP np ; -- article and CN are discontinuous in NP! linNP just picks nominative unmutated. pred = -- table {something with tense+polarity => vp.s ! VPres (nagr2vagr np.a) From e14833217ee0f13e78eea0ea62169ee9cc2f4dde Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 28 Aug 2025 15:47:14 +0200 Subject: [PATCH 032/169] TODO notes --- src/gaelic/ParadigmsGla.gf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf index fe9ab02c..ba520dec 100644 --- a/src/gaelic/ParadigmsGla.gf +++ b/src/gaelic/ParadigmsGla.gf @@ -77,9 +77,11 @@ oper --2 Structural categories -- If prepositions take case, add that as argument to mkPrep - mkPrep : overload { - mkPrep : Str -> Prep ; - } ; + -- mkPrep : overload { + -- mkPrep : Str -> Prep ; + -- } ; + -- TODO: should export the whole set of morphologically complex prepositions here and not let users construct them alone + -- but should include funs like "override complement case for existing preps" mkConj : overload { mkConj : (and : Str) -> Conj ; -- (coffee) and (tea) From 9f21a3d103a9bd2a755148462dc46b5f5cf7f623 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 28 Aug 2025 16:01:58 +0200 Subject: [PATCH 033/169] add the correct word for bird (tunnag is "duck") --- src/gaelic/LexiconGla.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gaelic/LexiconGla.gf b/src/gaelic/LexiconGla.gf index bd5e1e36..e775e8b1 100644 --- a/src/gaelic/LexiconGla.gf +++ b/src/gaelic/LexiconGla.gf @@ -31,7 +31,7 @@ lin beg_V2V = mkV2V (mkV "") ; lin belly_N = mkN "" ; lin big_A = mkA "" ; lin bike_N = mkN "" ;-} -lin bird_N = smartN "tunnag" Fem ;{- +lin bird_N = smartN "eun" "eòin" "eòin" Masc ;{- lin bite_V2 = mkV2 "" ; lin black_A = mkA "" ; lin blood_N = mkN "" ; From 39f6a43717224ada9295da61e21da094aa4dd176 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 28 Aug 2025 17:17:20 +0200 Subject: [PATCH 034/169] fix Sg Dat for class 1B nouns --- src/gaelic/ResGla.gf | 70 ++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 3344124f..5fe973ef 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -65,9 +65,12 @@ oper } ; LinN : Type = { - base, -- tunnag fuil loch fear litir - gen, -- tunnaige fala locha fir litreach ("de-palatalised") - pl, -- tunnagan lochan fir litrichean + base, -- tunnag fuil loch fear litir bròg + dat, -- -"- bròig (1B) + gen, -- tunnaige fala locha fir litreach ("de-palatalised") bròige + pl, -- tunnagan lochan fir litrichean brògan +-- pldat, -- Krasimir's and Katya's automatic extraction suggests there's a difference, but I don't see it + -- add this form if we turn out to need it -- TODO: for nouns that only use suffixes, should these just show theoretical forms? lenited, -- thunnag fhuil loch fhear palatalised, -- tunnaig fuil loch fir @@ -77,34 +80,30 @@ oper g : Gender } ; + mk5N : (nom,gen,dat,pl : Str) -> Gender -> LinN = \brog,broige,broig,brogan,g -> { + base = brog ; + gen = broige ; + dat = broig ; + pl = brogan ; + lenited_plural = lenite brogan ; + lenited = bhrog ; + palatalised = broig ; + lenited_palatalised = bhroig ; + g = g + } where { + bhrog : Str = lenite brog ; + bhroig : Str = lenite broig } ; + smartN = overload { - smartN : (nom,gen,pl : Str) -> Gender -> LinN = \loch,locha,lochan,g -> { - gen = locha ; - pl = lochan ; - lenited_plural = lenite lochan ; - base, - lenited, - palatalised, - lenited_palatalised = loch ; - g = g - } ; - smartN : (base : Str) -> Gender -> LinN = \tunnag,g -> { - base = tunnag ; - gen = fm (tunnaig + "e") tunnaig ; - pl = plural ; -- for other allomorphs, use 4-argument paradigm - lenited_plural = lenite plural ; - lenited = thunnag ; - palatalised = tunnaig ; - lenited_palatalised = thunnaig ; - g = g - } where { - fm : Str -> Str -> Str = \fem,masc -> case g of { + smartN : (nom,gen,pl : Str) -> Gender -> LinN = \loch,locha,lochan,g -> + mk5N loch locha loch lochan g ; + smartN : (base : Str) -> Gender -> LinN = \tunnag,g -> + let fm : Str -> Str -> Str = \fem,masc -> case g of { Fem => fem ; Masc => masc } ; tunnaig : Str = palatalise tunnag ; - thunnag : Str = lenite tunnag ; - thunnaig : Str = lenite tunnaig ; - plural : Str = fm (tunnag + "an") tunnaig ; - } + tunnaige : Str = fm (tunnaig + "e") tunnaig ; + tunnagan : Str = fm (tunnag + "an") tunnaig ; + in mk5N tunnag tunnaige tunnag tunnagan g } ; vowel : pattern Str = #("a"|"à"|"e"|"i"|"ì"|"o"|"u") ; -- more accents? @@ -129,9 +128,10 @@ oper -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 - mkNoun : (b,g,pl,l,p,lp,lpl : Str) -> Gender -> LinN = \b,gen,pl,l,p,lp,lpl,g -> { + mkNoun : (b,g,d,pl,l,p,lp,lpl : Str) -> Gender -> LinN = \b,gen,dat,pl,l,p,lp,lpl,g -> { base = b ; -- tunnag fuil loch fear litir gen = gen ; -- tunnaige fala locha fir litreach + dat = dat ; -- tunnaige fala locha fir litreach pl = pl ; -- tunnagan lochan fir litrichean lenited = l ; -- thunnag fhuil loch fhear litir ? palatalised = p ; -- tunnaig fuil loch fir litir ? @@ -147,8 +147,8 @@ oper Indef Sg (Nom NoMutation) => n.base ; Indef Sg (Nom Lenited) => n.lenited ; Indef Sg Gen => n.gen ; - Indef Sg (Dat NoMutation) => fm n.palatalised n.base ; - Indef Sg (Dat Lenited) => fm n.lenited_palatalised n.lenited ; + Indef Sg (Dat NoMutation) => n.dat ; + Indef Sg (Dat Lenited) => fm n.lenited_palatalised n.lenited ; ------- FIXME later Def Sg (CC (Nom NoMutation)) => n.base ; Def Sg (CC (Nom Lenited)) => n.lenited ; Def Sg (CC Gen) => fm n.gen n.lenited_palatalised ; @@ -158,8 +158,8 @@ oper Indef Pl (Nom NoMutation) => fm n.pl n.palatalised ; Indef Pl (Nom Lenited) => fm n.lenited_plural n.lenited_palatalised ; Indef Pl Gen => n.lenited ; - Indef Pl (Dat NoMutation) => fm n.pl n.palatalised ; -- TODO: is this correct? - Indef Pl (Dat Lenited) => fm n.lenited_plural n.lenited_palatalised ; -- TODO: ???? + Indef Pl (Dat NoMutation) => fm n.pl n.palatalised ; -- TODO: is this overfitting based on the 5 nouns i know? probably! + Indef Pl (Dat Lenited) => fm n.lenited_plural n.lenited_palatalised ; -- TODO: see above Def Pl (CC (Nom NoMutation)) => n.pl ; Def Pl (CC (Nom Lenited)) => n.lenited_plural ; Def Pl (CC Gen) => n.base ; @@ -189,7 +189,7 @@ oper -- some test nouns — TODO: do smart paradigms tunnag_N : LinN = { - base = "tunnag" ; + base,dat = "tunnag" ; gen = "tunnaige" ; pl = "tunnagan" ; lenited_plural = "thunnagan" ; @@ -200,7 +200,7 @@ tunnag_N : LinN = { } ; boireannach_N : LinN = { - base = "boireannach" ; + base,dat = "boireannach" ; pl,gen = "boireannaich" ; lenited = "bhoireannach" ; palatalised = "boireannaich" ; From 5cb67dadbfbb0ccaae959b93f6cff4a783f13990 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 28 Aug 2025 19:35:49 +0200 Subject: [PATCH 035/169] NON_EXISTANT -> nonExist --- src/latvian/AdverbLav.gf | 2 +- src/latvian/IdiomLav.gf | 4 +- src/latvian/ParadigmsAdjectivesLav.gf | 6 +- src/latvian/ParadigmsNounsLav.gf | 10 ++-- src/latvian/ParadigmsPronounsLav.gf | 22 +++---- src/latvian/ParadigmsVerbsLav.gf | 82 +++++++++++++-------------- src/latvian/RelativeLav.gf | 2 +- src/latvian/ResLav.gf | 2 - src/latvian/SentenceLav.gf | 2 +- src/latvian/StructuralLav.gf | 12 ++-- src/latvian/VerbLav.gf | 2 +- 11 files changed, 72 insertions(+), 74 deletions(-) diff --git a/src/latvian/AdverbLav.gf b/src/latvian/AdverbLav.gf index c7f65c8c..5fcce560 100644 --- a/src/latvian/AdverbLav.gf +++ b/src/latvian/AdverbLav.gf @@ -43,7 +43,7 @@ lin AdnCAdv cadv = { s = case cadv.deg of { Posit => cadv.s ++ cadv.prep ; - _ => NON_EXISTENT + _ => nonExist } } ; diff --git a/src/latvian/IdiomLav.gf b/src/latvian/IdiomLav.gf index 81261282..4758a1b6 100644 --- a/src/latvian/IdiomLav.gf +++ b/src/latvian/IdiomLav.gf @@ -57,7 +57,7 @@ lin } ; -- FIXME: placeholder - CleftNP np rs = { s = \\_,_ => NON_EXISTENT } ; - CleftAdv ad s = { s = \\_,_ => NON_EXISTENT } ; + CleftNP np rs = { s = \\_,_ => nonExist } ; + CleftAdv ad s = { s = \\_,_ => nonExist } ; } diff --git a/src/latvian/ParadigmsAdjectivesLav.gf b/src/latvian/ParadigmsAdjectivesLav.gf index 30c74666..53dfbf44 100644 --- a/src/latvian/ParadigmsAdjectivesLav.gf +++ b/src/latvian/ParadigmsAdjectivesLav.gf @@ -8,7 +8,7 @@ oper -- ADJECTIVES - -- TODO: Parameters and paradigms should be redesigned due to the many NON_EXISTENT forms..? + -- TODO: Parameters and paradigms should be redesigned due to the many nonExist forms..? -- To keep the code and user interface (parameters) simple, Masc lemmas are expected. @@ -56,7 +56,7 @@ oper s + "ais" => mkAdjective_Pos lemma Def ! g ! n ! c ; _ => mkAdjective_Pos lemma Indef ! g ! n ! c } ; - AAdj _ _ _ _ _ => NON_EXISTENT ; + AAdj _ _ _ _ _ => nonExist ; AAdv d => mkAdjective_Adverb lemma ! d } }; @@ -69,7 +69,7 @@ oper mkAdjective_Participle : Verb -> Voice -> Adjective = \v,p -> { s = table { AAdj Posit Indef g n c => v.s ! Pos ! (VPart p g n c) ; - _ => NON_EXISTENT + _ => nonExist } }; diff --git a/src/latvian/ParadigmsNounsLav.gf b/src/latvian/ParadigmsNounsLav.gf index 5085dcca..f2d764ec 100644 --- a/src/latvian/ParadigmsNounsLav.gf +++ b/src/latvian/ParadigmsNounsLav.gf @@ -257,7 +257,7 @@ oper in { s = table { Sg => case stem of { - #exception_D6 => \\_ => NON_EXISTENT ; + #exception_D6 => \\_ => nonExist ; _ => table { Nom => stem + "s" ; Gen => stem + "s" ; @@ -288,17 +288,17 @@ oper Sg => table { Nom => stem + "šanās" ; Gen => stem + "šanās" ; - Dat => NON_EXISTENT ; + Dat => nonExist ; Acc => stem + "šanos" ; - Loc => NON_EXISTENT ; + Loc => nonExist ; Voc => stem + "šanās" } ; Pl => table { Nom => stem + "šanās" ; Gen => stem + "šanos" ; - Dat => NON_EXISTENT ; + Dat => nonExist ; Acc => stem + "šanās" ; - Loc => NON_EXISTENT ; + Loc => nonExist ; Voc => stem + "šanās" } } ; diff --git a/src/latvian/ParadigmsPronounsLav.gf b/src/latvian/ParadigmsPronounsLav.gf index c2e1d87c..0fcc696a 100644 --- a/src/latvian/ParadigmsPronounsLav.gf +++ b/src/latvian/ParadigmsPronounsLav.gf @@ -17,7 +17,7 @@ oper Dat => "man" ; Acc => "mani" ; Loc => "manī" ; - Voc => NON_EXISTENT + Voc => nonExist } ; agr = AgrP1 Sg gend ; poss = table { @@ -68,7 +68,7 @@ oper Dat => "mums" ; Acc => "mūs" ; Loc => "mūsos" ; - Voc => NON_EXISTENT + Voc => nonExist } ; agr = AgrP1 Pl gend ; poss = \\_,_,_ => "mūsu" ; @@ -188,7 +188,7 @@ oper Dat => stem + "am" ; Acc => stem + "u" ; Loc => stem + "ā" ; - Voc => NON_EXISTENT + Voc => nonExist } ; Pl => table { Nom => stem + "i" ; @@ -196,7 +196,7 @@ oper Dat => stem + "iem" ; Acc => stem + "us" ; Loc => stem + "os" ; - Voc => NON_EXISTENT + Voc => nonExist } } ; Fem => table { @@ -206,7 +206,7 @@ oper Dat => stem + "ai" ; Acc => stem + "u" ; Loc => stem + "ā" ; - Voc => NON_EXISTENT + Voc => nonExist } ; Pl => table { Nom => stem + "as" ; @@ -214,7 +214,7 @@ oper Dat => stem + "ām" ; Acc => stem + "as" ; Loc => stem + "ās" ; - Voc => NON_EXISTENT + Voc => nonExist } } } ; @@ -236,7 +236,7 @@ oper Dat => stem + suff1 + "m" ; Acc => stem + "o" ; Loc => stem + "ajā" ; - Voc => NON_EXISTENT + Voc => nonExist } ; Pl => table { Nom => stem + "ie" ; @@ -244,7 +244,7 @@ oper Dat => stem + "iem" ; Acc => stem + "os" ; Loc => stem + "ajos" ; - Voc => NON_EXISTENT + Voc => nonExist } } ; Fem => table { @@ -254,7 +254,7 @@ oper Dat => stem + "ai" ; Acc => stem + "o" ; Loc => stem + "ajā" ; - Voc => NON_EXISTENT + Voc => nonExist } ; Pl => table { Nom => stem + suff2 + "s" ; @@ -262,7 +262,7 @@ oper Dat => stem + suff2 + "m" ; Acc => stem + suff2 + "s" ; Loc => stem + "ajās" ; - Voc => NON_EXISTENT + Voc => nonExist } } } ; @@ -278,7 +278,7 @@ oper Dat => case stem of { "kaut" => stem ++ "kam" ; _ => stem + "kam" } ; Acc => case stem of { "kaut" => stem ++ "ko" ; _ => stem + "ko" } ; Loc => case stem of { "kaut" => stem ++ "kur" ; _ => stem + "kur" } ; - Voc => NON_EXISTENT + Voc => nonExist } ! c ; agr = AgrP3 Sg Masc ; poss = \\_,_,_ => case stem of { "kaut" => stem ++ "kā" ; _ => stem + "kā" } ; diff --git a/src/latvian/ParadigmsVerbsLav.gf b/src/latvian/ParadigmsVerbsLav.gf index e387625e..7eff7417 100644 --- a/src/latvian/ParadigmsVerbsLav.gf +++ b/src/latvian/ParadigmsVerbsLav.gf @@ -54,8 +54,8 @@ oper filter_Neg : Verb_TMP -> Verb_TMP = \full -> { s = table { - VDeb => NON_EXISTENT ; - VDebRel => NON_EXISTENT ; + VDeb => nonExist ; + VDebRel => nonExist ; x => full.s ! x } } ; @@ -96,8 +96,8 @@ oper VRel Pres => stem2 + "ot" ; VRel Fut => pal_C1_1 stem3 stem1 + "šot" ; - VRel Past => NON_EXISTENT ; - VRel Cond => NON_EXISTENT ; + VRel Past => nonExist ; + VRel Cond => nonExist ; VDeb => "jā" + stem2 ; VDebRel => "jā" + stem2 + "ot" ; @@ -142,8 +142,8 @@ oper VRel Pres => stem + "jot" ; VRel Fut => stem + "šot" ; - VRel Past => NON_EXISTENT ; - VRel Cond => NON_EXISTENT ; + VRel Past => nonExist ; + VRel Cond => nonExist ; VDeb => "jā" + stem ; VDebRel => "jā" + stem + "jot" ; @@ -188,8 +188,8 @@ oper VRel Pres => pal_C3_1 stem + "ot" ; VRel Fut => stem + "šot" ; - VRel Past => NON_EXISTENT ; - VRel Cond => NON_EXISTENT ; + VRel Past => nonExist ; + VRel Cond => nonExist ; VDeb => pal_C3_3 stem ; VDebRel => pal_C3_3 stem + "ot" ; @@ -238,8 +238,8 @@ oper VRel Pres => stem2 + "oties" ; VRel Fut => pal_C1_1 stem3 stem1 + "šoties" ; - VRel Past => NON_EXISTENT ; - VRel Cond => NON_EXISTENT ; + VRel Past => nonExist ; + VRel Cond => nonExist ; VDeb => "jā" + stem2 + "as" ; VDebRel => "jā" + stem2 + "oties" ; @@ -284,8 +284,8 @@ oper VRel Pres => stem + "joties" ; VRel Fut => stem + "šoties" ; - VRel Past => NON_EXISTENT ; - VRel Cond => NON_EXISTENT ; + VRel Past => nonExist ; + VRel Cond => nonExist ; VDeb => "jā" + stem + "jas" ; VDebRel => "jā" + stem + "joties" ; @@ -330,8 +330,8 @@ oper VRel Pres => pal_C3_1 stem + "oties" ; VRel Fut => stem + "šoties" ; - VRel Past => NON_EXISTENT ; - VRel Cond => NON_EXISTENT ; + VRel Past => nonExist ; + VRel Cond => nonExist ; VDeb => pal_C3_6 stem + "s" ; VDebRel => pal_C3_6 stem + "oties" ; @@ -372,8 +372,8 @@ oper VInd P2 Sg Pres => "neesi" ; VInd P3 _ Pres => "nav" ; - VDeb => NON_EXISTENT ; - VDebRel => NON_EXISTENT ; + VDeb => nonExist ; + VDebRel => nonExist ; x => (mkVerb_C1 "nebūt" "neesu" "nebiju").s ! x -- the incorrect 'neesu' will be overriden } @@ -392,8 +392,8 @@ oper } ; Neg => table { VInd P3 _ Pres => "ne" + pref + "iet" ; - VDeb => NON_EXISTENT ; - VDebRel => NON_EXISTENT ; + VDeb => nonExist ; + VDebRel => nonExist ; x => (mkVerb_C1 ("ne" + pref + "iet") ("ne" + pref + "eju") ("ne" + pref + "gāju")).s ! x } } ; @@ -422,9 +422,9 @@ oper VRel Pres => (mkVerb_C3 "neguļēt").s ! VRel Pres ; - VDeb => NON_EXISTENT ; + VDeb => nonExist ; - VDebRel => NON_EXISTENT ; + VDebRel => nonExist ; x => (mkVerb_C3 "negulēt").s ! x } @@ -557,7 +557,7 @@ oper Dat => stem + "ušam" ; Acc => stem + "ušu" ; Loc => stem + "ušā" ; - Voc => NON_EXISTENT + Voc => nonExist } ; Pl => case c of { Nom => stem + "uši" ; @@ -565,7 +565,7 @@ oper Dat => stem + "ušiem" ; Acc => stem + "ušus" ; Loc => stem + "ušos" ; - Voc => NON_EXISTENT + Voc => nonExist } } ; Fem => case n of { @@ -575,7 +575,7 @@ oper Dat => stem + "ušai" ; Acc => stem + "ušu" ; Loc => stem + "ušā" ; - Voc => NON_EXISTENT + Voc => nonExist } ; Pl => case c of { Nom => stem + "ušas" ; @@ -583,7 +583,7 @@ oper Dat => stem + "ušām" ; Acc => stem + "ušas" ; Loc => stem + "ušās" ; - Voc => NON_EXISTENT + Voc => nonExist } } } ; @@ -597,7 +597,7 @@ oper Dat => stem + "tam" ; Acc => stem + "tu" ; Loc => stem + "tā" ; - Voc => NON_EXISTENT -- FIXME: -tais ? + Voc => nonExist -- FIXME: -tais ? } ; Pl => case c of { Nom => stem + "ti" ; @@ -605,7 +605,7 @@ oper Dat => stem + "tiem" ; Acc => stem + "tus" ; Loc => stem + "tos" ; - Voc => NON_EXISTENT -- FIXME: -tie ? + Voc => nonExist -- FIXME: -tie ? } } ; Fem => case n of { @@ -615,7 +615,7 @@ oper Dat => stem + "tai" ; Acc => stem + "tu" ; Loc => stem + "tā" ; - Voc => NON_EXISTENT -- FIXME: -tā ? + Voc => nonExist -- FIXME: -tā ? } ; Pl => case c of { Nom => stem + "tas" ; @@ -623,7 +623,7 @@ oper Dat => stem + "tām" ; Acc => stem + "tas" ; Loc => stem + "tās" ; - Voc => NON_EXISTENT -- FIXME: -tās ? + Voc => nonExist -- FIXME: -tās ? } } } ; @@ -633,37 +633,37 @@ oper Masc => case n of { Sg => case c of { Nom => stem + "ies" ; - Gen => NON_EXISTENT ; - Dat => NON_EXISTENT ; + Gen => nonExist ; + Dat => nonExist ; Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT + Loc => nonExist ; + Voc => nonExist } ; Pl => case c of { Nom => stem + "ušies" ; Gen => stem + "ušos" ; - Dat => NON_EXISTENT ; + Dat => nonExist ; Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT + Loc => nonExist ; + Voc => nonExist } } ; Fem => case n of { Sg => case c of { Nom => stem + "usies" ; Gen => stem + "ušās" ; - Dat => NON_EXISTENT ; + Dat => nonExist ; Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT + Loc => nonExist ; + Voc => nonExist } ; Pl => case c of { Nom => stem + "ušās" ; Gen => stem + "ušos" ; - Dat => NON_EXISTENT ; + Dat => nonExist ; Acc => stem + "ušos" ; - Loc => NON_EXISTENT ; - Voc => NON_EXISTENT + Loc => nonExist ; + Voc => nonExist } } } ; diff --git a/src/latvian/RelativeLav.gf b/src/latvian/RelativeLav.gf index 9190bede..77cc05f7 100644 --- a/src/latvian/RelativeLav.gf +++ b/src/latvian/RelativeLav.gf @@ -63,7 +63,7 @@ lin Dat => "kam" ; Acc => "ko" ; Loc => "kur" ; - ResLav.Voc => NON_EXISTENT + ResLav.Voc => nonExist } } ; diff --git a/src/latvian/ResLav.gf b/src/latvian/ResLav.gf index fc96defe..50528e8f 100644 --- a/src/latvian/ResLav.gf +++ b/src/latvian/ResLav.gf @@ -160,6 +160,4 @@ oper prefix : pattern Str = #("aiz"|"ap"|"at"|"ie"|"iz"|"no"|"pa"|"pār"|"pie"|"sa"|"uz") ; - NON_EXISTENT : Str = "NON_EXISTENT" ; - } diff --git a/src/latvian/SentenceLav.gf b/src/latvian/SentenceLav.gf index 8c7c8c57..1248c1ec 100644 --- a/src/latvian/SentenceLav.gf +++ b/src/latvian/SentenceLav.gf @@ -62,7 +62,7 @@ lin UseSlash t p slash = { s = t.s ++ p.s ++ slash.s ! (Ind t.a t.t) ! p.p ; prep = slash.prep } ; -- FIXME: placeholder - AdvS a s = { s = NON_EXISTENT } ; + AdvS a s = { s = nonExist } ; oper -- TODO: PassV2 verbs jāsaskaņo ar objektu, nevis subjektu (by8means_Prep: AgP3 Sg Masc) diff --git a/src/latvian/StructuralLav.gf b/src/latvian/StructuralLav.gf index 577ff1ef..ff5ef842 100644 --- a/src/latvian/StructuralLav.gf +++ b/src/latvian/StructuralLav.gf @@ -176,7 +176,7 @@ lin Dat => "kuram" ; Acc => "kuru" ; Loc => "kurā" ; - ResLav.Voc => NON_EXISTENT + ResLav.Voc => nonExist } ; num = Sg } ; @@ -188,7 +188,7 @@ lin Dat => "kuriem" ; Acc => "kurus" ; Loc => "kuros" ; - ResLav.Voc => NON_EXISTENT + ResLav.Voc => nonExist } ; num = Pl } ; @@ -200,7 +200,7 @@ lin Dat => "kam" ; Acc => "ko" ; Loc => "kur" ; - ResLav.Voc => NON_EXISTENT + ResLav.Voc => nonExist } ; num = Sg } ; @@ -212,7 +212,7 @@ lin Dat => "kam" ; Acc => "ko" ; Loc => "kur" ; - ResLav.Voc => NON_EXISTENT + ResLav.Voc => nonExist } ; num = Pl } ; @@ -271,12 +271,12 @@ lin oper reflPron : Case => Str = table { - Nom => NON_EXISTENT ; + Nom => nonExist ; Gen => "sevis" ; Dat => "sev" ; Acc => "sevi" ; Loc => "sevī" ; - ResLav.Voc => NON_EXISTENT + ResLav.Voc => nonExist } ; lai_Subj = ss "lai" ; diff --git a/src/latvian/VerbLav.gf b/src/latvian/VerbLav.gf index f936e78e..7353e695 100644 --- a/src/latvian/VerbLav.gf +++ b/src/latvian/VerbLav.gf @@ -330,7 +330,7 @@ oper Ind Anter tense => (mkV "būt").s ! finalPol ! (VInd agr.pers agr.num tense) ++ part ; --# notpresent -- FIXME(?): Rel _ Past => ... - Rel _ Past => NON_EXISTENT ; --# notpresent + Rel _ Past => nonExist ; --# notpresent Rel Simul tense => v.s ! finalPol ! (VRel tense) ; --# notpresent Rel Anter tense => (mkV "būt").s ! finalPol ! (VRel tense) ++ part ; --# notpresent From f546600fd2d66e93d2e51b5168fcdce764d4b40c Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 29 Aug 2025 07:02:44 +0200 Subject: [PATCH 036/169] TPastSimple in Latin and Hungarian --- src/hungarian/ExtendHun.gf | 3 +++ src/latin/AllLat.gf | 4 ++-- src/latin/ExtendLat.gf | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/hungarian/ExtendHun.gf b/src/hungarian/ExtendHun.gf index 334eef4c..c595a448 100644 --- a/src/hungarian/ExtendHun.gf +++ b/src/hungarian/ExtendHun.gf @@ -5,4 +5,7 @@ concrete ExtendHun of Extend = CatHun -- with (Grammar=GrammarHun) ** open Prelude, ResHun, NounHun in { +lin + TPastSimple = {s = []} ** {t = Past} ; --# notpresent + } ; diff --git a/src/latin/AllLat.gf b/src/latin/AllLat.gf index a978fac3..806c5189 100644 --- a/src/latin/AllLat.gf +++ b/src/latin/AllLat.gf @@ -2,5 +2,5 @@ concrete AllLat of AllLatAbs = LangLat, - ExtraLat - ** {} ; + ExtendLat + ** open ExtraLat in {} ; diff --git a/src/latin/ExtendLat.gf b/src/latin/ExtendLat.gf index ec214bb8..719f824b 100644 --- a/src/latin/ExtendLat.gf +++ b/src/latin/ExtendLat.gf @@ -259,4 +259,6 @@ concrete ExtendLat of Extend = CatLat ** open ResLat in { -- UttDatIP : IP -> Utt ; -- whom (dative) + TPastSimple = {s = []} ** {t = Past} ; --# notpresent + } From 4644ef0229f8f363d517101feb7cb34c0fb5b7f1 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 29 Aug 2025 08:33:35 +0200 Subject: [PATCH 037/169] added pot3as4 and potas5 --- src/danish/NumeralDan.gf | 5 ++++- src/norwegian/NumeralNor.gf | 5 ++++- src/nynorsk/NumeralNno.gf | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/danish/NumeralDan.gf b/src/danish/NumeralDan.gf index c817b0ce..f8a764d7 100644 --- a/src/danish/NumeralDan.gf +++ b/src/danish/NumeralDan.gf @@ -7,7 +7,7 @@ concrete NumeralDan of Numeral = CatDan [Numeral,Digits,Decimal] ** open MorphoD lincat Digit = {s : DForm => CardOrd => Str} ; Sub10 = {s : DForm => CardOrd => Str ; n : Number} ; - Sub100, Sub1000, Sub1000000 = + Sub100, Sub1000, Sub1000000, Sub1000000000, Sub1000000000000 = {s : CardOrd => Str ; n : Number} ; lin num x = x ; @@ -45,6 +45,9 @@ lin n9 = mkTal "ni" "nitten" "halvfems" "niende" "halvfemsindstyvende" ; pot3 n = numPl (\\g => n.s ! invNum ++ cardOrd "tusind" "tusinde" ! g) ; pot3plus n m = {s = \\g => n.s ! invNum ++ "tusind" ++ "og" ++ m.s ! g ; n =Pl} ; + pot3as4 n = n ; + pot4as5 n = n ; + lincat Dig = TDigit ; diff --git a/src/norwegian/NumeralNor.gf b/src/norwegian/NumeralNor.gf index 08c315bb..fb66dc3f 100644 --- a/src/norwegian/NumeralNor.gf +++ b/src/norwegian/NumeralNor.gf @@ -4,7 +4,7 @@ concrete NumeralNor of Numeral = CatNor [Numeral,Digits,Decimal] ** open MorphoN lincat Digit = {s : DForm => CardOrd => Str} ; Sub10 = {s : DForm => CardOrd => Str ; n : Number} ; - Sub100, Sub1000, Sub1000000 = + Sub100, Sub1000, Sub1000000, Sub1000000000, Sub1000000000000 = {s : CardOrd => Str ; n : Number} ; lin @@ -44,6 +44,9 @@ lin pot3plus n m = {s = \\g => n.s ! invNum ++ "tusen" ++ "og" ++ m.s ! g ; n = Pl} ; + pot3as4 n = n ; + pot4as5 n = n ; + -- Numerals from sequences of digits. lincat diff --git a/src/nynorsk/NumeralNno.gf b/src/nynorsk/NumeralNno.gf index 8334230f..8028e5c1 100644 --- a/src/nynorsk/NumeralNno.gf +++ b/src/nynorsk/NumeralNno.gf @@ -4,7 +4,7 @@ concrete NumeralNno of Numeral = CatNno [Numeral,Digits,Decimal] ** open MorphoN lincat Digit = {s : DForm => CardOrd => Str} ; Sub10 = {s : DForm => CardOrd => Str ; n : Number} ; - Sub100, Sub1000, Sub1000000 = + Sub100, Sub1000, Sub1000000, Sub1000000000, Sub1000000000000 = {s : CardOrd => Str ; n : Number} ; lin @@ -44,6 +44,9 @@ lin pot3plus n m = {s = \\g => n.s ! invNum ++ "tusen" ++ "og" ++ m.s ! g ; n = Pl} ; + pot3as4 n = n ; + pot4as5 n = n ; + -- Numerals from sequences of digits. lincat From b2e2b570e194c071b5fa117cf6e592b9c6ccf5b8 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 29 Aug 2025 09:15:10 +0200 Subject: [PATCH 038/169] added trivial functions --- src/zulu/PhraseZul.gf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/zulu/PhraseZul.gf b/src/zulu/PhraseZul.gf index 8896daa5..bb22a2a1 100755 --- a/src/zulu/PhraseZul.gf +++ b/src/zulu/PhraseZul.gf @@ -11,13 +11,13 @@ concrete PhraseZul of Phrase = CatZul ** open Prelude, ParamX, ResZul in { -- UttIP ip = {s = ip.s ! npNom} ; --- Acc also -- UttIAdv iadv = iadv ; - -- UttNP np = {s = np.s ! npNom} ; + UttNP np = {s = np.s ! NFull} ; -- UttVP vp = {s = infVP VVInf vp False Simul CPos (agrP3 Sg)} ; -- UttAdv adv = adv ; -- UttCN n = {s = n.s ! Sg ! Nom} ; -- UttCard n = {s = n.s ! False ! Nom} ; - -- UttAP ap = {s = ap.s ! agrP3 Sg} ; - -- UttInterj i = i ; + UttAP ap = {s = ap.s ! AF1} ; + UttInterj i = i ; NoPConj = {s = []} ; -- PConjConj conj = {s = conj.s2} ; --- From 2ff33ea968c72063a23306a598b4434f4b5ed440 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 29 Aug 2025 09:26:26 +0200 Subject: [PATCH 039/169] added AdvS --- src/latvian/SentenceLav.gf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/latvian/SentenceLav.gf b/src/latvian/SentenceLav.gf index 1248c1ec..226c8d1a 100644 --- a/src/latvian/SentenceLav.gf +++ b/src/latvian/SentenceLav.gf @@ -61,8 +61,7 @@ lin UseSlash t p slash = { s = t.s ++ p.s ++ slash.s ! (Ind t.a t.t) ! p.p ; prep = slash.prep } ; - -- FIXME: placeholder - AdvS a s = { s = nonExist } ; + AdvS a s = { s = a.s ++ s.s } ; oper -- TODO: PassV2 verbs jāsaskaņo ar objektu, nevis subjektu (by8means_Prep: AgP3 Sg Masc) From 1cd582a322272a7997fc879fc88ceb486635c9b4 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 29 Aug 2025 12:54:59 +0200 Subject: [PATCH 040/169] added NamesLav.gf --- src/latvian/CatLav.gf | 2 +- src/latvian/DocumentationLav.gf | 12 ++++---- src/latvian/GrammarLav.gf | 4 ++- src/latvian/NamesLav.gf | 49 +++++++++++++++++++++++++++++++++ src/latvian/ParadigmsLav.gf | 4 +-- 5 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 src/latvian/NamesLav.gf diff --git a/src/latvian/CatLav.gf b/src/latvian/CatLav.gf index b4dce679..15fe1eef 100644 --- a/src/latvian/CatLav.gf +++ b/src/latvian/CatLav.gf @@ -112,7 +112,7 @@ lincat PN,LN = ProperNoun ; GN = {s : Case => Str ; gend : Gender} ; - SN = {s : Sex => Case => Str; pl : Case => Str} ; + SN = {s : Gender => Case => Str; pl : Case => Str} ; -- Overriden from CommonX diff --git a/src/latvian/DocumentationLav.gf b/src/latvian/DocumentationLav.gf index 1934e5d8..7667177d 100644 --- a/src/latvian/DocumentationLav.gf +++ b/src/latvian/DocumentationLav.gf @@ -93,12 +93,12 @@ lin InflectionSN = \pn -> { t = "ln" ; s1 = heading1 "Family Name" ; s2 = frameTable ( - tr (th "Nom" ++ td (pn.s ! Male ! Nom)) ++ - tr (th "Acc" ++ td (pn.s ! Male ! Acc)) ++ - tr (th "Dat" ++ td (pn.s ! Male ! Dat)) ++ - tr (th "Gen" ++ td (pn.s ! Male ! Gen)) ++ - tr (th "Loc" ++ td (pn.s ! Male ! Loc)) ++ - tr (th "Voc" ++ td (pn.s ! Male ! Voc))) ; + tr (th "Nom" ++ td (pn.s ! Masc ! Nom)) ++ + tr (th "Acc" ++ td (pn.s ! Masc ! Acc)) ++ + tr (th "Dat" ++ td (pn.s ! Masc ! Dat)) ++ + tr (th "Gen" ++ td (pn.s ! Masc ! Gen)) ++ + tr (th "Loc" ++ td (pn.s ! Masc ! Loc)) ++ + tr (th "Voc" ++ td (pn.s ! Masc ! Voc))) ; s3=[] } ; diff --git a/src/latvian/GrammarLav.gf b/src/latvian/GrammarLav.gf index d28de5f2..b8db60e9 100644 --- a/src/latvian/GrammarLav.gf +++ b/src/latvian/GrammarLav.gf @@ -14,7 +14,9 @@ concrete GrammarLav of Grammar = TextX - [Adv,CAdv], StructuralLav, IdiomLav, - TenseX - [Adv,CAdv] + TenseX - [Adv,CAdv], + NamesLav + ** { flags diff --git a/src/latvian/NamesLav.gf b/src/latvian/NamesLav.gf new file mode 100644 index 00000000..afa6b2e1 --- /dev/null +++ b/src/latvian/NamesLav.gf @@ -0,0 +1,49 @@ +concrete NamesLav of Names = CatLav ** open Prelude, ResLav in { + +lin + GivenName gn = { + s = gn.s ; + agr = AgrP3 Sg gn.gend ; + pol = Pos ; + isRel = False ; + isPron = False + } ; + MaleSurname sn = { + s = sn.s ! Masc ; + agr = AgrP3 Sg Masc ; + pol = Pos ; + isRel = False ; + isPron = False + } ; + FemaleSurname sn = { + s = sn.s ! Fem ; + agr = AgrP3 Sg Fem ; + pol = Pos ; + isRel = False ; + isPron = False + } ; + PlSurname sn = { + s = sn.pl ; + agr = AgrP3 Pl Masc ; + pol = Pos ; + isRel = False ; + isPron = False + } ; + FullName gn sn = { + s = \\c => gn.s ! c ++ sn.s ! gn.gend ! c ; + agr = AgrP3 Sg gn.gend ; + pol = Pos ; + isRel = False ; + isPron = False + } ; + +lin + UseLN, PlainLN = \ln -> { + s = ln.s ; + agr = AgrP3 ln.num ln.gend ; + pol = Pos ; + isRel = False ; + isPron = False + } ; + +} diff --git a/src/latvian/ParadigmsLav.gf b/src/latvian/ParadigmsLav.gf index 470146cd..2f5d868c 100644 --- a/src/latvian/ParadigmsLav.gf +++ b/src/latvian/ParadigmsLav.gf @@ -65,8 +65,8 @@ oper mkSN = overload { mkSN : Str -> SN = \s -> lin SN {s = \\_ => (mkProperNoun s Sg).s; pl = (mkProperNoun s Sg).s}; -- default gender utrum mkSN : Str -> Str -> Str -> SN = - \male,female,pl -> lin SN {s = table {Male => (mkProperNoun male Sg).s; - Female => (mkProperNoun female Sg).s} ; + \male,female,pl -> lin SN {s = table {Masc => (mkProperNoun male Sg).s; + Fem => (mkProperNoun female Sg).s} ; pl = (mkProperNoun pl Sg).s } ; } ; From 52b6305cf20fb596ae2d58bae3ac7e904582bd8a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 29 Aug 2025 13:11:25 +0200 Subject: [PATCH 041/169] a linref for verbs which shows P3 Sg --- src/hungarian/CatHun.gf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/hungarian/CatHun.gf b/src/hungarian/CatHun.gf index 6bb0f8cc..4179977a 100644 --- a/src/hungarian/CatHun.gf +++ b/src/hungarian/CatHun.gf @@ -124,5 +124,7 @@ concrete CatHun of Cat = CommonX - [Adv] ** open ResHun, Prelude in { linref CN = linCN ; NP = linNP ; + V,VS,VQ,VA = \v -> v.s ! VPres P3 Sg ; + V2,V3,V2S,V2Q,V2A = \v -> v.s ! Indef ! VPres P3 Sg ; } From e78497e46de9e3c96be6750173fb46d2be11f05f Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 29 Aug 2025 22:35:56 +0200 Subject: [PATCH 042/169] added CompoundN --- src/danish/ExtendDan.gf | 8 +++++++- src/norwegian/ExtendNor.gf | 8 +++++++- src/nynorsk/ExtendNno.gf | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/danish/ExtendDan.gf b/src/danish/ExtendDan.gf index ff07260e..3f8e00a6 100644 --- a/src/danish/ExtendDan.gf +++ b/src/danish/ExtendDan.gf @@ -19,8 +19,14 @@ concrete ExtendDan of Extend = CatDan ** GenRP ] with (Grammar = GrammarDan) - ** { + ** open Prelude in { flags coding=utf8 ; +lin CompoundN n1 n2 = { + s = \\n,s,c => n1.co ++ BIND ++ n2.s ! n ! s ! c ; + co = n1.co ++ BIND ++ n2.co ; + g = n2.g + } ; + } diff --git a/src/norwegian/ExtendNor.gf b/src/norwegian/ExtendNor.gf index 9498ea2e..c5b4f33f 100644 --- a/src/norwegian/ExtendNor.gf +++ b/src/norwegian/ExtendNor.gf @@ -19,8 +19,14 @@ concrete ExtendNor of Extend = CatNor ** GenRP ] with (Grammar = GrammarNor) - ** { + ** open Prelude in { flags coding=utf8 ; +lin CompoundN n1 n2 = { + s = \\n,s,c => n1.co ++ BIND ++ n2.s ! n ! s ! c ; + co = n1.co ++ BIND ++ n2.co ; + g = n2.g + } ; + } diff --git a/src/nynorsk/ExtendNno.gf b/src/nynorsk/ExtendNno.gf index d278a361..36e70714 100644 --- a/src/nynorsk/ExtendNno.gf +++ b/src/nynorsk/ExtendNno.gf @@ -19,8 +19,14 @@ concrete ExtendNno of Extend = CatNno ** GenRP ] with (Grammar = GrammarNno) - ** { + ** open Prelude in { flags coding=utf8 ; +lin CompoundN n1 n2 = { + s = \\n,s,c => n1.co ++ BIND ++ n2.s ! n ! s ! c ; + co = n1.co ++ BIND ++ n2.co ; + g = n2.g + } ; + } From 141074bec342b8223a448b30556d649584873ccc Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 4 Sep 2025 16:19:12 +0200 Subject: [PATCH 043/169] typo infitive -> infinitive --- src/english/DocumentationEng.gf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/english/DocumentationEng.gf b/src/english/DocumentationEng.gf index 7df89b43..2470cc45 100644 --- a/src/english/DocumentationEng.gf +++ b/src/english/DocumentationEng.gf @@ -191,7 +191,7 @@ lin VVPresPart => pp "verb+ing" }) ; s2= frameTable ( - tr (th "infitive" ++ td (v.s ! VVF VInf)) ++ + tr (th "infinitive" ++ td (v.s ! VVF VInf)) ++ tr (th "present" ++ td (v.s ! VVF VPres ++ " " ++ v.s ! VVPresNeg)) ++ tr (th "past" ++ td (v.s ! VVF VPast ++ " " ++ v.s ! VVPastNeg)) ++ --# notpresent tr (th "past part." ++ td (v.s ! VVF VPPart)) ++ @@ -229,7 +229,7 @@ lin oper inflVerb : Verb -> Str = \verb -> frameTable ( - tr (th "infitive" ++ td (verb.s ! VInf)) ++ + tr (th "infinitive" ++ td (verb.s ! VInf)) ++ tr (th "present" ++ td (verb.s ! VPres)) ++ tr (th "past" ++ td (verb.s ! VPast)) ++ --# notpresent tr (th "past part." ++ td (verb.s ! VPPart)) ++ From 35a6456524c57a8a8cdd8009426219f24e479b70 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 7 Sep 2025 08:19:10 +0200 Subject: [PATCH 044/169] getting started on Scots --- languages.csv | 1 + src/api/CombinatorsSco.gf | 15 ++++ src/api/ConstructorsSco.gf | 3 + src/api/SymbolicSco.gf | 5 ++ src/api/SyntaxSco.gf | 5 ++ src/api/TrySco.gf | 22 +++++ src/scots/AdjectiveSco.gf | 2 + src/scots/AdverbSco.gf | 2 + src/scots/AllSco.gf | 7 ++ src/scots/CatSco.gf | 2 + src/scots/ConjunctionSco.gf | 2 + src/scots/ConstructionSco.gf | 2 + src/scots/DocumentationSco.gf | 3 + src/scots/ExtendSco.gf | 4 + src/scots/GrammarSco.gf | 28 ++++++ src/scots/IdiomSco.gf | 2 + src/scots/LangSco.gf | 10 +++ src/scots/LexiconSco.gf | 2 + src/scots/NamesSco.gf | 2 + src/scots/NounSco.gf | 16 ++++ src/scots/NumeralSco.gf | 156 ++++++++++++++++++++++++++++++++++ src/scots/ParadigmsSco.gf | 2 + src/scots/PhraseSco.gf | 2 + src/scots/QuestionSco.gf | 2 + src/scots/RelativeSco.gf | 2 + src/scots/ResSco.gf | 2 + src/scots/SentenceSco.gf | 3 + src/scots/StructuralSco.gf | 2 + src/scots/SymbolSco.gf | 2 + src/scots/VerbSco.gf | 2 + 30 files changed, 310 insertions(+) create mode 100644 src/api/CombinatorsSco.gf create mode 100644 src/api/ConstructorsSco.gf create mode 100644 src/api/SymbolicSco.gf create mode 100644 src/api/SyntaxSco.gf create mode 100644 src/api/TrySco.gf create mode 100644 src/scots/AdjectiveSco.gf create mode 100644 src/scots/AdverbSco.gf create mode 100644 src/scots/AllSco.gf create mode 100644 src/scots/CatSco.gf create mode 100644 src/scots/ConjunctionSco.gf create mode 100644 src/scots/ConstructionSco.gf create mode 100644 src/scots/DocumentationSco.gf create mode 100644 src/scots/ExtendSco.gf create mode 100644 src/scots/GrammarSco.gf create mode 100644 src/scots/IdiomSco.gf create mode 100644 src/scots/LangSco.gf create mode 100644 src/scots/LexiconSco.gf create mode 100644 src/scots/NamesSco.gf create mode 100644 src/scots/NounSco.gf create mode 100644 src/scots/NumeralSco.gf create mode 100644 src/scots/ParadigmsSco.gf create mode 100644 src/scots/PhraseSco.gf create mode 100644 src/scots/QuestionSco.gf create mode 100644 src/scots/RelativeSco.gf create mode 100644 src/scots/ResSco.gf create mode 100644 src/scots/SentenceSco.gf create mode 100644 src/scots/StructuralSco.gf create mode 100644 src/scots/SymbolSco.gf create mode 100644 src/scots/VerbSco.gf diff --git a/languages.csv b/languages.csv index bfd38d97..efedbac3 100644 --- a/languages.csv +++ b/languages.csv @@ -47,6 +47,7 @@ Slv,Slovenian,slovenian,,,,,n,n,,n,n Snd,Sindhi,sindhi,,,,,,,,y,n Spa,Spanish,spanish,Romance,,y,,,,y,y,y Sqi,Albanian,albanian,,,,y,n,n,n,y,n +Sco,Scots,scots,,,y,,,,,y,n Swa,Swahili,swahili,Bantu,,,y,n,n,n,n,n Swe,Swedish,swedish,Scand,,y,,,,y,y,y Tam,Tamil,tamil,n,n,n,n,n,n,n,n,n diff --git a/src/api/CombinatorsSco.gf b/src/api/CombinatorsSco.gf new file mode 100644 index 00000000..e5857436 --- /dev/null +++ b/src/api/CombinatorsSco.gf @@ -0,0 +1,15 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsSco = Combinators - [ appCN, appCNc ] with + (Cat = CatSco), + (Structural = StructuralSco), + (Noun = NounSco), + (Constructors = ConstructorsSco) ** + { + oper + appCN : CN -> NP -> NP + = \cn,x -> mkNP the_Art (PossNP cn x) ; + appCNc : CN -> [NP] -> NP + = \cn,xs -> let np : NP = mkNP and_Conj xs + in mkNP the_Art (PossNP cn np) ; + } diff --git a/src/api/ConstructorsSco.gf b/src/api/ConstructorsSco.gf new file mode 100644 index 00000000..7f7310d5 --- /dev/null +++ b/src/api/ConstructorsSco.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource ConstructorsSco = Constructors with (Grammar = GrammarSco) ; diff --git a/src/api/SymbolicSco.gf b/src/api/SymbolicSco.gf new file mode 100644 index 00000000..4a001888 --- /dev/null +++ b/src/api/SymbolicSco.gf @@ -0,0 +1,5 @@ +--# -path=.:../english:../common:../abstract:../prelude + +resource SymbolicSco = Symbolic with + (Symbol = SymbolSco), + (Grammar = GrammarSco) ; diff --git a/src/api/SyntaxSco.gf b/src/api/SyntaxSco.gf new file mode 100644 index 00000000..544498f6 --- /dev/null +++ b/src/api/SyntaxSco.gf @@ -0,0 +1,5 @@ +--# -path=.:alltenses:prelude + +instance SyntaxSco of Syntax = + ConstructorsSco, CatSco, StructuralSco, CombinatorsSco ; + diff --git a/src/api/TrySco.gf b/src/api/TrySco.gf new file mode 100644 index 00000000..ece8cc00 --- /dev/null +++ b/src/api/TrySco.gf @@ -0,0 +1,22 @@ +--# -path=.:../english:../common:../abstract:../prelude + +resource TrySco = SyntaxSco-[mkAdN], LexiconSco, ParadigmsSco - [mkAdv,mkAdN,mkOrd,mkQuant,mkVoc] ** + open (P = ParadigmsEng) in { + +oper + + mkAdv = overload SyntaxSco { + mkAdv : Str -> Adv = P.mkAdv ; + } ; + + mkAdN = overload { + mkAdN : CAdv -> AdN = SyntaxSco.mkAdN ; + mkAdN : Str -> AdN = P.mkAdN ; + } ; + + mkOrd = overload SyntaxSco { + mkOrd : Str -> Ord = P.mkOrd ; + } ; + + +} diff --git a/src/scots/AdjectiveSco.gf b/src/scots/AdjectiveSco.gf new file mode 100644 index 00000000..308931f0 --- /dev/null +++ b/src/scots/AdjectiveSco.gf @@ -0,0 +1,2 @@ +concrete AdjectiveSco of Adjective = AdjectiveEng ** { +} diff --git a/src/scots/AdverbSco.gf b/src/scots/AdverbSco.gf new file mode 100644 index 00000000..b189b044 --- /dev/null +++ b/src/scots/AdverbSco.gf @@ -0,0 +1,2 @@ +concrete AdverbSco of Adverb = AdverbEng ** { +} diff --git a/src/scots/AllSco.gf b/src/scots/AllSco.gf new file mode 100644 index 00000000..ff87d024 --- /dev/null +++ b/src/scots/AllSco.gf @@ -0,0 +1,7 @@ +--# -path=.:../abstract:../common:../api + +concrete AllSco of AllScoAbs = + LangSco, + ExtendSco + ** + {} ; diff --git a/src/scots/CatSco.gf b/src/scots/CatSco.gf new file mode 100644 index 00000000..989d7c20 --- /dev/null +++ b/src/scots/CatSco.gf @@ -0,0 +1,2 @@ +concrete CatSco of Cat = CatEng ** { +} diff --git a/src/scots/ConjunctionSco.gf b/src/scots/ConjunctionSco.gf new file mode 100644 index 00000000..c93effa5 --- /dev/null +++ b/src/scots/ConjunctionSco.gf @@ -0,0 +1,2 @@ +concrete ConjunctionSco of Conjunction = ConjunctionEng ** { +} diff --git a/src/scots/ConstructionSco.gf b/src/scots/ConstructionSco.gf new file mode 100644 index 00000000..2c74072d --- /dev/null +++ b/src/scots/ConstructionSco.gf @@ -0,0 +1,2 @@ +concrete ConstructionSco of Construction = ConstructionEng ** { +} diff --git a/src/scots/DocumentationSco.gf b/src/scots/DocumentationSco.gf new file mode 100644 index 00000000..587d67e6 --- /dev/null +++ b/src/scots/DocumentationSco.gf @@ -0,0 +1,3 @@ +--# -path=.:../abstract:../common +concrete DocumentationSco of Documentation = DocumentationEng ** { +} diff --git a/src/scots/ExtendSco.gf b/src/scots/ExtendSco.gf new file mode 100644 index 00000000..f14d4508 --- /dev/null +++ b/src/scots/ExtendSco.gf @@ -0,0 +1,4 @@ +--# -path=.:../common:../abstract + +concrete ExtendSco of Extend = ExtendEng ** { +} diff --git a/src/scots/GrammarSco.gf b/src/scots/GrammarSco.gf new file mode 100644 index 00000000..f7a1fd7a --- /dev/null +++ b/src/scots/GrammarSco.gf @@ -0,0 +1,28 @@ +--# -path=.:../abstract:../common:prelude + +concrete GrammarSco of Grammar = + NounSco, + VerbSco, + AdjectiveSco, + AdverbSco, + NumeralSco, + SentenceSco, + QuestionSco, + RelativeSco, + ConjunctionSco, + PhraseSco, + TextX - [Pol,PPos,PNeg,SC,CAdv], + StructuralSco, + IdiomSco, + TenseX - [Pol,PPos,PNeg,SC,CAdv], + NamesSco + ** open ResSco, Prelude in { + +flags startcat = Phr ; unlexer = text ; lexer = text ; + +lin + PPos = {s = [] ; p = CPos} ; + PNeg = {s = [] ; p = CNeg True} ; -- contracted: don't + + +} ; diff --git a/src/scots/IdiomSco.gf b/src/scots/IdiomSco.gf new file mode 100644 index 00000000..3fc95353 --- /dev/null +++ b/src/scots/IdiomSco.gf @@ -0,0 +1,2 @@ +concrete IdiomSco of Idiom = IdiomEng ** { +} diff --git a/src/scots/LangSco.gf b/src/scots/LangSco.gf new file mode 100644 index 00000000..84940c22 --- /dev/null +++ b/src/scots/LangSco.gf @@ -0,0 +1,10 @@ +--# -path=.:../abstract:../common:../api:../prelude + +concrete LangSco of Lang = + GrammarSco, + LexiconSco + ,ConstructionSco + ,DocumentationSco --# notpresent + ** { + +} ; diff --git a/src/scots/LexiconSco.gf b/src/scots/LexiconSco.gf new file mode 100644 index 00000000..54967d39 --- /dev/null +++ b/src/scots/LexiconSco.gf @@ -0,0 +1,2 @@ +concrete LexiconSco of Lexicon = LexiconEng ** open ParadigmsSco in { +} ; diff --git a/src/scots/NamesSco.gf b/src/scots/NamesSco.gf new file mode 100644 index 00000000..a8da6f00 --- /dev/null +++ b/src/scots/NamesSco.gf @@ -0,0 +1,2 @@ +concrete NamesSco of Names = NamesEng ** { +} diff --git a/src/scots/NounSco.gf b/src/scots/NounSco.gf new file mode 100644 index 00000000..30c8fc50 --- /dev/null +++ b/src/scots/NounSco.gf @@ -0,0 +1,16 @@ +concrete NounSco of Noun = NounEng - [IndefArt] ** open Prelude, ResSco in { + +lin IndefArt = { + s = \\hasCard,n => case of { + => "a" ; + _ => [] + } ; + sp = \\g,hasCard,n => case of { + => table {NCase Gen => "ane's"; _ => "ane" }; + => table {NCase Gen => "anes'"; _ => "anes" } ; + _ => \\c => [] + } ; + isDef = False + } ; + +} diff --git a/src/scots/NumeralSco.gf b/src/scots/NumeralSco.gf new file mode 100644 index 00000000..4e8a325a --- /dev/null +++ b/src/scots/NumeralSco.gf @@ -0,0 +1,156 @@ +concrete NumeralSco of Numeral = CatSco [Numeral,Digits,Decimal] ** open Prelude, ResSco in { + +lincat + Digit = {s : DForm => CardOrd => Case => Str} ; + Sub10 = {s : DForm => CardOrd => Case => Str ; n : Number} ; + Sub100 = {s : CardOrd => Case => Str ; n : Number} ; + Sub1000 = {s : Bool => CardOrd => Case => Str ; n : Number} ; + Sub1000000 = {s : Bool => CardOrd => Case => Str ; n : Number} ; + Sub1000000000 = {s : Bool => CardOrd => Case => Str ; n : Number} ; + Sub1000000000000 = {s : Bool => CardOrd => Case => Str ; n : Number} ; + +lin num x = x ; +lin n2 = let two = mkNum "twa" "twal" "twintie" "saicont" in + {s = \\f,o => case of { + => regGenitiveS "twalt" ; + _ => two.s ! f ! o + } + } ; + +lin n3 = mkNum "three" "thirteen" "thirty" "third" ; +lin n4 = mkNum "fower" "fourteen" "fourtie" "fourth" ; +lin n5 = mkNum "five" "fifteen" "fifty" "fifth" ; +lin n6 = regNum "sax" ; +lin n7 = regNum "seiven" ; +lin n8 = mkNum "echt" "echteen" "echtie" "echt" ; +lin n9 = mkNum "nine" "nineteen" "ninetie" "nint" ; + +lin pot01 = mkNum "ane" "eleivin" "ten" "first" ** {n = Sg} ; +lin pot0 d = d ** {n = Pl} ; +lin pot0as1 n = {s = n.s ! unit} ** {n = n.n} ; + +lin pot110 = regCardOrd "ten" ** {n = Pl} ; +lin pot111 = regCardOrd "eleven" ** {n = Pl} ; +lin pot1to19 d = {s = d.s ! teen} ** {n = Pl} ; +lin pot1 d = {s = d.s ! ten} ** {n = Pl} ; +lin pot1plus d e = { + s = \\o,c => d.s ! ten ! NCard ! Nom ++ BIND ++ "-" ++ BIND ++ e.s ! unit ! o ! c ; n = Pl} ; +lin pot1as2 n = {s = \\_ => n.s; n=n.n} ; + +lin pot21 = { + s = \\d,o,c => case d of {True => []; False => "a"} ++ + (regCardOrd "hunner").s ! o ! c; + n = Pl + } ; +lin pot2 d = {s = \\_,o,c => d.s ! unit ! NCard ! Nom ++ mkCard o "hundred" ! c} ** {n = Pl} ; +lin pot2plus d e = { + s = \\_,o,c => d.s ! unit ! NCard ! Nom ++ "hundred" ++ "and" ++ e.s ! o ! c ; n = Pl} ; +lin pot2as3 n = n ; + +lin pot31 = { + s = \\d,o,c => case d of {True => []; False => "a"} ++ + (regCardOrd "thousand").s ! o ! c; + n = Pl + } ; +lin pot3 n = { + s = \\d,o,c => n.s ! d ! NCard ! Nom ++ mkCard o "thoosand" ! c ; n = Pl} ; +lin pot3plus n m = { + s = \\d,o,c => n.s ! d ! NCard ! Nom ++ "thoosand" ++ m.s ! False ! o ! c; n = Pl} ; +lin pot3as4 n = n ; +lin pot3decimal f = { + s = \\d,o,c => f.s ! NCard ! Nom ++ mkCard o "thoosand" ! c ; n = Pl} ; + +lin pot41 = { + s = \\d,o,c => case d of {True => []; False => "a"} ++ + (regCardOrd "million").s ! o ! c; + n = Pl + } ; +lin pot4 n = { + s = \\d,o,c => n.s ! d ! NCard ! Nom ++ pot41.s ! True ! o ! c ; + n = Pl + } ; +lin pot4plus n1 n2 = { + s = \\d,o,c => n1.s ! d ! NCard ! Nom ++ pot41.s ! True ! NCard ! Nom ++ "and" ++ n2.s ! True ! o ! c; + n = Pl + } ; +lin pot4as5 n = n ; +lin pot4decimal f = { + s = \\d,o,c => f.s ! NCard ! Nom ++ pot41.s ! True ! o ! c ; n = Pl} ; + +lin pot51 = { + s = \\d,o,c => case d of {True => []; False => "a"} ++ + (regCardOrd "billion").s ! o ! c; + n = Pl + } ; +lin pot5 n = { + s = \\d,o,c => n.s ! d ! NCard ! Nom ++ pot51.s ! True ! o ! c ; + n = Pl + } ; +lin pot5plus n1 n2 = { + s = \\d,o,c => n1.s ! d ! NCard ! Nom ++ pot51.s ! True ! NCard ! Nom ++ "and" ++ n2.s ! True ! o ! c; + n = Pl + } ; +lin pot5decimal f = { + s = \\d,o,c => f.s ! NCard ! Nom ++ pot51.s ! True ! o ! c ; n = Pl} ; + +-- numerals as sequences of digits + + lincat + Dig = TDigit ; + + lin + IDig d = d ** {tail = T1} ; + + IIDig d i = { + s = \\o,c => d.s ! NCard ! Nom ++ commaIf i.tail ++ i.s ! o ! c ; + n = Pl ; + tail = inc i.tail + } ; + + D_0 = mkDig "0" ; + D_1 = mk3Dig "1" "1st" Sg ; + D_2 = mk2Dig "2" "2nd" ; + D_3 = mk2Dig "3" "3rd" ; + D_4 = mkDig "4" ; + D_5 = mkDig "5" ; + D_6 = mkDig "6" ; + D_7 = mkDig "7" ; + D_8 = mkDig "8" ; + D_9 = mkDig "9" ; + +lin PosDecimal d = d ** {hasDot=False} ; + NegDecimal d = {s=\\o,c=>"-" ++ BIND ++ d.s ! o ! c; hasDot=False; n = Pl} ; + IFrac d i = { + s=\\o,c=>d.s ! NCard ! Nom ++ + if_then_Str d.hasDot BIND (BIND++"."++BIND) ++ + i.s ! o ! c ; + hasDot=True; + n = Pl + } ; + + oper + commaIf : DTail -> Str = \t -> case t of { + T3 => BIND ++ "," ++ BIND ; + _ => BIND + } ; + + inc : DTail -> DTail = \t -> case t of { + T1 => T2 ; + T2 => T3 ; + T3 => T1 + } ; + + mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; + mkDig : Str -> TDigit = \c -> mk2Dig c (c + "th") ; + + mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> { + s = table {NCard => regGenitiveS c ; NOrd => regGenitiveS o} ; + n = n + } ; + + TDigit = { + n : Number ; + s : CardOrd => Case => Str + } ; + +} diff --git a/src/scots/ParadigmsSco.gf b/src/scots/ParadigmsSco.gf new file mode 100644 index 00000000..1a468757 --- /dev/null +++ b/src/scots/ParadigmsSco.gf @@ -0,0 +1,2 @@ +resource ParadigmsSco = ParadigmsEng ** { +} ; diff --git a/src/scots/PhraseSco.gf b/src/scots/PhraseSco.gf new file mode 100644 index 00000000..990b2535 --- /dev/null +++ b/src/scots/PhraseSco.gf @@ -0,0 +1,2 @@ +concrete PhraseSco of Phrase = PhraseEng ** { +} diff --git a/src/scots/QuestionSco.gf b/src/scots/QuestionSco.gf new file mode 100644 index 00000000..e936f175 --- /dev/null +++ b/src/scots/QuestionSco.gf @@ -0,0 +1,2 @@ +concrete QuestionSco of Question = QuestionEng ** { +} diff --git a/src/scots/RelativeSco.gf b/src/scots/RelativeSco.gf new file mode 100644 index 00000000..b17ae3c7 --- /dev/null +++ b/src/scots/RelativeSco.gf @@ -0,0 +1,2 @@ +concrete RelativeSco of Relative = RelativeEng ** { +} diff --git a/src/scots/ResSco.gf b/src/scots/ResSco.gf new file mode 100644 index 00000000..8c2241b8 --- /dev/null +++ b/src/scots/ResSco.gf @@ -0,0 +1,2 @@ +resource ResSco = ResEng ** { +} diff --git a/src/scots/SentenceSco.gf b/src/scots/SentenceSco.gf new file mode 100644 index 00000000..2dc98c1d --- /dev/null +++ b/src/scots/SentenceSco.gf @@ -0,0 +1,3 @@ +concrete SentenceSco of Sentence = SentenceEng ** { +} + diff --git a/src/scots/StructuralSco.gf b/src/scots/StructuralSco.gf new file mode 100644 index 00000000..f07db777 --- /dev/null +++ b/src/scots/StructuralSco.gf @@ -0,0 +1,2 @@ +concrete StructuralSco of Structural = StructuralEng ** { +} diff --git a/src/scots/SymbolSco.gf b/src/scots/SymbolSco.gf new file mode 100644 index 00000000..68063362 --- /dev/null +++ b/src/scots/SymbolSco.gf @@ -0,0 +1,2 @@ +concrete SymbolSco of Symbol = SymbolEng ** { +} diff --git a/src/scots/VerbSco.gf b/src/scots/VerbSco.gf new file mode 100644 index 00000000..af1d28f6 --- /dev/null +++ b/src/scots/VerbSco.gf @@ -0,0 +1,2 @@ +concrete VerbSco of Verb = VerbEng ** { +} From 5b588daf850cae8fd7540d286dff2a3fafe8277f Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 7 Sep 2025 08:59:56 +0200 Subject: [PATCH 045/169] forgot AllScoAbs --- src/scots/AllScoAbs.gf | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/scots/AllScoAbs.gf diff --git a/src/scots/AllScoAbs.gf b/src/scots/AllScoAbs.gf new file mode 100644 index 00000000..b2d8fd84 --- /dev/null +++ b/src/scots/AllScoAbs.gf @@ -0,0 +1,6 @@ +--# -path=.:../abstract:../common:prelude + +abstract AllScoAbs = + Lang, + Extend + ** {} ; From cd581dc6ac293c3e16ecd9f94489271b46ab02a9 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 7 Sep 2025 11:55:39 +0200 Subject: [PATCH 046/169] fix -ing -> -in --- src/scots/LexiconSco.gf | 379 +++++++++++++++++++++++++++++++++++++- src/scots/ParadigmsSco.gf | 88 ++++++++- 2 files changed, 465 insertions(+), 2 deletions(-) diff --git a/src/scots/LexiconSco.gf b/src/scots/LexiconSco.gf index 54967d39..4a419bff 100644 --- a/src/scots/LexiconSco.gf +++ b/src/scots/LexiconSco.gf @@ -1,2 +1,379 @@ -concrete LexiconSco of Lexicon = LexiconEng ** open ParadigmsSco in { +--# -path=.:prelude + +concrete LexiconSco of Lexicon = CatSco ** + open ParadigmsSco, Prelude in { + +flags + optimize=values ; + +lin + airplane_N = regN "airplane" ; + alas_Interj = ss "alas" ; + answer_V2S = mkV2S (mkV "answer" "answered") toP ; + apartment_N = regN "apartment" ; + apple_N = regN "apple" ; + art_N = regN "art" ; + ask_V2Q = mkV2Q (regV "ask") noPrep ; + baby_N = regN "baby" ; + bad_A = mkADeg "bad" "worse" "worst" "badly" ; + bank_N = regN "bank" ; + beautiful_A = compoundADeg (regA "beautiful") ; + become_VA = mkVA (irregV "become" "became" "become") ; + beer_N = regN "beer" ; + beg_V2V = mkV2V (regDuplV "beg") noPrep toP ; + -- prevent_V2V = ingV2V (mkV "prevent") noPrep (mkPrep "from") ; + -- make_V2V = mkV2V make_V noPrep noPrep ; + big_A = duplADeg "big" ; + bike_N = regN "bike" ; + bird_N = regN "bird" ; + black_A = regADeg "black" ; + blue_A = regADeg "blue" ; + boat_N = regN "boat" ; + book_N = regN "book" ; + boot_N = regN "boot" ; + boss_N = mkN human (regN "boss") ; + boy_N = mkN masculine (regN "boy") ; + bread_N = regN "bread" ; + break_V2 = dirV2 (irregV "break" "broke" "broken") ; + broad_A = regADeg "broad" ; + brother_N2 = mkN2 (mkN masculine (mkN "brother")) (mkPrep "of") ; + brown_A = regADeg "brown" ; + butter_N = regN "butter" ; + buy_V2 = dirV2 (irregV "buy" "bought" "bought") ; + camera_N = regN "camera" ; + cap_N = regN "cap" ; + car_N = regN "car" ; + carpet_N = regN "carpet" ; + cat_N = regN "cat" ; + ceiling_N = regN "ceiling" ; + chair_N = regN "chair" ; + cheese_N = regN "cheese" ; + child_N = mk2N "child" "children" ; + church_N = regN "church" ; + city_N = regN "city" ; + clean_A = regADeg "clean" ; + clever_A = mkA "clever" "cleverer" ; + close_V2 = dirV2 (regV "close") ; + coat_N = regN "coat" ; + cold_A = regADeg "cold" ; + come_V = (irregV "come" "came" "come") ; + computer_N = regN "computer" ; + country_N = regN "country" ; + cousin_N = mkN human (regN "cousin") ; + cow_N = regN "cow" ; + die_V = (regV "die") ; + dirty_A = regADeg "dirty" ; + distance_N3 = mkN3 (regN "distance") fromP toP ; + doctor_N = mkN human (regN "doctor") ; + dog_N = regN "dog" ; + door_N = regN "door" ; + drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ; + easy_A2V = mkA2V (regA "easy") forP ; + eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ; + empty_A = regADeg "empty" ; + enemy_N = regN "enemy" ; + factory_N = regN "factory" ; + father_N2 = mkN2 (mkN masculine (mkN "father")) (mkPrep "of") ; + fear_VS = mkVS (regV "fear") ; + find_V2 = dirV2 (irregV "find" "found" "found") ; + fish_N = mk2N "fish" "fish" ; + floor_N = regN "floor" ; + forget_V2 = dirV2 (irregDuplV "forget" "forgot" "forgotten") ; + fridge_N = regN "fridge" ; + friend_N = mkN human (regN "friend") ; + fruit_N = mkN "fruit" "fruit" ; --- was: fruit, fruits before 7/12/2012 + fun_AV = mkAV (regA "fun") ; + garden_N = regN "garden" ; + girl_N = mkN feminine (regN "girl") ; + glove_N = regN "glove" ; + gold_N = regN "gold" ; + good_A = mkADeg "good" "better" "best" "well" ; + go_V = mk5V "go" "goes" "went" "gone" "going" ; + green_A = regADeg "green" ; + harbour_N = regN "harbour" ; + hate_V2 = dirV2 (regV "hate") ; + hat_N = regN "hat" ; + hear_V2 = dirV2 (irregV "hear" "heard" "heard") ; + hill_N = regN "hill" ; + hope_VS = mkVS (regV "hope") ; + horse_N = regN "horse" ; + hot_A = duplADeg "hot" ; + house_N = regN "house" ; + important_A = compoundADeg (regA "important") ; + industry_N = regN "industry" ; + iron_N = regN "iron" ; + king_N = mkN masculine (regN "king") ; + know_V2 = dirV2 (irregV "know" "knew" "known") ; + know_VQ = mkVQ (irregV "know" "knew" "known") ; + know_VS = mkVS (irregV "know" "knew" "known") ; + lake_N = regN "lake" ; + lamp_N = regN "lamp" ; + learn_V2 = dirV2 (regV "learn") ; + leather_N = regN "leather" ; + leave_V2 = dirV2 (irregV "leave" "left" "left") ; + like_V2 = dirV2 (regV "like") ; + listen_V2 = prepV2 (mkV "listen" "listened") toP ; + live_V = (regV "live") ; + long_A = regADeg "long" ; + lose_V2 = dirV2 (irregV "lose" "lost" "lost") ; + love_N = regN "love" ; + love_V2 = dirV2 (regV "love") ; + man_N = mkN masculine (mk2N "man" "men") ; + married_A2 = mkA2 (regA "married") toP ; + meat_N = regN "meat" ; + milk_N = regN "milk" ; + moon_N = regN "moon" ; + mother_N2 = mkN2 (mkN feminine (mkN "mother")) (mkPrep "of") ; + mountain_N = regN "mountain" ; + music_N = regN "music" ; + narrow_A = regADeg "narrow" ; + new_A = regADeg "new" ; + newspaper_N = regN "newspaper" ; + oil_N = regN "oil" ; + old_A = regADeg "old" ; + open_V2 = dirV2 (mkV "open" "opens" "opened" "opened" "opening") ; + paint_V2A = mkV2A (regV "paint") ; + paper_N = regN "paper" ; + paris_PN = mkPN (mkN nonhuman (mkN "Paris")) ; + peace_N = regN "peace" ; + pen_N = regN "pen" ; + planet_N = regN "planet" ; + plastic_N = regN "plastic" ; + play_V2 = dirV2 (regV "play") ; + policeman_N = mkN masculine (mkN "policeman" "policemen") ; + priest_N = mkN human (regN "priest") ; + probable_AS = mkAS (regA "probable") ; + queen_N = mkN feminine (regN "queen") ; + radio_N = regN "radio" ; + rain_V0 = mkV0 (regV "rain") ; + read_V2 = dirV2 (irregV "read" "read" "read") ; + red_A = duplADeg "red" ; + religion_N = regN "religion" ; + restaurant_N = regN "restaurant" ; + river_N = regN "river" ; + rock_N = regN "rock" ; + roof_N = regN "roof" ; + rubber_N = regN "rubber" ; + run_V = (irregDuplV "run" "ran" "run") ; + say_VS = mkVS (irregV "say" "said" "said") ; + school_N = regN "school" ; + science_N = regN "science" ; + sea_N = regN "sea" ; + seek_V2 = dirV2 (irregV "seek" "sought" "sought") ; + see_V2 = dirV2 (irregV "see" "saw" "seen") ; + sell_V3 = dirV3 (irregV "sell" "sold" "sold") toP ; + send_V3 = dirV3 (irregV "send" "sent" "sent") toP ; + sheep_N = mk2N "sheep" "sheep" ; + ship_N = regN "ship" ; + shirt_N = regN "shirt" ; + shoe_N = regN "shoe" ; + shop_N = regN "shop" ; + short_A = regADeg "short" ; + silver_N = regN "silver" ; + sister_N = mkN feminine (mkN "sister") ; + sleep_V = (irregV "sleep" "slept" "slept") ; + small_A = regADeg "small" ; + snake_N = regN "snake" ; + sock_N = regN "sock" ; + speak_V2 = dirV2 (irregV "speak" "spoke" "spoken") ; + star_N = regN "star" ; + steel_N = regN "steel" ; + stone_N = regN "stone" ; + stove_N = regN "stove" ; + student_N = mkN human (regN "student") ; + stupid_A = mkA "stupid" ; + sun_N = regN "sun" ; + switch8off_V2 = dirV2 (partV (regV "switch") "off") ; + switch8on_V2 = dirV2 (partV (regV "switch") "on") ; + table_N = regN "table" ; + talk_V3 = mkV3 (regV "talk") toP aboutP ; + teacher_N = mkN human (regN "teacher") ; + teach_V2 = dirV2 (irregV "teach" "taught" "taught") ; + television_N = regN "television" ; + thick_A = regADeg "thick" ; + thin_A = duplADeg "thin" ; + train_N = regN "train" ; + travel_V = (regDuplV "travel") ; + tree_N = regN "tree" ; + ---- trousers_N = regN "trousers" ; + ugly_A = mkA "ugly" ; + understand_V2 = dirV2 (irregV "understand" "understood" "understood") ; + university_N = regN "university" ; + village_N = regN "village" ; + wait_V2 = prepV2 (regV "wait") forP ; + walk_V = (regV "walk") ; + warm_A = regADeg "warm" ; + war_N = regN "war" ; + watch_V2 = dirV2 (regV "watch") ; + water_N = regN "water" ; + white_A = mkA "white" ; + window_N = regN "window" ; + wine_N = regN "wine" ; + win_V2 = dirV2 (irregDuplV "win" "won" "won") ; + woman_N = mkN feminine (mk2N "woman" "women") ; + wonder_VQ = mkVQ (mkV "wonder" "wondered") ; + wood_N = regN "wood" ; + write_V2 = dirV2 (irregV "write" "wrote" "written") ; + yellow_A = mkA "yellow" ; + young_A = regADeg "young" ; + + do_V2 = dirV2 (mk5V "do" "does" "did" "done" "doing") ; + now_Adv = mkAdv "now" ; + already_Adv = mkAdv "already" ; + song_N = regN "song" ; + add_V3 = dirV3 (regV "add") toP ; + number_N = regN "number" ; + put_V2 = prepV2 (irregDuplV "put" "put" "put") noPrep ; + stop_V = regDuplV "stop" ; + jump_V = regV "jump" ; + + left_Ord = mkOrd "left" ; + right_Ord = mkOrd "right" ; + far_Adv = mkAdv "far" ; + correct_A = (regA "correct") ; + dry_A = regA "dry" ; + dull_A = regA "dull" ; + full_A = regA "full" ; + heavy_A = regA "heavy" ; + near_A = regA "near" ; + rotten_A = (regA "rotten") ; + round_A = regA "round" ; + sharp_A = regA "sharp" ; + smooth_A = regA "smooth" ; + straight_A = regA "straight" ; + wet_A = regA "wet" ; ---- + wide_A = regA "wide" ; + animal_N = regN "animal" ; + ashes_N = regN "ash" ; -- FIXME: plural only? + back_N = regN "back" ; + bark_N = regN "bark" ; + belly_N = regN "belly" ; + blood_N = regN "blood" ; + bone_N = regN "bone" ; + breast_N = regN "breast" ; + cloud_N = regN "cloud" ; + day_N = regN "day" ; + dust_N = regN "dust" ; + ear_N = regN "ear" ; + earth_N = regN "earth" ; + egg_N = regN "egg" ; + eye_N = regN "eye" ; + fat_N = regN "fat" ; + feather_N = regN "feather" ; + fingernail_N = regN "fingernail" ; + fire_N = regN "fire" ; + flower_N = regN "flower" ; + fog_N = regN "fog" ; + foot_N = mk2N "foot" "feet" ; + forest_N = regN "forest" ; + grass_N = regN "grass" ; + guts_N = regN "gut" ; -- FIXME: no singular + hair_N = regN "hair" ; + hand_N = regN "hand" ; + head_N = regN "head" ; + heart_N = regN "heart" ; + horn_N = regN "horn" ; + husband_N = mkN masculine (regN "husband") ; + ice_N = regN "ice" ; + knee_N = regN "knee" ; + leaf_N = mk2N "leaf" "leaves" ; + leg_N = regN "leg" ; + liver_N = regN "liver" ; + louse_N = mk2N "louse" "lice" ; + mouth_N = regN "mouth" ; + name_N = regN "name" ; + neck_N = regN "neck" ; + night_N = regN "night" ; + nose_N = regN "nose" ; + person_N = mkN human (regN "person") ; + rain_N = regN "rain" ; + road_N = regN "road" ; + root_N = regN "root" ; + rope_N = regN "rope" ; + salt_N = regN "salt" ; + sand_N = regN "sand" ; + seed_N = regN "seed" ; + skin_N = regN "skin" ; + sky_N = regN "sky" ; + smoke_N = regN "smoke" ; + snow_N = regN "snow" ; + stick_N = regN "stick" ; + tail_N = regN "tail" ; + tongue_N = regN "tongue" ; + tooth_N = mk2N "tooth" "teeth" ; + wife_N = mkN feminine (mk2N "wife" "wives") ; + wind_N = regN "wind" ; + wing_N = regN "wing" ; + worm_N = regN "worm" ; + year_N = regN "year" ; +-- blow_V = IrregEng.blow_V ; + breathe_V = dirV2 (regV "breathe") ; +-- burn_V = IrregEng.burn_V ; +-- dig_V = IrregEng.dig_V ; +-- fall_V = IrregEng.fall_V ; + float_V = regV "float" ; + flow_V = regV "flow" ; +-- fly_V = IrregEng.fly_V ; +-- freeze_V = IrregEng.freeze_V ; +-- give_V3 = mkV3 give_V noPrep noPrep ; + laugh_V = regV "laugh" ; +-- lie_V = IrregEng.lie_V ; + play_V = regV "play" ; +-- sew_V = IrregEng.sew_V ; +-- sing_V = IrregEng.sing_V ; +-- sit_V = IrregEng.sit_V ; + smell_V = regV "smell" ; +-- spit_V = IrregEng.spit_V ; +-- stand_V = IrregEng.stand_V ; +-- swell_V = IrregEng.swell_V ; +-- swim_V = IrregEng.swim_V ; +-- think_V = IrregEng.think_V ; + turn_V = regV "turn" ; + vomit_V = mkV "vomit" "vomited" ; + +-- bite_V2 = dirV2 IrregEng.bite_V ; + count_V2 = dirV2 (regV "count") ; +-- cut_V2 = dirV2 IrregEng.cut_V ; + fear_V2 = dirV2 (regV "fear") ; +-- fight_V2 = dirV2 fight_V ; +-- hit_V2 = dirV2 hit_V ; +-- hold_V2 = dirV2 hold_V ; + hunt_V2 = dirV2 (regV "hunt") ; + kill_V2 = dirV2 (regV "kill") ; + pull_V2 = dirV2 (regV "pull") ; + push_V2 = dirV2 (regV "push") ; + rub_V2 = dirV2 (regDuplV "rub") ; + scratch_V2 = dirV2 (regV "scratch") ; +-- split_V2 = dirV2 split_V ; + squeeze_V2 = dirV2 (regV "squeeze") ; + stab_V2 = dirV2 (regDuplV "stab") ; + suck_V2 = dirV2 (regV "suck") ; +-- throw_V2 = dirV2 throw_V ; + tie_V2 = dirV2 (regV "tie") ; + wash_V2 = dirV2 (regV "wash") ; + wipe_V2 = dirV2 (regV "wipe") ; + +-- other_A = regA "other" ; + + grammar_N = regN "grammar" ; + language_N = regN "language" ; + rule_N = regN "rule" ; + +-- added 4/6/2007 + john_PN = mkPN (mkN masculine (mkN "John")) ; + question_N = regN "question" ; + ready_A = regA "ready" ; + reason_N = regN "reason" ; + today_Adv = mkAdv "today" ; + uncertain_A = regA "uncertain" ; + +oper + aboutP = mkPrep "about" ; + atP = mkPrep "at" ; + forP = mkPrep "for" ; + fromP = mkPrep "from" ; + inP = mkPrep "in" ; + onP = mkPrep "on" ; + toP = mkPrep "to" ; + } ; diff --git a/src/scots/ParadigmsSco.gf b/src/scots/ParadigmsSco.gf index 1a468757..59a9c889 100644 --- a/src/scots/ParadigmsSco.gf +++ b/src/scots/ParadigmsSco.gf @@ -1,2 +1,88 @@ -resource ParadigmsSco = ParadigmsEng ** { +resource ParadigmsSco = ParadigmsEng - [regV, reg2V, regDuplV, irregV, irreg4V, irregDuplV, mkV, mkV2, mkV3, mkV2V, mkV2Q] ** open Prelude, ResSco, CatSco in { + +oper + regV cry = + let + cries = (regN cry).s ! Pl ! Nom ; -- ! + cried : Str = case cries of { + _ + "es" => init cries + "d" ; + _ + "ers" => init cries + "ed" ; + _ => duplFinal cry + "ed" + } ; + cryin : Str = case cry of { + _ + "ee" => cry + "in" ; + d + "ie" => d + "yin" ; + us + "e" => us + "in" ; + ent + "er" => ent + "erin" ; + _ => duplFinal cry + "in" + } + in mk5V cry cries cried cried cryin ; + + reg2V fit fitted = + let fitt = Predef.tk 2 fitted ; + in + if_then_else V (pbool2bool (Predef.eqStr (last fit) (last fitt))) + (mk5V fit (fit + "s") (fitt + "ed") (fitt + "ed") (fitt + "in")) + (regV fit) ; + + regDuplV fit = + case last fit of { + ("a" | "e" | "i" | "o" | "u" | "y") => + Predef.error (["final duplication makes no sense for"] ++ fit) ; + t => + let fitt = fit + t in + mk5V fit (fit + "s") (fitt + "ed") (fitt + "ed") (fitt + "in") + } ; + + irregV x y z = let reg = (regV x).s in + mk5V x (reg ! VPres) y z (reg ! VPresPart) ** {s1 = []} ; + + irreg4V x y z w = let reg = (regV x).s in + mk5V x (reg ! VPres) y z w ** {s1 = []} ; + + irregDuplV fit y z = + let + fitting = (regDuplV fit).s ! VPresPart + in + mk5V fit (fit + "s") y z fitting ; + + mkV = overload { + mkV : (cry : Str) -> V = regV ; + mkV : (stop, stopped : Str) -> V = reg2V ; + mkV : (drink, drank, drunk : Str) -> V = irregV ; + mkV : (run, ran, run, running : Str) -> V = irreg4V ; + mkV : (go, goes, went, gone, going : Str) -> V = mk5V ; + mkV : Str -> V -> V = prefixV + }; + + mkV2 = overload { + mkV2 : V -> V2 = dirV2 ; + mkV2 : Str -> V2 = \s -> dirV2 (regV s) ; + mkV2 : V -> Prep -> V2 = prepV2 ; + mkV2 : V -> Str -> V2 = \v,p -> prepV2 v (mkPrep p) ; + mkV2 : Str -> Prep -> V2 = \v,p -> prepV2 (regV v) p ; + mkV2 : Str -> Str -> V2 = \v,p -> prepV2 (regV v) (mkPrep p) + }; + + mkV3 = overload { + mkV3 : V -> Prep -> Prep -> V3 = prepPrepV3 ; + mkV3 : V -> Prep -> V3 = dirV3 ; + mkV3 : V -> Str -> V3 = \v,s -> dirV3 v (mkPrep s); + mkV3 : Str -> Str -> V3 = \v,s -> dirV3 (regV v) (mkPrep s); + mkV3 : V -> V3 = dirdirV3 ; + mkV3 : Str -> V3 = \v -> dirdirV3 (regV v) ; + } ; + + mkV2V = overload { + mkV2V : Str -> V2V = \s -> lin V2V (dirV2 (regV s) ** {c3 = [] ; typ = VVAux}) ; + mkV2V : V -> V2V = \v -> lin V2V (dirV2 v ** {c3 = [] ; typ = VVAux}) ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p,t -> lin V2V (prepV2 v p ** {c3 = t.s ; typ = VVAux}) ; + } ; + mkV2Q = overload { + mkV2Q : V -> Prep -> V2Q = \v,p -> lin V2Q (prepV2 v p) ; + mkV2Q : V -> V2Q = \v -> lin V2Q (dirV2 v) ; + mkV2Q : V2 -> V2Q = \v2 -> lin V2Q v2 ; + mkV2Q : Str -> V2Q = \s -> lin V2Q (dirV2 (regV s)) ; + } ; + } ; From 1b57ef7fee6bd90102fe819e01c12acb13b15b7c Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 9 Sep 2025 11:58:17 +0200 Subject: [PATCH 047/169] added lindef for VPSlash --- src/afrikaans/CatAfr.gf | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/afrikaans/CatAfr.gf b/src/afrikaans/CatAfr.gf index 27b5882a..4137129a 100644 --- a/src/afrikaans/CatAfr.gf +++ b/src/afrikaans/CatAfr.gf @@ -89,4 +89,17 @@ concrete CatAfr of Cat = SN = {s : Sex => NPCase => Str; pl : NPCase => Str} ; LN = {s : Adjf => NPCase => Str ; hasArt : Bool ; n : Number} ; +lindef + VPSlash = \s -> { + s = {s = \\_ => s; prefix = ""; aux = VHebben; vtype = VAct} ; + a1 = \\_ => "" ; + n0 = \\_ => "" ; + n2 = \\_ => "" ; + a2 = "" ; + isAux = False ; + inf = <"",False> ; + ext = "" ; + c2 = "" + } ; + } From 7016ce8a32cb14ee698e205d637645af00f40bb0 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 10 Sep 2025 16:38:50 +0200 Subject: [PATCH 048/169] bootstrapped faroese --- src/faroese/AdjectiveFao.gf | 4 + src/faroese/AllFao.gf | 4 + src/faroese/AllFaoAbs.gf | 3 + src/faroese/CatFao.gf | 19 + src/faroese/DocumentationFao.gf | 98 + src/faroese/GrammarFao.gf | 6 + src/faroese/LangFao.gf | 10 + src/faroese/LexiconFao.gf | 2 + src/faroese/MorphoFao.gf | 12180 ++++++++++++++++++++++++++++++ src/faroese/NounFao.gf | 4 + src/faroese/ParadigmsFao.gf | 567 ++ src/faroese/PhraseFao.gf | 11 + src/faroese/ResFao.gf | 131 + 13 files changed, 13039 insertions(+) create mode 100644 src/faroese/AdjectiveFao.gf create mode 100644 src/faroese/AllFao.gf create mode 100644 src/faroese/AllFaoAbs.gf create mode 100644 src/faroese/CatFao.gf create mode 100644 src/faroese/DocumentationFao.gf create mode 100644 src/faroese/GrammarFao.gf create mode 100644 src/faroese/LangFao.gf create mode 100644 src/faroese/LexiconFao.gf create mode 100644 src/faroese/MorphoFao.gf create mode 100644 src/faroese/NounFao.gf create mode 100644 src/faroese/ParadigmsFao.gf create mode 100644 src/faroese/PhraseFao.gf create mode 100644 src/faroese/ResFao.gf diff --git a/src/faroese/AdjectiveFao.gf b/src/faroese/AdjectiveFao.gf new file mode 100644 index 00000000..40d87ff0 --- /dev/null +++ b/src/faroese/AdjectiveFao.gf @@ -0,0 +1,4 @@ +concrete AdjectiveFao of Adjective = CatFao ** { +lin + PositA a = a ; +} diff --git a/src/faroese/AllFao.gf b/src/faroese/AllFao.gf new file mode 100644 index 00000000..d388c338 --- /dev/null +++ b/src/faroese/AllFao.gf @@ -0,0 +1,4 @@ +concrete AllFao of AllFaoAbs = + LangFao + ** + {} ; diff --git a/src/faroese/AllFaoAbs.gf b/src/faroese/AllFaoAbs.gf new file mode 100644 index 00000000..ead6d4f4 --- /dev/null +++ b/src/faroese/AllFaoAbs.gf @@ -0,0 +1,3 @@ +abstract AllFaoAbs = + Lang + ** {} \ No newline at end of file diff --git a/src/faroese/CatFao.gf b/src/faroese/CatFao.gf new file mode 100644 index 00000000..13e0382d --- /dev/null +++ b/src/faroese/CatFao.gf @@ -0,0 +1,19 @@ +concrete CatFao of Cat = CommonX ** open ResFao in { + +lincat N = Noun ; +lincat N2 = Noun ** {c2 : Compl} ; +lincat N3 = Noun ** {c2,c3 : Compl} ; +lincat A = Adj ; +lincat A2 = Adj ** {c2 : Compl} ; +lincat V = Verb ; +lincat VV,VS,VQ,VA = Verb ; +lincat V2 = Verb ** {c2 : Compl} ; +lincat V3,V2A,V2S,V2Q,V2V = Verb ** {c2,c3 : Compl} ; +lincat Prep = Compl ; +lincat CN = CommonNoun ; +lincat AP = AdjPhrase ; +lincat S = {s : Str} ; + +lincat LN,SN,GN,PN = {s : Str} ; + +} diff --git a/src/faroese/DocumentationFao.gf b/src/faroese/DocumentationFao.gf new file mode 100644 index 00000000..052ae2d9 --- /dev/null +++ b/src/faroese/DocumentationFao.gf @@ -0,0 +1,98 @@ +concrete DocumentationFao of Documentation = CatFao ** open + ResFao, Prelude, HTML in { + +lincat + Inflection = {t : Str; s1,s2,s3 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin + InflectionN,InflectionN2,InflectionN3 = \x -> { + t="n" ; + s1="" ; + s2=frameTable ( + tr (intagAttr "th" "rowspan=\"16\"" "s" ++ intagAttr "th" "rowspan=\"8\"" "Indef" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Indef ! Sg ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Indef ! Sg ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Indef ! Sg ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Indef ! Sg ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Indef ! Pl ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Indef ! Pl ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Indef ! Pl ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Indef ! Pl ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"8\"" "Def" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Def ! Sg ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Def ! Sg ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Def ! Sg ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Def ! Sg ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Def ! Pl ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Def ! Pl ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Def ! Pl ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Def ! Pl ! Gen))) ; + s3=[] + } ; +lin + InflectionA,InflectionA2 = \x -> { + t="a" ; + s1="" ; + s2=frameTable ( + tr (intagAttr "th" "rowspan=\"24\"" "s" ++ intagAttr "th" "rowspan=\"8\"" "Masc" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Masc ! Sg ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Masc ! Sg ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Masc ! Sg ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Masc ! Sg ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Masc ! Pl ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Masc ! Pl ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Masc ! Pl ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Masc ! Pl ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"8\"" "Fem" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Fem ! Sg ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Fem ! Sg ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Fem ! Sg ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Fem ! Sg ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Fem ! Pl ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Fem ! Pl ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Fem ! Pl ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Fem ! Pl ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"8\"" "Neutr" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Neutr ! Sg ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Neutr ! Sg ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Neutr ! Sg ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Neutr ! Sg ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Neutr ! Pl ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Neutr ! Pl ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Neutr ! Pl ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Neutr ! Pl ! Gen))) ; + s3=[] + } ; +lin + InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> { + t="v" ; + s1="" ; + s2=frameTable ( + tr (th "Converb" ++ td (x.Converb)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Imperative_Jussive" ++ th "Sg" ++ td (x.Imperative_Jussive ! Sg)) ++ + tr (th "Pl" ++ td (x.Imperative_Jussive ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"8\"" "Indicative" ++ intagAttr "th" "rowspan=\"4\"" "Pres" ++ th "PSg P1" ++ td (x.Indicative ! Pres ! PSg P1)) ++ + tr (th "PSg P2" ++ td (x.Indicative ! Pres ! PSg P2)) ++ + tr (th "PSg P3" ++ td (x.Indicative ! Pres ! PSg P3)) ++ + tr (th "PPl" ++ td (x.Indicative ! Pres ! PPl)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Past" ++ th "PSg P1" ++ td (x.Indicative ! Past ! PSg P1)) ++ + tr (th "PSg P2" ++ td (x.Indicative ! Past ! PSg P2)) ++ + tr (th "PSg P3" ++ td (x.Indicative ! Past ! PSg P3)) ++ + tr (th "PPl" ++ td (x.Indicative ! Past ! PPl)) ++ + tr (th "Nonfinite" ++ td (x.Nonfinite)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Particle" ++ th "Pres" ++ td (x.Particle ! Pres)) ++ + tr (th "Past" ++ td (x.Particle ! Past))) ; + s3=[] + } ; +lin + InflectionAdA,InflectionAdN,InflectionAdV,InflectionAdv = \x -> {t="adv"; s1=""; s2=x.s; s3=""} ; + + InflectionPrep = \x -> {t="prep"; s1=""; s2=x.s; s3=""} ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

Definition:"++t.s++d.s++"

Example:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ; + MkTag i = {s = i.t} ; +} diff --git a/src/faroese/GrammarFao.gf b/src/faroese/GrammarFao.gf new file mode 100644 index 00000000..1cee1fed --- /dev/null +++ b/src/faroese/GrammarFao.gf @@ -0,0 +1,6 @@ +concrete GrammarFao of Grammar = + TenseX, + PhraseFao, + NounFao, + AdjectiveFao ** { +} \ No newline at end of file diff --git a/src/faroese/LangFao.gf b/src/faroese/LangFao.gf new file mode 100644 index 00000000..8579e52b --- /dev/null +++ b/src/faroese/LangFao.gf @@ -0,0 +1,10 @@ +--# -path=.:../abstract +concrete LangFao of Lang = + GrammarFao, + LexiconFao + ,DocumentationFao --# notpresent + ** { + +flags startcat = Phr ; + +} \ No newline at end of file diff --git a/src/faroese/LexiconFao.gf b/src/faroese/LexiconFao.gf new file mode 100644 index 00000000..4d14c39a --- /dev/null +++ b/src/faroese/LexiconFao.gf @@ -0,0 +1,2 @@ +concrete LexiconFao of Lexicon = CatFao ** open ParadigmsFao in { +} \ No newline at end of file diff --git a/src/faroese/MorphoFao.gf b/src/faroese/MorphoFao.gf new file mode 100644 index 00000000..bc52ea07 --- /dev/null +++ b/src/faroese/MorphoFao.gf @@ -0,0 +1,12180 @@ +resource MorphoFao = open CatFao, ResFao, Predef in { + +oper + +mkN001 : Str -> N ; +mkN001 base = + case base of { + base_1+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i" ; + Acc => base_1+"a" ; + Dat => base_1+"a" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"an" ; + Dat => base_1+"anum" ; + Gen => base_1+"ans" + } ; + Pl => table { + Nom => base_1+"arnir" ; + Acc => base_1+"arnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN001" + } ; + +mkN002 : Str -> N ; +mkN002 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ð" ; + Acc => base_1+"ð" ; + Dat => base_1+"num" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN002" + } ; + +mkN003 : Str -> N ; +mkN003 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"ins" + } ; + Pl => table { + Nom => base_1+"arnir" ; + Acc => base_1+"arnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN003" + } ; + +mkN004 : Str -> N ; +mkN004 base = + case base of { + base_1+"a"+base_2@("tn"|"rn"|"rp"|"lv"|"vn"|"ld"|"rk"|"rð"|"rv"|"gn"|?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2 ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"ið" ; + Acc => base_1+"a"+base_2+"ið" ; + Dat => base_1+"a"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ini" ; + Acc => base_1+"ø"+base_2+"ini" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN004" + } ; + +mkN005 : Str -> N ; +mkN005 base = + case base of { + base_1+"a" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a" ; + Acc => base_1+"u" ; + Dat => base_1+"u" ; + Gen => base_1+"u" + } ; + Pl => table { + Nom => base_1+"ur" ; + Acc => base_1+"ur" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"an" ; + Acc => base_1+"una" ; + Dat => base_1+"uni" ; + Gen => base_1+"unnar" + } ; + Pl => table { + Nom => base_1+"urnar" ; + Acc => base_1+"urnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN005" + } ; + +mkN006 : Str -> N ; +mkN006 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"ina" ; + Dat => base_1+"ini" ; + Gen => base_1+"arinnar" + } ; + Pl => table { + Nom => base_1+"arnar" ; + Acc => base_1+"arnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN006" + } ; + +mkN007 : Str -> N ; +mkN007 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"in" ; + Acc => base_1+"ina" ; + Dat => base_1+"ini" ; + Gen => base_1+"arinnar" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN007" + } ; + +mkN008 : Str -> N ; +mkN008 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN008" + } ; + +mkN009 : Str -> N ; +mkN009 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"arins" + } ; + Pl => table { + Nom => base_1+"irnir" ; + Acc => base_1+"irnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN009" + } ; + +mkN010 : Str -> N ; +mkN010 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"arnir" ; + Acc => base_1+"arnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN010" + } ; + +mkN011 : Str -> N ; +mkN011 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+"u"+base_2 ; + Gen => base_1+"a"+base_2 + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"u"+base_2+"in" ; + Acc => base_1+base_2+"ina" ; + Dat => base_1+base_2+"ini" ; + Gen => base_1+"a"+base_2+"innar" + } ; + Pl => table { + Nom => base_1+base_2+"arnar" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN011" + } ; + +mkN012 : Str -> N ; +mkN012 base = + case base of { + base_1+"a" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a" ; + Acc => base_1+"u" ; + Dat => base_1+"u" ; + Gen => base_1+"u" + } ; + Pl => table { + Nom => base_1+"an" ; + Acc => base_1+"una" ; + Dat => base_1+"uni" ; + Gen => base_1+"unnar" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN012" + } ; + +mkN013 : Str -> N ; +mkN013 base = + case base of { + "ær" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => "ær" ; + Acc => "ær" ; + Dat => "ær" ; + Gen => "ær" + } ; + Pl => table { + Nom => "ær" ; + Acc => "ær" ; + Dat => "óm" ; + Gen => "áa" + } + } ; + Def => table { + Sg => table { + Nom => "ærin" ; + Acc => "ærina" ; + Dat => "ærini" ; + Gen => "ærinnar" + } ; + Pl => table { + Nom => "ærnar" ; + Acc => "ærnar" ; + Dat => "ónum" ; + Gen => "áanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN013" + } ; + +mkN014 : Str -> N ; +mkN014 base = + case base of { + base_1+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i" ; + Acc => base_1+"i" ; + Dat => base_1+"i" ; + Gen => base_1+"is" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"isins" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN014" + } ; + +mkN015 : Str -> N ; +mkN015 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"ina" ; + Dat => base_1+"ini" ; + Gen => base_1+"arinnar" + } ; + Pl => table { + Nom => base_1+"irnar" ; + Acc => base_1+"irnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN015" + } ; + +mkN016 : Str -> N ; +mkN016 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"arins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN016" + } ; + +mkN017 : Str -> N ; +mkN017 base = + case base of { + base_1+"a"+base_2@(?+?)+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"urin" ; + Acc => base_1+"a"+base_2+"in" ; + Dat => base_1+"a"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"arnir" ; + Acc => base_1+"a"+base_2+"arnar" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN017" + } ; + +mkN018 : Str -> N ; +mkN018 base = + case base of { + base_1+"ø"+base_2@("v"|"k"|(?+?)) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ir" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"in" ; + Acc => base_1+"ø"+base_2+"ina" ; + Dat => base_1+"ø"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"irnar" ; + Acc => base_1+"a"+base_2+"irnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN018" + } ; + +mkN019 : Str -> N ; +mkN019 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN019" + } ; + +mkN020 : Str -> N ; +mkN020 base = + case base of { + "a"+base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => "a"+base_1 ; + Acc => "a"+base_1 ; + Dat => "a"+base_1+"i" ; + Gen => "a"+base_1+"s" + } ; + Pl => table { + Nom => "ø"+base_1 ; + Acc => "ø"+base_1 ; + Dat => "ø"+base_1+"um" ; + Gen => "a"+base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => "a"+base_1+"ið" ; + Acc => "a"+base_1+"ið" ; + Dat => "a"+base_1+"inum" ; + Gen => "a"+base_1+"sins" + } ; + Pl => table { + Nom => "ø"+base_1+"ini" ; + Acc => "ø"+base_1+"ini" ; + Dat => "ø"+base_1+"unum" ; + Gen => "a"+base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN020" + } ; + +mkN021 : Str -> N ; +mkN021 base = + case base of { + base_1+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i" ; + Acc => base_1+"a" ; + Dat => base_1+"a" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"in" ; + Acc => base_1+"an" ; + Dat => base_1+"anum" ; + Gen => base_1+"ans" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN021" + } ; + +mkN022 : Str -> N ; +mkN022 base = + case base of { + base_1+"æ" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"æ" ; + Acc => base_1+"æ" ; + Dat => base_1+"æi" ; + Gen => base_1+"æs" + } ; + Pl => table { + Nom => base_1+"ø" ; + Acc => base_1+"ø" ; + Dat => base_1+"øum" ; + Gen => base_1+"æa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"æið" ; + Acc => base_1+"æið" ; + Dat => base_1+"æinum" ; + Gen => base_1+"æsins" + } ; + Pl => table { + Nom => base_1+"øini" ; + Acc => base_1+"øini" ; + Dat => base_1+"øunum" ; + Gen => base_1+"æanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN022" + } ; + +mkN023 : Str -> N ; +mkN023 base = + case base of { + "a"+base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => "a"+base_1+"u"+base_2 ; + Acc => "a"+base_1+"u"+base_2 ; + Dat => "a"+base_1+base_2+"i" ; + Gen => "a"+base_1+"u"+base_2+"s" + } ; + Pl => table { + Nom => "a"+base_1+base_2+"ar" ; + Acc => "a"+base_1+base_2+"ar" ; + Dat => "ø"+base_1+base_2+"um" ; + Gen => "a"+base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => "a"+base_1+"u"+base_2+"in" ; + Acc => "a"+base_1+"u"+base_2+"in" ; + Dat => "a"+base_1+base_2+"inum" ; + Gen => "a"+base_1+"u"+base_2+"sins" + } ; + Pl => table { + Nom => "a"+base_1+base_2+"arnir" ; + Acc => "a"+base_1+base_2+"arnar" ; + Dat => "ø"+base_1+base_2+"unum" ; + Gen => "a"+base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN023" + } ; + +mkN024 : Str -> N ; +mkN024 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"u"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"u"+base_2+"in" ; + Acc => base_1+"u"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"u"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN024" + } ; + +mkN025 : Str -> N ; +mkN025 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"n" ; + Acc => base_1+"na" ; + Dat => base_1+"ni" ; + Gen => base_1+"nnar" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN025" + } ; + +mkN026 : Str -> N ; +mkN026 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"ins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN026" + } ; + +mkN027 : Str -> N ; +mkN027 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"num" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN027" + } ; + +mkN028 : Str -> N ; +mkN028 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"ins" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN028" + } ; + +mkN029 : Str -> N ; +mkN029 base = + case base of { + base_1+"kur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"kur" ; + Acc => base_1+"k" ; + Dat => base_1+"ki" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"kar" ; + Acc => base_1+"kar" ; + Dat => base_1+"kum" ; + Gen => base_1+"ka" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"kurin" ; + Acc => base_1+"kin" ; + Dat => base_1+"kinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"karnir" ; + Acc => base_1+"karnar" ; + Dat => base_1+"kunum" ; + Gen => base_1+"kanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN029" + } ; + +mkN030 : Str -> N ; +mkN030 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"u"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"u"+base_2+"in" ; + Acc => base_1+"u"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"u"+base_2+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN030" + } ; + +mkN031 : Str -> N ; +mkN031 base = + case base of { + base_1+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i" ; + Acc => base_1+"i" ; + Dat => base_1+"i" ; + Gen => base_1+"is" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"isins" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN031" + } ; + +mkN032 : Str -> N ; +mkN032 base = + case base of { + base_1+"aður" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"aður" ; + Acc => base_1+"ann" ; + Dat => base_1+"anni" ; + Gen => base_1+"ans" + } ; + Pl => table { + Nom => base_1+"enn" ; + Acc => base_1+"enn" ; + Dat => base_1+"onnum" ; + Gen => base_1+"anna" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"aðurin" ; + Acc => base_1+"annin" ; + Dat => base_1+"annum" ; + Gen => base_1+"ansins" + } ; + Pl => table { + Nom => base_1+"enninir" ; + Acc => base_1+"enninar" ; + Dat => base_1+"onnunum" ; + Gen => base_1+"annanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN032" + } ; + +mkN033 : Str -> N ; +mkN033 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1+"ur" ; + Dat => base_1+"um" ; + Gen => base_1+"na" + } ; + Pl => table { + Nom => base_1+"uni" ; + Acc => base_1+"uni" ; + Dat => base_1+"unum" ; + Gen => base_1+"nanna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN033" + } ; + +mkN034 : Str -> N ; +mkN034 base = + case base of { + base_1+"æ"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"æ"+base_2 ; + Acc => base_1+"æ"+base_2 ; + Dat => base_1+"æ"+base_2+"i" ; + Gen => base_1+"æ"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"æ"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"æ"+base_2+"ið" ; + Acc => base_1+"æ"+base_2+"ið" ; + Dat => base_1+"æ"+base_2+"inum" ; + Gen => base_1+"æ"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ini" ; + Acc => base_1+"ø"+base_2+"ini" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"æ"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN034" + } ; + +mkN035 : Str -> N ; +mkN035 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN035" + } ; + +mkN036 : Str -> N ; +mkN036 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"irnir" ; + Acc => base_1+"irnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN036" + } ; + +mkN037 : Str -> N ; +mkN037 base = + case base of { + base_1+"pur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"pur" ; + Acc => base_1+"p" ; + Dat => base_1+"pi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"par" ; + Acc => base_1+"par" ; + Dat => base_1+"pum" ; + Gen => base_1+"pa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"purin" ; + Acc => base_1+"pin" ; + Dat => base_1+"pinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"parnir" ; + Acc => base_1+"parnar" ; + Dat => base_1+"punum" ; + Gen => base_1+"panna" + } + } + } + }; + _ => error "Can't apply paradigm mkN037" + } ; + +mkN038 : Str -> N ; +mkN038 base = + case base of { + base_1+"a"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2 ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"in" ; + Acc => base_1+"a"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN038" + } ; + +mkN039 : Str -> N ; +mkN039 base = + case base of { + base_1+base_2@?+"l" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+base_2+"l" ; + Acc => base_1+base_2+"l" ; + Dat => base_1+"l"+base_2 ; + Gen => base_1+base_2+"ls" + } ; + Pl => table { + Nom => base_1+base_2+"lin" ; + Acc => base_1+base_2+"lin" ; + Dat => base_1+"l"+base_2+"num" ; + Gen => base_1+base_2+"lsins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN039" + } ; + +mkN040 : Str -> N ; +mkN040 base = + case base of { + base_1+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i" ; + Acc => base_1+"ja" ; + Dat => base_1+"ja" ; + Gen => base_1+"ja" + } ; + Pl => table { + Nom => base_1+"jar" ; + Acc => base_1+"jar" ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"jan" ; + Dat => base_1+"janum" ; + Gen => base_1+"jans" + } ; + Pl => table { + Nom => base_1+"jarnir" ; + Acc => base_1+"jarnar" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN040" + } ; + +mkN041 : Str -> N ; +mkN041 base = + case base of { + base_1+"ógv" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ógv" ; + Acc => base_1+"ógv" ; + Dat => base_1+"ógv" ; + Gen => base_1+"óar" + } ; + Pl => table { + Nom => base_1+"øur" ; + Acc => base_1+"øur" ; + Dat => base_1+"óm" ; + Gen => base_1+"ógva" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ógvin" ; + Acc => base_1+"ónna" ; + Dat => base_1+"ónni" ; + Gen => base_1+"óarinnar" + } ; + Pl => table { + Nom => base_1+"ørnar" ; + Acc => base_1+"ørnar" ; + Dat => base_1+"ónum" ; + Gen => base_1+"ógvanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN041" + } ; + +mkN042 : Str -> N ; +mkN042 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"u"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+base_2+"ið" ; + Acc => base_1+base_2+"ið" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"u"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"ini" ; + Acc => base_1+base_2+"ini" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN042" + } ; + +mkN043 : Str -> N ; +mkN043 base = + case base of { + base_1+"nur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"nur" ; + Acc => base_1+"n" ; + Dat => base_1+"ni" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"nar" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"nurin" ; + Acc => base_1+"nin" ; + Dat => base_1+"ninum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"narnir" ; + Acc => base_1+"narnar" ; + Dat => base_1+"nunum" ; + Gen => base_1+"nanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN043" + } ; + +mkN044 : Str -> N ; +mkN044 base = + case base of { + base_1+"a" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a" ; + Acc => base_1+"a" ; + Dat => base_1+"a" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"ur" ; + Acc => base_1+"ur" ; + Dat => base_1+"um" ; + Gen => base_1+"na" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"að" ; + Acc => base_1+"að" ; + Dat => base_1+"anum" ; + Gen => base_1+"ans" + } ; + Pl => table { + Nom => base_1+"uni" ; + Acc => base_1+"uni" ; + Dat => base_1+"unum" ; + Gen => base_1+"nanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN044" + } ; + +mkN045 : Str -> N ; +mkN045 base = + case base of { + base_1+"i"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i"+base_2 ; + Acc => base_1+"i"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"i"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"i"+base_2+"in" ; + Acc => base_1+"i"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"i"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN045" + } ; + +mkN046 : Str -> N ; +mkN046 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN046" + } ; + +mkN047 : Str -> N ; +mkN047 base = + case base of { + base_1+"ú"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ú"+base_2 ; + Acc => base_1+"ú"+base_2 ; + Dat => base_1+"ú"+base_2 ; + Gen => base_1+"ú"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ý"+base_2 ; + Acc => base_1+"ý"+base_2 ; + Dat => base_1+"ú"+base_2+"um" ; + Gen => base_1+"ú"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ú"+base_2+"in" ; + Acc => base_1+"ú"+base_2+"ina" ; + Dat => base_1+"ú"+base_2+"ini" ; + Gen => base_1+"ú"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"ý"+base_2+"nar" ; + Acc => base_1+"ý"+base_2+"nar" ; + Dat => base_1+"ú"+base_2+"unum" ; + Gen => base_1+"ú"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN047" + } ; + +mkN048 : Str -> N ; +mkN048 base = + case base of { + base_1+"tur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"tur" ; + Acc => base_1+"t" ; + Dat => base_1+"ti" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"tir" ; + Acc => base_1+"tir" ; + Dat => base_1+"tum" ; + Gen => base_1+"ta" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"turin" ; + Acc => base_1+"tin" ; + Dat => base_1+"tinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"tirnir" ; + Acc => base_1+"tirnar" ; + Dat => base_1+"tunum" ; + Gen => base_1+"tanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN048" + } ; + +mkN049 : Str -> N ; +mkN049 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"num" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN049" + } ; + +mkN050 : Str -> N ; +mkN050 base = + case base of { + base_1+"á"+base_2@("ð"|(?+?))+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"á"+base_2+"ur" ; + Acc => base_1+"á"+base_2 ; + Dat => base_1+"á"+base_2+"i" ; + Gen => base_1+"á"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"æ"+base_2+"ir" ; + Acc => base_1+"æ"+base_2+"ir" ; + Dat => base_1+"á"+base_2+"um" ; + Gen => base_1+"á"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"á"+base_2+"urin" ; + Acc => base_1+"á"+base_2+"in" ; + Dat => base_1+"á"+base_2+"inum" ; + Gen => base_1+"á"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"æ"+base_2+"irnir" ; + Acc => base_1+"æ"+base_2+"irnar" ; + Dat => base_1+"á"+base_2+"unum" ; + Gen => base_1+"á"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN050" + } ; + +mkN051 : Str -> N ; +mkN051 base = + case base of { + base_1+"o"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"o"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ir" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"o"+base_2+"in" ; + Acc => base_1+"o"+base_2+"ina" ; + Dat => base_1+"o"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"irnar" ; + Acc => base_1+"a"+base_2+"irnar" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN051" + } ; + +mkN052 : Str -> N ; +mkN052 base = + case base of { + base_1+"a"+base_2@?+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ir" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"urin" ; + Acc => base_1+"a"+base_2+"in" ; + Dat => base_1+"a"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"irnir" ; + Acc => base_1+"a"+base_2+"irnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN052" + } ; + +mkN053 : Str -> N ; +mkN053 base = + case base of { + base_1+"ir" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"irnar" ; + Acc => base_1+"irnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN053" + } ; + +mkN054 : Str -> N ; +mkN054 base = + case base of { + base_1+"m" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"m" ; + Acc => base_1+"m" ; + Dat => base_1+"mi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"m" ; + Acc => base_1+"m" ; + Dat => base_1+"mum" ; + Gen => base_1+"ma" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"mið" ; + Acc => base_1+"mið" ; + Dat => base_1+"minum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"mini" ; + Acc => base_1+"mini" ; + Dat => base_1+"munum" ; + Gen => base_1+"manna" + } + } + } + }; + _ => error "Can't apply paradigm mkN054" + } ; + +mkN055 : Str -> N ; +mkN055 base = + case base of { + base_1+"ó"+base_2@(?+?)+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ó"+base_2+"i" ; + Acc => base_1+"ó"+base_2+"a" ; + Dat => base_1+"ó"+base_2+"a" ; + Gen => base_1+"ó"+base_2+"a" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ur" ; + Acc => base_1+"ø"+base_2+"ur" ; + Dat => base_1+"ó"+base_2+"um" ; + Gen => base_1+"ó"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ó"+base_2+"in" ; + Acc => base_1+"ó"+base_2+"an" ; + Dat => base_1+"ó"+base_2+"anum" ; + Gen => base_1+"ó"+base_2+"ans" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"urnir" ; + Acc => base_1+"ø"+base_2+"urnar" ; + Dat => base_1+"ó"+base_2+"unum" ; + Gen => base_1+"ó"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN055" + } ; + +mkN056 : Str -> N ; +mkN056 base = + case base of { + base_1+"a"+base_2@?+"lur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"lur" ; + Acc => base_1+"a"+base_2+"l" ; + Dat => base_1+"a"+base_2+"li" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"lar" ; + Acc => base_1+"a"+base_2+"lar" ; + Dat => base_1+"ø"+base_2+"lum" ; + Gen => base_1+"a"+base_2+"la" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"lurin" ; + Acc => base_1+"a"+base_2+"lin" ; + Dat => base_1+"a"+base_2+"linum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"larnir" ; + Acc => base_1+"a"+base_2+"larnar" ; + Dat => base_1+"ø"+base_2+"lunum" ; + Gen => base_1+"a"+base_2+"lanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN056" + } ; + +mkN057 : Str -> N ; +mkN057 base = + case base of { + base_1+"ø"+base_2@("ð"|(?+?))+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2+"ur" ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"i" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"urin" ; + Acc => base_1+"ø"+base_2+"in" ; + Dat => base_1+"ø"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"arins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN057" + } ; + +mkN058 : Str -> N ; +mkN058 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1+"ur" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"urnar" ; + Acc => base_1+"urnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN058" + } ; + +mkN059 : Str -> N ; +mkN059 base = + case base of { + base_1+"ó"+base_2@?+"i"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ó"+base_2+"i"+base_3 ; + Acc => base_1+"ó"+base_2+"u"+base_3 ; + Dat => base_1+"ó"+base_2+"u"+base_3 ; + Gen => base_1+"ó"+base_2+"u"+base_3 + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"ø"+base_2+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ó"+base_2+"i"+base_3+"in" ; + Acc => base_1+"ó"+base_2+"u"+base_3+"in" ; + Dat => base_1+"ó"+base_2+"u"+base_3+"num" ; + Gen => base_1+"ó"+base_2+"u"+base_3+"ins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3+"nir" ; + Acc => base_1+"ø"+base_2+"u"+base_3+"nar" ; + Dat => base_1+"ø"+base_2+base_3+"unum" ; + Gen => base_1+"ø"+base_2+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN059" + } ; + +mkN060 : Str -> N ; +mkN060 base = + case base of { + base_1+"o"+base_2@?+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"o"+base_2+"ur" ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"y"+base_2+"i" ; + Gen => base_1+"o"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"y"+base_2+"ir" ; + Acc => base_1+"y"+base_2+"ir" ; + Dat => base_1+"y"+base_2+"um" ; + Gen => base_1+"o"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"o"+base_2+"urin" ; + Acc => base_1+"o"+base_2+"in" ; + Dat => base_1+"y"+base_2+"inum" ; + Gen => base_1+"o"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"y"+base_2+"irnir" ; + Acc => base_1+"y"+base_2+"irnar" ; + Dat => base_1+"y"+base_2+"unum" ; + Gen => base_1+"o"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN060" + } ; + +mkN061 : Str -> N ; +mkN061 base = + case base of { + base_1+"ó"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ó"+base_2 ; + Acc => base_1+"ó"+base_2 ; + Dat => base_1+"ó"+base_2 ; + Gen => base_1+"ó"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ur" ; + Acc => base_1+"ø"+base_2+"ur" ; + Dat => base_1+"ó"+base_2+"um" ; + Gen => base_1+"ó"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ó"+base_2+"in" ; + Acc => base_1+"ó"+base_2+"ina" ; + Dat => base_1+"ó"+base_2+"ini" ; + Gen => base_1+"ó"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"urnar" ; + Acc => base_1+"ø"+base_2+"urnar" ; + Dat => base_1+"ó"+base_2+"unum" ; + Gen => base_1+"ó"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN061" + } ; + +mkN062 : Str -> N ; +mkN062 base = + case base of { + base_1+"a"+base_2@?+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ir" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"urin" ; + Acc => base_1+"a"+base_2+"in" ; + Dat => base_1+"a"+base_2+"num" ; + Gen => base_1+"a"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"irnir" ; + Acc => base_1+"a"+base_2+"irnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN062" + } ; + +mkN063 : Str -> N ; +mkN063 base = + case base of { + base_1+"g" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"g" ; + Acc => base_1+"g" ; + Dat => base_1+"gi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"gið" ; + Acc => base_1+"gið" ; + Dat => base_1+"ginum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN063" + } ; + +mkN064 : Str -> N ; +mkN064 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"jar" + } ; + Pl => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"jarins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN064" + } ; + +mkN065 : Str -> N ; +mkN065 base = + case base of { + base_1+"a"+base_2@?+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"e"+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"urin" ; + Acc => base_1+"a"+base_2+"in" ; + Dat => base_1+"e"+base_2+"num" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"arnir" ; + Acc => base_1+"a"+base_2+"arnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN065" + } ; + +mkN066 : Str -> N ; +mkN066 base = + case base of { + base_1+"a"+base_2@("l"|(?+?))+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"urin" ; + Acc => base_1+"a"+base_2+"in" ; + Dat => base_1+"a"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"arnir" ; + Acc => base_1+"a"+base_2+"arnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN066" + } ; + +mkN067 : Str -> N ; +mkN067 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"ins" + } ; + Pl => table { + Nom => base_1+"irnir" ; + Acc => base_1+"irnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN067" + } ; + +mkN068 : Str -> N ; +mkN068 base = + case base of { + base_1+"k" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"k" ; + Acc => base_1+"k" ; + Dat => base_1+"ki" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"k" ; + Acc => base_1+"k" ; + Dat => base_1+"kum" ; + Gen => base_1+"ka" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"kið" ; + Acc => base_1+"kið" ; + Dat => base_1+"kinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"kini" ; + Acc => base_1+"kini" ; + Dat => base_1+"kunum" ; + Gen => base_1+"kanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN068" + } ; + +mkN069 : Str -> N ; +mkN069 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"ins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN069" + } ; + +mkN070 : Str -> N ; +mkN070 base = + case base of { + base_1+"o"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"o"+base_2 ; + Gen => base_1+"o"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"e"+base_2+"ur" ; + Acc => base_1+"e"+base_2+"ur" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"o"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"o"+base_2+"in" ; + Acc => base_1+"o"+base_2+"ina" ; + Dat => base_1+"o"+base_2+"ini" ; + Gen => base_1+"o"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"e"+base_2+"urnar" ; + Acc => base_1+"e"+base_2+"urnar" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"o"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN070" + } ; + +mkN071 : Str -> N ; +mkN071 base = + case base of { + base_1+"ó"+base_2@?+"ti"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ó"+base_2+"ti"+base_3 ; + Acc => base_1+"ó"+base_2+"tu"+base_3 ; + Dat => base_1+"ó"+base_2+"tu"+base_3 ; + Gen => base_1+"ó"+base_2+"tu"+base_3 + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"ø"+base_2+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ó"+base_2+"ti"+base_3+"in" ; + Acc => base_1+"ót"+base_2+base_3+"ina" ; + Dat => base_1+"ót"+base_2+base_3+"ini" ; + Gen => base_1+"ó"+base_2+"tu"+base_3+"innar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3+"nar" ; + Acc => base_1+"ø"+base_2+"u"+base_3+"nar" ; + Dat => base_1+"ø"+base_2+base_3+"unum" ; + Gen => base_1+"ø"+base_2+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN071" + } ; + +mkN072 : Str -> N ; +mkN072 base = + case base of { + base_1+"o"+base_2@(?+?)+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"o"+base_2+"ur" ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"ei"+base_2+"i" ; + Gen => base_1+"ei"+base_2+"jar" + } ; + Pl => table { + Nom => base_1+"ei"+base_2+"ir" ; + Acc => base_1+"ei"+base_2+"ir" ; + Dat => base_1+"ei"+base_2+"jum" ; + Gen => base_1+"ei"+base_2+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"o"+base_2+"urin" ; + Acc => base_1+"o"+base_2+"in" ; + Dat => base_1+"ei"+base_2+"inum" ; + Gen => base_1+"ei"+base_2+"jarins" + } ; + Pl => table { + Nom => base_1+"ei"+base_2+"irnir" ; + Acc => base_1+"ei"+base_2+"irnar" ; + Dat => base_1+"ei"+base_2+"junum" ; + Gen => base_1+"ei"+base_2+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN072" + } ; + +mkN073 : Str -> N ; +mkN073 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"u"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ið" ; + Acc => base_1+base_2+"ið" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"u"+base_2+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN073" + } ; + +mkN074 : Str -> N ; +mkN074 base = + case base of { + base_1+"y"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"y"+base_2 ; + Acc => base_1+"y"+base_2 ; + Dat => base_1+"u"+base_2+"um" ; + Gen => base_1+"u"+base_2+"a" + } ; + Pl => table { + Nom => base_1+"y"+base_2+"nar" ; + Acc => base_1+"y"+base_2+"nar" ; + Dat => base_1+"u"+base_2+"unum" ; + Gen => base_1+"u"+base_2+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN074" + } ; + +mkN075 : Str -> N ; +mkN075 base = + case base of { + base_1+"ø"+base_2@("l"|(?+?)) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"in" ; + Acc => base_1+"ø"+base_2+"ina" ; + Dat => base_1+"ø"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN075" + } ; + +mkN076 : Str -> N ; +mkN076 base = + case base of { + base_1+"d" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"d" ; + Acc => base_1+"d" ; + Dat => base_1+"di" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"d" ; + Acc => base_1+"d" ; + Dat => base_1+"dum" ; + Gen => base_1+"da" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"dið" ; + Acc => base_1+"dið" ; + Dat => base_1+"dinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"dini" ; + Acc => base_1+"dini" ; + Dat => base_1+"dunum" ; + Gen => base_1+"danna" + } + } + } + }; + _ => error "Can't apply paradigm mkN076" + } ; + +mkN077 : Str -> N ; +mkN077 base = + case base of { + base_1+"f" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"f" ; + Acc => base_1+"f" ; + Dat => base_1+"fi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"f" ; + Acc => base_1+"f" ; + Dat => base_1+"fum" ; + Gen => base_1+"fa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"fið" ; + Acc => base_1+"fið" ; + Dat => base_1+"finum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"fini" ; + Acc => base_1+"fini" ; + Dat => base_1+"funum" ; + Gen => base_1+"fanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN077" + } ; + +mkN078 : Str -> N ; +mkN078 base = + case base of { + base_1+"l" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"l" ; + Acc => base_1+"l" ; + Dat => base_1+"li" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"l" ; + Acc => base_1+"l" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"lið" ; + Acc => base_1+"lið" ; + Dat => base_1+"linum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"lini" ; + Acc => base_1+"lini" ; + Dat => base_1+"lunum" ; + Gen => base_1+"lanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN078" + } ; + +mkN079 : Str -> N ; +mkN079 base = + case base of { + base_1+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i" ; + Acc => base_1+"i" ; + Dat => base_1+"i" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"ina" ; + Dat => base_1+"ini" ; + Gen => base_1+"arinnar" + } ; + Pl => table { + Nom => base_1+"arnar" ; + Acc => base_1+"arnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN079" + } ; + +mkN080 : Str -> N ; +mkN080 base = + case base of { + base_1+"r" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"r" ; + Acc => base_1+"r" ; + Dat => base_1+"ri" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"r" ; + Acc => base_1+"r" ; + Dat => base_1+"rum" ; + Gen => base_1+"ra" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"rið" ; + Acc => base_1+"rið" ; + Dat => base_1+"rinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"rini" ; + Acc => base_1+"rini" ; + Dat => base_1+"runum" ; + Gen => base_1+"ranna" + } + } + } + }; + _ => error "Can't apply paradigm mkN080" + } ; + +mkN081 : Str -> N ; +mkN081 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+"u"+base_2 ; + Gen => base_1+base_2+"ar" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"u"+base_2+"in" ; + Acc => base_1+base_2+"ina" ; + Dat => base_1+base_2+"ini" ; + Gen => base_1+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+base_2+"arnar" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN081" + } ; + +mkN082 : Str -> N ; +mkN082 base = + case base of { + base_1+"n"+base_2@(?+?+?+?)+"um" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"n"+base_2+"um" ; + Acc => base_1+"n"+base_2+"um" ; + Dat => base_1+"n"+base_2+"i" ; + Gen => base_1+"n"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"n"+base_2+"um" ; + Acc => base_1+"n"+base_2+"um" ; + Dat => base_1+"n"+base_2+"um" ; + Gen => base_1+"n"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"n"+base_2+"ið" ; + Acc => base_1+"n"+base_2+"ið" ; + Dat => base_1+"n"+base_2+"num" ; + Gen => base_1+"n"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"n"+base_2+"ini" ; + Acc => base_1+"n"+base_2+"ini" ; + Dat => base_1+"n"+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN082" + } ; + +mkN083 : Str -> N ; +mkN083 base = + case base of { + base_1+"aði"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"aði"+base_2 ; + Acc => base_1+"aði"+base_2 ; + Dat => base_1+"aði"+base_2 ; + Gen => base_1+"aði"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ed"+base_2+"ar" ; + Acc => base_1+"ed"+base_2+"ar" ; + Dat => base_1+"ed"+base_2+"um" ; + Gen => base_1+"ed"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"aði"+base_2+"in" ; + Acc => base_1+"aði"+base_2+"in" ; + Dat => base_1+"aði"+base_2+"inum" ; + Gen => base_1+"aði"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"ed"+base_2+"arnir" ; + Acc => base_1+"ed"+base_2+"arnar" ; + Dat => base_1+"ed"+base_2+"unum" ; + Gen => base_1+"ed"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN083" + } ; + +mkN084 : Str -> N ; +mkN084 base = + case base of { + base_1+"æ" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"æ" ; + Acc => base_1+"æ" ; + Dat => base_1+"æ" ; + Gen => base_1+"íggjar" + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN084" + } ; + +mkN085 : Str -> N ; +mkN085 base = + case base of { + base_1+"a"+base_2@?+"l" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"l" ; + Acc => base_1+"a"+base_2+"l" ; + Dat => base_1+"a"+base_2+"li" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"l" ; + Acc => base_1+"ø"+base_2+"l" ; + Dat => base_1+"ø"+base_2+"lum" ; + Gen => base_1+"a"+base_2+"la" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"lið" ; + Acc => base_1+"a"+base_2+"lið" ; + Dat => base_1+"a"+base_2+"linum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"lini" ; + Acc => base_1+"ø"+base_2+"lini" ; + Dat => base_1+"ø"+base_2+"lunum" ; + Gen => base_1+"a"+base_2+"lanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN085" + } ; + +mkN086 : Str -> N ; +mkN086 base = + case base of { + base_1+"ar" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"arnir" ; + Acc => base_1+"arnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN086" + } ; + +mkN087 : Str -> N ; +mkN087 base = + case base of { + base_1+"t" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"ti" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"tið" ; + Acc => base_1+"tið" ; + Dat => base_1+"tinum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN087" + } ; + +mkN088 : Str -> N ; +mkN088 base = + case base of { + base_1+"ø"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ir" ; + Acc => base_1+"ø"+base_2+"ir" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"in" ; + Acc => base_1+"ø"+base_2+"ina" ; + Dat => base_1+"ø"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"irnar" ; + Acc => base_1+"ø"+base_2+"irnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN088" + } ; + +mkN089 : Str -> N ; +mkN089 base = + case base of { + base_1+"ø"+base_2@?+"u"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+"u"+base_3 ; + Gen => base_1+"a"+base_2+base_3+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ar" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"u"+base_3+"in" ; + Acc => base_1+"ø"+base_2+base_3+"ina" ; + Dat => base_1+"ø"+base_2+base_3+"ini" ; + Gen => base_1+"a"+base_2+base_3+"arinnar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"arnar" ; + Acc => base_1+"a"+base_2+base_3+"arnar" ; + Dat => base_1+"ø"+base_2+base_3+"unum" ; + Gen => base_1+"a"+base_2+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN089" + } ; + +mkN090 : Str -> N ; +mkN090 base = + case base of { + base_1+"jø"+base_2@(?+?)+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"jø"+base_2+"ur" ; + Acc => base_1+"jø"+base_2 ; + Dat => base_1+"i"+base_2+"i" ; + Gen => base_1+"ja"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"i"+base_2+"ir" ; + Acc => base_1+"i"+base_2+"ir" ; + Dat => base_1+"jø"+base_2+"um" ; + Gen => base_1+"ja"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"jø"+base_2+"urin" ; + Acc => base_1+"jø"+base_2+"in" ; + Dat => base_1+"i"+base_2+"inum" ; + Gen => base_1+"ja"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"i"+base_2+"irnir" ; + Acc => base_1+"i"+base_2+"irnar" ; + Dat => base_1+"jø"+base_2+"unum" ; + Gen => base_1+"ja"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN090" + } ; + +mkN091 : Str -> N ; +mkN091 base = + case base of { + base_1+"a"+base_2@?+"g" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"g" ; + Acc => base_1+"a"+base_2+"g" ; + Dat => base_1+"a"+base_2+"gi" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"g" ; + Acc => base_1+"ø"+base_2+"g" ; + Dat => base_1+"ø"+base_2+"gum" ; + Gen => base_1+"a"+base_2+"ga" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"gið" ; + Acc => base_1+"a"+base_2+"gið" ; + Dat => base_1+"a"+base_2+"ginum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"gini" ; + Acc => base_1+"ø"+base_2+"gini" ; + Dat => base_1+"ø"+base_2+"gunum" ; + Gen => base_1+"a"+base_2+"ganna" + } + } + } + }; + _ => error "Can't apply paradigm mkN091" + } ; + +mkN092 : Str -> N ; +mkN092 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1+"jar" + } ; + Pl => table { + Nom => base_1+"jar" ; + Acc => base_1+"jar" ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"ina" ; + Dat => base_1+"ini" ; + Gen => base_1+"jarinnar" + } ; + Pl => table { + Nom => base_1+"jarnar" ; + Acc => base_1+"jarnar" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN092" + } ; + +mkN093 : Str -> N ; +mkN093 base = + case base of { + base_1+"ø"+base_2@("r"|"l"|(?+?))+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2+"ur" ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"i" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ir" ; + Acc => base_1+"ø"+base_2+"ir" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"urin" ; + Acc => base_1+"ø"+base_2+"in" ; + Dat => base_1+"ø"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"irnir" ; + Acc => base_1+"ø"+base_2+"irnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN093" + } ; + +mkN094 : Str -> N ; +mkN094 base = + case base of { + base_1+"ø"+base_2@(?+?)+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2+"ur" ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"i" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ar" ; + Acc => base_1+"ø"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"urin" ; + Acc => base_1+"ø"+base_2+"in" ; + Dat => base_1+"ø"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"arnir" ; + Acc => base_1+"ø"+base_2+"arnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN094" + } ; + +mkN095 : Str -> N ; +mkN095 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } ; + Pl => table { + Nom => base_1+base_2+"ini" ; + Acc => base_1+base_2+"ini" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN095" + } ; + +mkN096 : Str -> N ; +mkN096 base = + case base of { + base_1+"a"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2 ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"ið" ; + Acc => base_1+"a"+base_2+"ið" ; + Dat => base_1+"a"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"o"+base_2+"ini" ; + Acc => base_1+"o"+base_2+"ini" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN096" + } ; + +mkN097 : Str -> N ; +mkN097 base = + case base of { + base_1+"ó"+base_2@?+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ó"+base_2+"ur" ; + Acc => base_1+"ó"+base_2 ; + Dat => base_1+"ó"+base_2+"i" ; + Gen => base_1+"ó"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ur" ; + Acc => base_1+"ø"+base_2+"ur" ; + Dat => base_1+"ó"+base_2+"um" ; + Gen => base_1+"ó"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ó"+base_2+"urin" ; + Acc => base_1+"ó"+base_2+"in" ; + Dat => base_1+"ó"+base_2+"inum" ; + Gen => base_1+"ó"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"urnir" ; + Acc => base_1+"ø"+base_2+"urnar" ; + Dat => base_1+"ó"+base_2+"unum" ; + Gen => base_1+"ó"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN097" + } ; + +mkN098 : Str -> N ; +mkN098 base = + case base of { + base_1+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i" ; + Acc => base_1+"a" ; + Dat => base_1+"a" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"ur" ; + Acc => base_1+"ur" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"an" ; + Dat => base_1+"anum" ; + Gen => base_1+"ans" + } ; + Pl => table { + Nom => base_1+"urnir" ; + Acc => base_1+"urnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN098" + } ; + +mkN099 : Str -> N ; +mkN099 base = + case base of { + base_1+"fi"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"fi"+base_2 ; + Acc => base_1+"fi"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"fi"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"fi"+base_2+"in" ; + Acc => base_1+"fi"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"fi"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN099" + } ; + +mkN100 : Str -> N ; +mkN100 base = + case base of { + base_1+"á"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"á"+base_2 ; + Acc => base_1+"á"+base_2 ; + Dat => base_1+"á"+base_2 ; + Gen => base_1+"á"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"æ"+base_2 ; + Acc => base_1+"æ"+base_2 ; + Dat => base_1+"á"+base_2+"um" ; + Gen => base_1+"á"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"á"+base_2+"in" ; + Acc => base_1+"á"+base_2+"ina" ; + Dat => base_1+"á"+base_2+"ini" ; + Gen => base_1+"á"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"æ"+base_2+"nar" ; + Acc => base_1+"æ"+base_2+"nar" ; + Dat => base_1+"á"+base_2+"unum" ; + Gen => base_1+"á"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN100" + } ; + +mkN101 : Str -> N ; +mkN101 base = + case base of { + base_1+"fur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"fur" ; + Acc => base_1+"f" ; + Dat => base_1+"fi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"far" ; + Acc => base_1+"far" ; + Dat => base_1+"fum" ; + Gen => base_1+"fa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"furin" ; + Acc => base_1+"fin" ; + Dat => base_1+"finum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"farnir" ; + Acc => base_1+"farnar" ; + Dat => base_1+"funum" ; + Gen => base_1+"fanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN101" + } ; + +mkN102 : Str -> N ; +mkN102 base = + case base of { + base_1+"ógv" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ógv" ; + Acc => base_1+"ógv" ; + Dat => base_1+"ógv" ; + Gen => base_1+"áar" + } ; + Pl => table { + Nom => base_1+"áir" ; + Acc => base_1+"áir" ; + Dat => base_1+"áum" ; + Gen => base_1+"áa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ógvin" ; + Acc => base_1+"ónna" ; + Dat => base_1+"ónni" ; + Gen => base_1+"áarinnar" + } ; + Pl => table { + Nom => base_1+"áirnar" ; + Acc => base_1+"áirnar" ; + Dat => base_1+"áunum" ; + Gen => base_1+"áanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN102" + } ; + +mkN103 : Str -> N ; +mkN103 base = + case base of { + base_1+"a"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2 ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2+"i" ; + Gen => base_1+"a"+base_2 + } ; + Pl => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"ið" ; + Acc => base_1+"a"+base_2+"ið" ; + Dat => base_1+"a"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"ins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ini" ; + Acc => base_1+"ø"+base_2+"ini" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN103" + } ; + +mkN104 : Str -> N ; +mkN104 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"r" ; + Acc => base_1+"r" ; + Dat => nonExist ; + Gen => nonExist + } + } ; + Def => table { + Sg => table { + Nom => base_1+"n" ; + Acc => base_1+"na" ; + Dat => base_1+"ni" ; + Gen => base_1+"nnar" + } ; + Pl => table { + Nom => base_1+"rnar" ; + Acc => base_1+"rnar" ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN104" + } ; + +mkN105 : Str -> N ; +mkN105 base = + case base of { + base_1+"ggj" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ggj" ; + Acc => base_1+"ggj" ; + Dat => base_1+"ggj" ; + Gen => base_1+"ggjar" + } ; + Pl => table { + Nom => base_1+"ggjar" ; + Acc => base_1+"ggjar" ; + Dat => base_1+"ggjum" ; + Gen => base_1+"ggja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ggin" ; + Acc => base_1+"nna" ; + Dat => base_1+"nni" ; + Gen => base_1+"ggjarinnar" + } ; + Pl => table { + Nom => base_1+"ggjarnar" ; + Acc => base_1+"ggjarnar" ; + Dat => base_1+"ggjunum" ; + Gen => base_1+"ggjanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN105" + } ; + +mkN106 : Str -> N ; +mkN106 base = + case base of { + base_1+"a"+base_2@?+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"i" ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"a" ; + Gen => base_1+"a"+base_2+"a" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"in" ; + Acc => base_1+"a"+base_2+"an" ; + Dat => base_1+"a"+base_2+"anum" ; + Gen => base_1+"a"+base_2+"ans" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"arnir" ; + Acc => base_1+"a"+base_2+"arnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN106" + } ; + +mkN107 : Str -> N ; +mkN107 base = + case base of { + base_1+"a"+base_2@?+"a"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"a"+base_3 ; + Acc => base_1+"a"+base_2+"a"+base_3 ; + Dat => base_1+"a"+base_2+base_3+"i" ; + Gen => base_1+"a"+base_2+"a"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ar" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"o"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"a"+base_3+"in" ; + Acc => base_1+"a"+base_2+"a"+base_3+"an" ; + Dat => base_1+"a"+base_2+base_3+"inum" ; + Gen => base_1+"a"+base_2+"a"+base_3+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"arnir" ; + Acc => base_1+"a"+base_2+base_3+"arnar" ; + Dat => base_1+"o"+base_2+base_3+"unum" ; + Gen => base_1+"a"+base_2+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN107" + } ; + +mkN108 : Str -> N ; +mkN108 base = + case base of { + base_1+"p" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"p" ; + Acc => base_1+"p" ; + Dat => base_1+"pi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"p" ; + Acc => base_1+"p" ; + Dat => base_1+"pum" ; + Gen => base_1+"pa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"pið" ; + Acc => base_1+"pið" ; + Dat => base_1+"pinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"pini" ; + Acc => base_1+"pini" ; + Dat => base_1+"punum" ; + Gen => base_1+"panna" + } + } + } + }; + _ => error "Can't apply paradigm mkN108" + } ; + +mkN109 : Str -> N ; +mkN109 base = + case base of { + base_1+"tur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"tur" ; + Acc => base_1+"t" ; + Dat => base_1+"ti" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"tar" ; + Acc => base_1+"tar" ; + Dat => base_1+"tum" ; + Gen => base_1+"ta" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"turin" ; + Acc => base_1+"tin" ; + Dat => base_1+"tinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"tarnir" ; + Acc => base_1+"tarnar" ; + Dat => base_1+"tunum" ; + Gen => base_1+"tanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN109" + } ; + +mkN110 : Str -> N ; +mkN110 base = + case base of { + base_1+"gv" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"gv" ; + Acc => base_1+"gv" ; + Dat => base_1+"gv" ; + Gen => base_1+"gvar" + } ; + Pl => table { + Nom => base_1+"gvin" ; + Acc => base_1+"nna" ; + Dat => base_1+"nni" ; + Gen => base_1+"gvarinnar" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN110" + } ; + +mkN111 : Str -> N ; +mkN111 base = + case base of { + base_1+"ar" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"arnar" ; + Acc => base_1+"arnar" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN111" + } ; + +mkN112 : Str -> N ; +mkN112 base = + case base of { + base_1+"a"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2 ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"e"+base_2+"ir" ; + Acc => base_1+"e"+base_2+"ir" ; + Dat => base_1+"e"+base_2+"um" ; + Gen => base_1+"e"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"in" ; + Acc => base_1+"a"+base_2+"ina" ; + Dat => base_1+"a"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"e"+base_2+"irnar" ; + Acc => base_1+"e"+base_2+"irnar" ; + Dat => base_1+"e"+base_2+"unum" ; + Gen => base_1+"e"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN112" + } ; + +mkN113 : Str -> N ; +mkN113 base = + case base of { + base_1+"ma"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ma"+base_2 ; + Acc => base_1+"ma"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"ma"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ma"+base_2+"in" ; + Acc => base_1+"ma"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"ma"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN113" + } ; + +mkN114 : Str -> N ; +mkN114 base = + case base of { + base_1+"a"+base_2@(?+?)+"a" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"a" ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"a" ; + Gen => base_1+"a"+base_2+"a" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ur" ; + Acc => base_1+"ø"+base_2+"ur" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"na" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"að" ; + Acc => base_1+"a"+base_2+"að" ; + Dat => base_1+"a"+base_2+"anum" ; + Gen => base_1+"a"+base_2+"ans" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"uni" ; + Acc => base_1+"ø"+base_2+"uni" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"nanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN114" + } ; + +mkN115 : Str -> N ; +mkN115 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN115" + } ; + +mkN116 : Str -> N ; +mkN116 base = + case base of { + base_1+"g"+base_2@?+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"g"+base_2+"ur" ; + Acc => base_1+"g"+base_2 ; + Dat => base_1+"g"+base_2+"i" ; + Gen => base_1+base_2+"s" + } ; + Pl => table { + Nom => base_1+"g"+base_2+"ar" ; + Acc => base_1+"g"+base_2+"ar" ; + Dat => base_1+"g"+base_2+"um" ; + Gen => base_1+"g"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"g"+base_2+"urin" ; + Acc => base_1+"g"+base_2+"in" ; + Dat => base_1+"g"+base_2+"inum" ; + Gen => base_1+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"g"+base_2+"arnir" ; + Acc => base_1+"g"+base_2+"arnar" ; + Dat => base_1+"g"+base_2+"unum" ; + Gen => base_1+"g"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN116" + } ; + +mkN117 : Str -> N ; +mkN117 base = + case base of { + base_1+"o"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"o"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"e"+base_2+"ur" ; + Acc => base_1+"e"+base_2+"ur" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"o"+base_2+"in" ; + Acc => base_1+"o"+base_2+"ina" ; + Dat => base_1+"o"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"e"+base_2+"urnar" ; + Acc => base_1+"e"+base_2+"urnar" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN117" + } ; + +mkN118 : Str -> N ; +mkN118 base = + case base of { + base_1+"d" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"d" ; + Acc => base_1+"d" ; + Dat => base_1+"di" ; + Gen => base_1+"uðs" + } ; + Pl => table { + Nom => base_1+"d" ; + Acc => base_1+"d" ; + Dat => base_1+"dum" ; + Gen => base_1+"da" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"dini" ; + Acc => base_1+"dini" ; + Dat => base_1+"dinum" ; + Gen => base_1+"uðsins" + } ; + Pl => table { + Nom => base_1+"dini" ; + Acc => base_1+"dini" ; + Dat => base_1+"dunum" ; + Gen => base_1+"danna" + } + } + } + }; + _ => error "Can't apply paradigm mkN118" + } ; + +mkN119 : Str -> N ; +mkN119 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1+"ur" ; + Dat => base_1+"di" ; + Gen => base_1+"uðs" + } ; + Pl => table { + Nom => base_1+"ur" ; + Acc => base_1+"ur" ; + Dat => base_1+"dum" ; + Gen => base_1+"da" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urini" ; + Acc => base_1+"urini" ; + Dat => base_1+"dinum" ; + Gen => base_1+"uðsins" + } ; + Pl => table { + Nom => base_1+"urini" ; + Acc => base_1+"urini" ; + Dat => base_1+"dunum" ; + Gen => base_1+"danna" + } + } + } + }; + _ => error "Can't apply paradigm mkN119" + } ; + +mkN120 : Str -> N ; +mkN120 base = + case base of { + base_1+"ggj" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ggj" ; + Acc => base_1+"ggj" ; + Dat => base_1+"ggi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ggj" ; + Acc => base_1+"ggj" ; + Dat => base_1+"ggjum" ; + Gen => base_1+"ggja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ggið" ; + Acc => base_1+"ggið" ; + Dat => base_1+"gginum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"ggini" ; + Acc => base_1+"ggini" ; + Dat => base_1+"ggjunum" ; + Gen => base_1+"ggjanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN120" + } ; + +mkN121 : Str -> N ; +mkN121 base = + case base of { + base_1+"ø"+base_2@("k"|(?+?)) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ini" ; + Acc => base_1+"ø"+base_2+"ini" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN121" + } ; + +mkN122 : Str -> N ; +mkN122 base = + case base of { + base_1+"ggj" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ggj" ; + Acc => base_1+"ggj" ; + Dat => base_1+"ggi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ggið" ; + Acc => base_1+"ggið" ; + Dat => base_1+"gginum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN122" + } ; + +mkN123 : Str -> N ; +mkN123 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"jar" + } ; + Pl => table { + Nom => base_1+"jar" ; + Acc => base_1+"jar" ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"jarins" + } ; + Pl => table { + Nom => base_1+"jarnir" ; + Acc => base_1+"jarnar" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN123" + } ; + +mkN124 : Str -> N ; +mkN124 base = + case base of { + base_1+"gv" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"gv" ; + Acc => base_1+"gv" ; + Dat => base_1+"gvi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"gvið" ; + Acc => base_1+"gvið" ; + Dat => base_1+"gvnum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN124" + } ; + +mkN125 : Str -> N ; +mkN125 base = + case base of { + base_1+"ø"+base_2@?+"u"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+base_3+"i" ; + Gen => base_1+"ø"+base_2+"u"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ir" ; + Acc => base_1+"a"+base_2+base_3+"ir" ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"u"+base_3+"in" ; + Acc => base_1+"ø"+base_2+"u"+base_3+"in" ; + Dat => base_1+"ø"+base_2+base_3+"inum" ; + Gen => base_1+"ø"+base_2+"u"+base_3+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"irnir" ; + Acc => base_1+"a"+base_2+base_3+"irnar" ; + Dat => base_1+"ø"+base_2+base_3+"unum" ; + Gen => base_1+"a"+base_2+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN125" + } ; + +mkN126 : Str -> N ; +mkN126 base = + case base of { + base_1+"a"+base_2@?+"a"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"a"+base_3 ; + Acc => base_1+"a"+base_2+"a"+base_3 ; + Dat => base_1+"a"+base_2+"a"+base_3+"i" ; + Gen => base_1+"a"+base_2+"a"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+"u"+base_3+"um" ; + Gen => base_1+"a"+base_2+"a"+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"a"+base_3+"ið" ; + Acc => base_1+"a"+base_2+"a"+base_3+"ið" ; + Dat => base_1+"a"+base_2+"a"+base_3+"inum" ; + Gen => base_1+"a"+base_2+"a"+base_3+"sins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+base_3+"ini" ; + Acc => base_1+"ø"+base_2+base_3+"ini" ; + Dat => base_1+"ø"+base_2+base_3+"unum" ; + Gen => base_1+"a"+base_2+"a"+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN126" + } ; + +mkN127 : Str -> N ; +mkN127 base = + case base of { + base_1+"u"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+base_2+"ar" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"u"+base_2+"in" ; + Acc => base_1+"u"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+base_2+"arins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN127" + } ; + +mkN128 : Str -> N ; +mkN128 base = + case base of { + base_1+"a"+base_2@?+"tur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"tur" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"a"+base_2+"ti" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"tar" ; + Acc => base_1+"a"+base_2+"tar" ; + Dat => base_1+"ø"+base_2+"tum" ; + Gen => base_1+"a"+base_2+"ta" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"turin" ; + Acc => base_1+"a"+base_2+"tin" ; + Dat => base_1+"a"+base_2+"tinum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"tarnir" ; + Acc => base_1+"a"+base_2+"tarnar" ; + Dat => base_1+"ø"+base_2+"tunum" ; + Gen => base_1+"a"+base_2+"tanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN128" + } ; + +mkN129 : Str -> N ; +mkN129 base = + case base of { + base_1+"a"+base_2@?+"kur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"kur" ; + Acc => base_1+"a"+base_2+"k" ; + Dat => base_1+"a"+base_2+"ki" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"kar" ; + Acc => base_1+"a"+base_2+"kar" ; + Dat => base_1+"ø"+base_2+"kum" ; + Gen => base_1+"a"+base_2+"ka" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"kurin" ; + Acc => base_1+"a"+base_2+"kin" ; + Dat => base_1+"a"+base_2+"kinum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"karnir" ; + Acc => base_1+"a"+base_2+"karnar" ; + Dat => base_1+"ø"+base_2+"kunum" ; + Gen => base_1+"a"+base_2+"kanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN129" + } ; + +mkN130 : Str -> N ; +mkN130 base = + case base of { + base_1+"a"+base_2@?+"pur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"pur" ; + Acc => base_1+"a"+base_2+"p" ; + Dat => base_1+"a"+base_2+"pi" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"par" ; + Acc => base_1+"a"+base_2+"par" ; + Dat => base_1+"ø"+base_2+"pum" ; + Gen => base_1+"a"+base_2+"pa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"purin" ; + Acc => base_1+"a"+base_2+"pin" ; + Dat => base_1+"a"+base_2+"pinum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"parnir" ; + Acc => base_1+"a"+base_2+"parnar" ; + Dat => base_1+"ø"+base_2+"punum" ; + Gen => base_1+"a"+base_2+"panna" + } + } + } + }; + _ => error "Can't apply paradigm mkN130" + } ; + +mkN131 : Str -> N ; +mkN131 base = + case base of { + base_1+"gj" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"gj" ; + Acc => base_1+"gj" ; + Dat => base_1+"gi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"gj" ; + Acc => base_1+"gj" ; + Dat => base_1+"gjum" ; + Gen => base_1+"gja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"gið" ; + Acc => base_1+"gið" ; + Dat => base_1+"num" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"gini" ; + Acc => base_1+"gini" ; + Dat => base_1+"gjunum" ; + Gen => base_1+"gjanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN131" + } ; + +mkN132 : Str -> N ; +mkN132 base = + case base of { + base_1+"úgv" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"úgv" ; + Acc => base_1+"úgv" ; + Dat => base_1+"úgv" ; + Gen => base_1+"úgvar" + } ; + Pl => table { + Nom => base_1+"ýr" ; + Acc => base_1+"ýr" ; + Dat => base_1+"úm" ; + Gen => base_1+"úgva" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"úgvin" ; + Acc => base_1+"únna" ; + Dat => base_1+"únni" ; + Gen => base_1+"úgvarinnar" + } ; + Pl => table { + Nom => base_1+"ýrnar" ; + Acc => base_1+"ýrnar" ; + Dat => base_1+"únum" ; + Gen => base_1+"úgvanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN132" + } ; + +mkN133 : Str -> N ; +mkN133 base = + case base of { + base_1+"ir" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"unum" ; + Gen => base_1+"anna" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN133" + } ; + +mkN134 : Str -> N ; +mkN134 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1 ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"ð" ; + Acc => base_1+"ð" ; + Dat => base_1+"num" ; + Gen => base_1+"ns" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN134" + } ; + +mkN135 : Str -> N ; +mkN135 base = + case base of { + base_1+"ó"+base_2@?+"i"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ó"+base_2+"i"+base_3 ; + Acc => base_1+"ó"+base_2+"u"+base_3 ; + Dat => base_1+"ó"+base_2+"u"+base_3 ; + Gen => base_1+"ó"+base_2+"u"+base_3 + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"ø"+base_2+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ó"+base_2+"i"+base_3+"in" ; + Acc => base_1+"ó"+base_2+"u"+base_3+"ina" ; + Dat => base_1+"ó"+base_2+"u"+base_3+"ini" ; + Gen => base_1+"ó"+base_2+"u"+base_3+"innar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3+"nar" ; + Acc => base_1+"ø"+base_2+"u"+base_3+"nar" ; + Dat => base_1+"ø"+base_2+base_3+"unum" ; + Gen => base_1+"ø"+base_2+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN135" + } ; + +mkN136 : Str -> N ; +mkN136 base = + case base of { + base_1+"tu"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"tu"+base_2 ; + Acc => base_1+"tu"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"tu"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"tu"+base_2+"in" ; + Acc => base_1+"tu"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"tu"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN136" + } ; + +mkN137 : Str -> N ; +mkN137 base = + case base of { + base_1+"á"+base_2@?+"t" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"á"+base_2+"t" ; + Acc => base_1+"á"+base_2+"t" ; + Dat => base_1+"á"+base_2+"t" ; + Gen => base_1+"á"+base_2+"tar" + } ; + Pl => table { + Nom => base_1+"æ"+base_2+"ur" ; + Acc => base_1+"æ"+base_2+"ur" ; + Dat => base_1+"á"+base_2+"tum" ; + Gen => base_1+"á"+base_2+"ta" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"á"+base_2+"tin" ; + Acc => base_1+"á"+base_2+"tina" ; + Dat => base_1+"á"+base_2+"tini" ; + Gen => base_1+"á"+base_2+"tarinnar" + } ; + Pl => table { + Nom => base_1+"æ"+base_2+"urnar" ; + Acc => base_1+"á"+base_2+"turnar" ; + Dat => base_1+"á"+base_2+"tunum" ; + Gen => base_1+"á"+base_2+"tanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN137" + } ; + +mkN138 : Str -> N ; +mkN138 base = + case base of { + base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"inum" ; + Gen => base_1+"ins" + } ; + Pl => table { + Nom => base_1+"ini" ; + Acc => base_1+"ini" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN138" + } ; + +mkN139 : Str -> N ; +mkN139 base = + case base of { + base_1@?+"ø"+base_2 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"in" ; + Acc => base_1+"ø"+base_2+"ina" ; + Dat => base_1+"ø"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"arnar" ; + Acc => base_1+"a"+base_2+"arnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN139" + } ; + +mkN140 : Str -> N ; +mkN140 base = + case base of { + base_1+"ma"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ma"+base_2 ; + Acc => base_1+"ma"+base_2 ; + Dat => base_1+"ma"+base_2+"i" ; + Gen => base_1+"ma"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"mu"+base_2 ; + Acc => base_1+"mu"+base_2 ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ma"+base_2+"ið" ; + Acc => base_1+"ma"+base_2+"ið" ; + Dat => base_1+"ma"+base_2+"inum" ; + Gen => base_1+"ma"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"ini" ; + Acc => base_1+"mu"+base_2+"ini" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN140" + } ; + +mkN141 : Str -> N ; +mkN141 base = + case base of { + base_1+"dur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"dur" ; + Acc => base_1+"d" ; + Dat => base_1+"di" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"dar" ; + Acc => base_1+"dar" ; + Dat => base_1+"dum" ; + Gen => base_1+"da" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"durin" ; + Acc => base_1+"din" ; + Dat => base_1+"dinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"darnir" ; + Acc => base_1+"darnar" ; + Dat => base_1+"dunum" ; + Gen => base_1+"danna" + } + } + } + }; + _ => error "Can't apply paradigm mkN141" + } ; + +mkN142 : Str -> N ; +mkN142 base = + case base of { + "ø"+base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => "ø"+base_1 ; + Acc => "ø"+base_1 ; + Dat => "ø"+base_1 ; + Gen => "a"+base_1+"ar" + } ; + Pl => table { + Nom => "ø"+base_1+"ir" ; + Acc => "ø"+base_1+"ir" ; + Dat => "ø"+base_1+"um" ; + Gen => "a"+base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => "ø"+base_1+"in" ; + Acc => "ø"+base_1+"ina" ; + Dat => "ø"+base_1+"ini" ; + Gen => "a"+base_1+"arinnar" + } ; + Pl => table { + Nom => "ø"+base_1+"irnar" ; + Acc => "ø"+base_1+"irnar" ; + Dat => "ø"+base_1+"unum" ; + Gen => "a"+base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN142" + } ; + +mkN143 : Str -> N ; +mkN143 base = + case base of { + "o"+base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => "o"+base_1 ; + Acc => "o"+base_1 ; + Dat => "o"+base_1 ; + Gen => "a"+base_1+"ar" + } ; + Pl => table { + Nom => "a"+base_1+"ir" ; + Acc => "a"+base_1+"ir" ; + Dat => "o"+base_1+"um" ; + Gen => "a"+base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => "o"+base_1+"in" ; + Acc => "o"+base_1+"ina" ; + Dat => "o"+base_1+"ini" ; + Gen => "a"+base_1+"arinnar" + } ; + Pl => table { + Nom => "a"+base_1+"irnar" ; + Acc => "a"+base_1+"irnar" ; + Dat => "o"+base_1+"unum" ; + Gen => "a"+base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN143" + } ; + +mkN144 : Str -> N ; +mkN144 base = + case base of { + "ø"+base_1 => lin N + { s = table { + Indef => table { + Sg => table { + Nom => "ø"+base_1 ; + Acc => "ø"+base_1 ; + Dat => "ø"+base_1 ; + Gen => "a"+base_1+"ar" + } ; + Pl => table { + Nom => "a"+base_1+"ir" ; + Acc => "a"+base_1+"ir" ; + Dat => "ø"+base_1+"um" ; + Gen => "a"+base_1+"a" + } + } ; + Def => table { + Sg => table { + Nom => "ø"+base_1+"in" ; + Acc => "ø"+base_1+"ina" ; + Dat => "ø"+base_1+"ini" ; + Gen => "a"+base_1+"arinnar" + } ; + Pl => table { + Nom => "a"+base_1+"irnar" ; + Acc => "a"+base_1+"irnar" ; + Dat => "ø"+base_1+"unum" ; + Gen => "a"+base_1+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN144" + } ; + +mkN145 : Str -> N ; +mkN145 base = + case base of { + base_1+"p" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"p" ; + Acc => base_1+"p" ; + Dat => base_1+"pi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"pið" ; + Acc => base_1+"pið" ; + Dat => base_1+"pinum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN145" + } ; + +mkN146 : Str -> N ; +mkN146 base = + case base of { + base_1+"kur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"kur" ; + Acc => base_1+"k" ; + Dat => base_1+"ki" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"kurin" ; + Acc => base_1+"kin" ; + Dat => base_1+"kinum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN146" + } ; + +mkN147 : Str -> N ; +mkN147 base = + case base of { + base_1+"pur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"pur" ; + Acc => base_1+"p" ; + Dat => base_1+"pi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"purin" ; + Acc => base_1+"pin" ; + Dat => base_1+"pinum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN147" + } ; + +mkN148 : Str -> N ; +mkN148 base = + case base of { + base_1+"g"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"g"+base_2 ; + Acc => base_1+"g"+base_2 ; + Dat => base_1+"g"+base_2+"i" ; + Gen => base_1+base_2+"s" + } ; + Pl => table { + Nom => base_1+"g"+base_2 ; + Acc => base_1+"g"+base_2 ; + Dat => base_1+"g"+base_2+"um" ; + Gen => base_1+"g"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"g"+base_2+"ið" ; + Acc => base_1+"g"+base_2+"ið" ; + Dat => base_1+"g"+base_2+"num" ; + Gen => base_1+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"g"+base_2+"ini" ; + Acc => base_1+"g"+base_2+"ini" ; + Dat => base_1+"g"+base_2+"unum" ; + Gen => base_1+"g"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN148" + } ; + +mkN149 : Str -> N ; +mkN149 base = + case base of { + base_1+"lur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"lur" ; + Acc => base_1+"l" ; + Dat => base_1+"li" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"lar" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"lurin" ; + Acc => base_1+"lin" ; + Dat => base_1+"linum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"larnir" ; + Acc => base_1+"larnar" ; + Dat => base_1+"lunum" ; + Gen => base_1+"lanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN149" + } ; + +mkN150 : Str -> N ; +mkN150 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"jar" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"jarins" + } ; + Pl => table { + Nom => base_1+"irnir" ; + Acc => base_1+"irnar" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN150" + } ; + +mkN151 : Str -> N ; +mkN151 base = + case base of { + base_1+"a"+base_2@(?+?)+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"a"+base_2+"i" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ir" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"urin" ; + Acc => base_1+"a"+base_2+"in" ; + Dat => base_1+"a"+base_2+"inum" ; + Gen => base_1+"a"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"irnir" ; + Acc => base_1+"a"+base_2+"irnar" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN151" + } ; + +mkN152 : Str -> N ; +mkN152 base = + case base of { + base_1+"n" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"n" ; + Acc => base_1+"n" ; + Dat => base_1+"ni" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"n" ; + Acc => base_1+"n" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"nið" ; + Acc => base_1+"nið" ; + Dat => base_1+"ninum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"nini" ; + Acc => base_1+"nini" ; + Dat => base_1+"nunum" ; + Gen => base_1+"nanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN152" + } ; + +mkN153 : Str -> N ; +mkN153 base = + case base of { + base_1+"gvur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"gvur" ; + Acc => base_1+"gv" ; + Dat => base_1+"gvi" ; + Gen => base_1+"var" + } ; + Pl => table { + Nom => base_1+"gvar" ; + Acc => base_1+"gvar" ; + Dat => base_1+"gvum" ; + Gen => base_1+"gva" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"gvurin" ; + Acc => base_1+"gvin" ; + Dat => base_1+"num" ; + Gen => base_1+"varins" + } ; + Pl => table { + Nom => base_1+"gvarnir" ; + Acc => base_1+"gvarnar" ; + Dat => base_1+"gvunum" ; + Gen => base_1+"gvanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN153" + } ; + +mkN154 : Str -> N ; +mkN154 base = + case base of { + base_1+"g" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"g" ; + Acc => base_1+"g" ; + Dat => base_1+"gi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"g" ; + Acc => base_1+"g" ; + Dat => base_1+"gum" ; + Gen => base_1+"ga" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"gið" ; + Acc => base_1+"gið" ; + Dat => base_1+"ginum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"gini" ; + Acc => base_1+"gini" ; + Dat => base_1+"gunum" ; + Gen => base_1+"ganna" + } + } + } + }; + _ => error "Can't apply paradigm mkN154" + } ; + +mkN155 : Str -> N ; +mkN155 base = + case base of { + base_1+"t" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"ti" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"tum" ; + Gen => base_1+"ta" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"tið" ; + Acc => base_1+"tið" ; + Dat => base_1+"tinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"tini" ; + Acc => base_1+"tini" ; + Dat => base_1+"tunum" ; + Gen => base_1+"tanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN155" + } ; + +mkN156 : Str -> N ; +mkN156 base = + case base of { + base_1+"gvur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"gvur" ; + Acc => base_1+"gv" ; + Dat => base_1+"gvi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"gvurin" ; + Acc => base_1+"gvin" ; + Dat => base_1+"gvinum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN156" + } ; + +mkN157 : Str -> N ; +mkN157 base = + case base of { + base_1+"o"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"o"+base_2 ; + Gen => base_1+"ei"+base_2+"jar" + } ; + Pl => table { + Nom => base_1+"ei"+base_2+"ir" ; + Acc => base_1+"ei"+base_2+"ir" ; + Dat => base_1+"ei"+base_2+"jum" ; + Gen => base_1+"ei"+base_2+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"o"+base_2+"in" ; + Acc => base_1+"o"+base_2+"ina" ; + Dat => base_1+"o"+base_2+"ini" ; + Gen => base_1+"ei"+base_2+"jarrinar" + } ; + Pl => table { + Nom => base_1+"ei"+base_2+"irnar" ; + Acc => base_1+"ei"+base_2+"irnar" ; + Dat => base_1+"ei"+base_2+"junum" ; + Gen => base_1+"ei"+base_2+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN157" + } ; + +mkN158 : Str -> N ; +mkN158 base = + case base of { + base_1+"ó"+base_2@?+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ó"+base_2+"ur" ; + Acc => base_1+"ó"+base_2 ; + Dat => base_1+"ó"+base_2+"i" ; + Gen => base_1+"ó"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"ir" ; + Acc => base_1+"ø"+base_2+"ir" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"ó"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ó"+base_2+"urin" ; + Acc => base_1+"ó"+base_2+"in" ; + Dat => base_1+"ó"+base_2+"inum" ; + Gen => base_1+"ó"+base_2+"arins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"irnir" ; + Acc => base_1+"ø"+base_2+"irnar" ; + Dat => base_1+"ø"+base_2+"unum" ; + Gen => base_1+"ó"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN158" + } ; + +mkN159 : Str -> N ; +mkN159 base = + case base of { + base_1+"ma"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ma"+base_2 ; + Acc => base_1+"ma"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"ma"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"mu"+base_2 ; + Acc => base_1+"mu"+base_2 ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+base_2+"ið" ; + Acc => base_1+base_2+"ið" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"ma"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"ini" ; + Acc => base_1+base_2+"ini" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN159" + } ; + +mkN160 : Str -> N ; +mkN160 base = + case base of { + base_1+"pur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"pur" ; + Acc => base_1+"p" ; + Dat => base_1+"pi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"pir" ; + Acc => base_1+"pir" ; + Dat => base_1+"pum" ; + Gen => base_1+"pa" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"purin" ; + Acc => base_1+"pin" ; + Dat => base_1+"pinum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"pirnir" ; + Acc => base_1+"pirnar" ; + Dat => base_1+"punum" ; + Gen => base_1+"panna" + } + } + } + }; + _ => error "Can't apply paradigm mkN160" + } ; + +mkN161 : Str -> N ; +mkN161 base = + case base of { + base_1+"i"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"i"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+"u"+base_2 ; + Gen => base_1+"u"+base_2 + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"i"+base_2+"in" ; + Acc => base_1+base_2+"ina" ; + Dat => base_1+base_2+"ini" ; + Gen => base_1+"u"+base_2+"innar" + } ; + Pl => table { + Nom => base_1+base_2+"arnar" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN161" + } ; + +mkN162 : Str -> N ; +mkN162 base = + case base of { + base_1+"a"+base_2@(?+?)+"i" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"a"+base_2+"i" ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"a" ; + Gen => base_1+"a"+base_2+"a" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"a"+base_2+"in" ; + Acc => base_1+"a"+base_2+"an" ; + Dat => base_1+"a"+base_2+"anum" ; + Gen => base_1+"a"+base_2+"ans" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"arnir" ; + Acc => base_1+"a"+base_2+"arnar" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN162" + } ; + +mkN163 : Str -> N ; +mkN163 base = + case base of { + base_1+"k" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"k" ; + Acc => base_1+"k" ; + Dat => base_1+"ki" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"kið" ; + Acc => base_1+"kið" ; + Dat => base_1+"kinum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN163" + } ; + +mkN164 : Str -> N ; +mkN164 base = + case base of { + base_1+"g" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"g" ; + Acc => base_1+"g" ; + Dat => base_1+"gi" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"g" ; + Acc => base_1+"g" ; + Dat => base_1+"gjum" ; + Gen => base_1+"gja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"gið" ; + Acc => base_1+"gið" ; + Dat => base_1+"ginum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"gini" ; + Acc => base_1+"gini" ; + Dat => base_1+"gjunum" ; + Gen => base_1+"gjanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN164" + } ; + +mkN165 : Str -> N ; +mkN165 base = + case base of { + base_1+"o"+base_2@(?+?) => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"o"+base_2 ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"e"+base_2 ; + Acc => base_1+"e"+base_2 ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"o"+base_2+"in" ; + Acc => base_1+"o"+base_2+"ina" ; + Dat => base_1+"o"+base_2+"ini" ; + Gen => base_1+"a"+base_2+"arinnar" + } ; + Pl => table { + Nom => base_1+"e"+base_2+"inar" ; + Acc => base_1+"e"+base_2+"inar" ; + Dat => base_1+"o"+base_2+"unum" ; + Gen => base_1+"a"+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN165" + } ; + +mkN166 : Str -> N ; +mkN166 base = + case base of { + base_1+"gv" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"gv" ; + Acc => base_1+"gv" ; + Dat => base_1+"gv" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"gvir" ; + Acc => base_1+"gvir" ; + Dat => base_1+"gvum" ; + Gen => base_1+"gva" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"gvin" ; + Acc => base_1+"nna" ; + Dat => base_1+"nni" ; + Gen => base_1+"arinnar" + } ; + Pl => table { + Nom => base_1+"gvirnar" ; + Acc => base_1+"gvirnar" ; + Dat => base_1+"gvunum" ; + Gen => base_1+"gvanna" + } + } + } + }; + _ => error "Can't apply paradigm mkN166" + } ; + +mkN167 : Str -> N ; +mkN167 base = + case base of { + base_1+"ni"+base_2@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ni"+base_2 ; + Acc => base_1+"ni"+base_2 ; + Dat => base_1+base_2+"i" ; + Gen => base_1+"ni"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ni"+base_2+"in" ; + Acc => base_1+"ni"+base_2+"in" ; + Dat => base_1+base_2+"inum" ; + Gen => base_1+"ni"+base_2+"sins" + } ; + Pl => table { + Nom => base_1+base_2+"arnir" ; + Acc => base_1+base_2+"arnar" ; + Dat => base_1+base_2+"unum" ; + Gen => base_1+base_2+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN167" + } ; + +mkN168 : Str -> N ; +mkN168 base = + case base of { + base_1+"ur" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1 ; + Dat => base_1+"i" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ir" ; + Dat => base_1+"jum" ; + Gen => base_1+"ja" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"urin" ; + Acc => base_1+"in" ; + Dat => base_1+"inum" ; + Gen => base_1+"sins" + } ; + Pl => table { + Nom => base_1+"irnir" ; + Acc => base_1+"irnar" ; + Dat => base_1+"junum" ; + Gen => base_1+"janna" + } + } + } + }; + _ => error "Can't apply paradigm mkN168" + } ; + +mkN169 : Str -> N ; +mkN169 base = + case base of { + base_1+"l" => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"l" ; + Acc => base_1+"l" ; + Dat => base_1+"li" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"lið" ; + Acc => base_1+"lið" ; + Dat => base_1+"linum" ; + Gen => base_1+"sins" + } + } ; + Def => table { + Sg => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } ; + Pl => table { + Nom => nonExist ; + Acc => nonExist ; + Dat => nonExist ; + Gen => nonExist + } + } + } + }; + _ => error "Can't apply paradigm mkN169" + } ; + +mkN170 : Str -> N ; +mkN170 base = + case base of { + base_1+"ø"+base_2@(?+?+?)+"u"+base_3@? => lin N + { s = table { + Indef => table { + Sg => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+base_3+"i" ; + Gen => base_1+"a"+base_2+base_3+"ar" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+base_3+"ir" ; + Acc => base_1+"ø"+base_2+base_3+"ir" ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Def => table { + Sg => table { + Nom => base_1+"ø"+base_2+"u"+base_3+"in" ; + Acc => base_1+"ø"+base_2+"u"+base_3+"in" ; + Dat => base_1+"ø"+base_2+base_3+"inum" ; + Gen => base_1+"a"+base_2+base_3+"arins" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+base_3+"irnir" ; + Acc => base_1+"ø"+base_2+base_3+"irnar" ; + Dat => base_1+"ø"+base_2+base_3+"unum" ; + Gen => base_1+"a"+base_2+base_3+"anna" + } + } + } + }; + _ => error "Can't apply paradigm mkN170" + } ; + +mkA001 : Str -> A ; +mkA001 base = + case base of { + base_1+"dur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"dur" ; + Acc => base_1+"dan" ; + Dat => base_1+"dum" ; + Gen => base_1+"ds" + } ; + Pl => table { + Nom => base_1+"dir" ; + Acc => base_1+"dar" ; + Dat => base_1+"dum" ; + Gen => base_1+"da" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"d" ; + Acc => base_1+"da" ; + Dat => base_1+"dari" ; + Gen => base_1+"dar" + } ; + Pl => table { + Nom => base_1+"dar" ; + Acc => base_1+"dar" ; + Dat => base_1+"dum" ; + Gen => base_1+"da" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"dum" ; + Gen => base_1+"ds" + } ; + Pl => table { + Nom => base_1+"d" ; + Acc => base_1+"d" ; + Dat => base_1+"dum" ; + Gen => base_1+"da" + } + } + } + }; + _ => error "Can't apply paradigm mkA001" + } ; + +mkA002 : Str -> A ; +mkA002 base = + case base of { + base_1+"a"+base_2@(?+?)+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2+"an" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"ari" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2 ; + Acc => base_1+"a"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA002" + } ; + +mkA003 : Str -> A ; +mkA003 base = + case base of { + base_1+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1+"an" ; + Dat => base_1+"um" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1 ; + Acc => base_1+"a" ; + Dat => base_1+"ari" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA003" + } ; + +mkA004 : Str -> A ; +mkA004 base = + case base of { + base_1+"a"+base_2@?+"u"+base_3@? => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"u"+base_3 ; + Acc => base_1+"a"+base_2+base_3+"an" ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+"u"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ir" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"a"+base_2+base_3+"a" ; + Dat => base_1+"a"+base_2+base_3+"ari" ; + Gen => base_1+"a"+base_2+base_3+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ar" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"u"+base_3+"t" ; + Acc => base_1+"a"+base_2+"u"+base_3+"t" ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+"u"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"u"+base_3 ; + Acc => base_1+"ø"+base_2+"u"+base_3 ; + Dat => base_1+"ø"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA004" + } ; + +mkA005 : Str -> A ; +mkA005 base = + case base of { + "a"+base_1+"lur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => "a"+base_1+"lur" ; + Acc => "a"+base_1+"lan" ; + Dat => "ø"+base_1+"lum" ; + Gen => "a"+base_1+"s" + } ; + Pl => table { + Nom => "a"+base_1+"lir" ; + Acc => "a"+base_1+"lar" ; + Dat => "ø"+base_1+"lum" ; + Gen => "a"+base_1+"la" + } + } ; + Fem => table { + Sg => table { + Nom => "ø"+base_1+"l" ; + Acc => "a"+base_1+"la" ; + Dat => "a"+base_1+"lari" ; + Gen => "a"+base_1+"lar" + } ; + Pl => table { + Nom => "a"+base_1+"lar" ; + Acc => "a"+base_1+"lar" ; + Dat => "ø"+base_1+"lum" ; + Gen => "a"+base_1+"la" + } + } ; + Neutr => table { + Sg => table { + Nom => "a"+base_1+"t" ; + Acc => "a"+base_1+"t" ; + Dat => "ø"+base_1+"lum" ; + Gen => "a"+base_1+"s" + } ; + Pl => table { + Nom => "ø"+base_1+"l" ; + Acc => "ø"+base_1+"l" ; + Dat => "ø"+base_1+"lum" ; + Gen => "a"+base_1+"la" + } + } + } + }; + _ => error "Can't apply paradigm mkA005" + } ; + +mkA006 : Str -> A ; +mkA006 base = + case base of { + base_1+"nur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"nur" ; + Acc => base_1+"nan" ; + Dat => base_1+"num" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"nir" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"n" ; + Acc => base_1+"na" ; + Dat => base_1+"nari" ; + Gen => base_1+"nar" + } ; + Pl => table { + Nom => base_1+"nar" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"num" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"n" ; + Acc => base_1+"n" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } + } + }; + _ => error "Can't apply paradigm mkA006" + } ; + +mkA007 : Str -> A ; +mkA007 base = + case base of { + base_1+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1+"an" ; + Dat => base_1+"um" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1 ; + Acc => base_1+"a" ; + Dat => base_1+"ari" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"um" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA007" + } ; + +mkA008 : Str -> A ; +mkA008 base = + case base of { + base_1+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1+"an" ; + Dat => base_1+"um" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1 ; + Acc => base_1+"a" ; + Dat => base_1+"ari" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"um" ; + Gen => base_1 + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA008" + } ; + +mkA009 : Str -> A ; +mkA009 base = + case base of { + base_1+"in" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"nan" ; + Dat => base_1+"num" ; + Gen => base_1+"ins" + } ; + Pl => table { + Nom => base_1+"nir" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"in" ; + Acc => base_1+"na" ; + Dat => base_1+"nari" ; + Gen => base_1+"nar" + } ; + Pl => table { + Nom => base_1+"nar" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"num" ; + Gen => base_1+"ins" + } ; + Pl => table { + Nom => base_1+"in" ; + Acc => base_1+"in" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } + } + }; + _ => error "Can't apply paradigm mkA009" + } ; + +mkA010 : Str -> A ; +mkA010 base = + case base of { + base_1+"ður" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ður" ; + Acc => base_1+"ðan" ; + Dat => base_1+"ðum" ; + Gen => base_1+"ðs" + } ; + Pl => table { + Nom => base_1+"ðir" ; + Acc => base_1+"ðar" ; + Dat => base_1+"ðum" ; + Gen => base_1+"ða" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ð" ; + Acc => base_1+"ða" ; + Dat => base_1+"ðari" ; + Gen => base_1+"ðar" + } ; + Pl => table { + Nom => base_1+"ðar" ; + Acc => base_1+"ðar" ; + Dat => base_1+"ðum" ; + Gen => base_1+"ða" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"tt" ; + Acc => base_1+"tt" ; + Dat => base_1+"ðum" ; + Gen => base_1+"ðs" + } ; + Pl => table { + Nom => base_1+"ð" ; + Acc => base_1+"ð" ; + Dat => base_1+"ðum" ; + Gen => base_1+"ða" + } + } + } + }; + _ => error "Can't apply paradigm mkA010" + } ; + +mkA011 : Str -> A ; +mkA011 base = + case base of { + base_1+"tur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"tur" ; + Acc => base_1+"tan" ; + Dat => base_1+"tum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"tir" ; + Acc => base_1+"tar" ; + Dat => base_1+"tum" ; + Gen => base_1+"ta" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"ta" ; + Dat => base_1+"tari" ; + Gen => base_1+"tar" + } ; + Pl => table { + Nom => base_1+"tar" ; + Acc => base_1+"tar" ; + Dat => base_1+"tum" ; + Gen => base_1+"ta" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"tum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"tum" ; + Gen => base_1+"ta" + } + } + } + }; + _ => error "Can't apply paradigm mkA011" + } ; + +mkA012 : Str -> A ; +mkA012 base = + case base of { + base_1+"gvin" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"gvin" ; + Acc => base_1+"nan" ; + Dat => base_1+"num" ; + Gen => base_1+"gvins" + } ; + Pl => table { + Nom => base_1+"nir" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"gvin" ; + Acc => base_1+"na" ; + Dat => base_1+"nari" ; + Gen => base_1+"nar" + } ; + Pl => table { + Nom => base_1+"nar" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"gvið" ; + Acc => base_1+"gvið" ; + Dat => base_1+"num" ; + Gen => base_1+"gvins" + } ; + Pl => table { + Nom => base_1+"gvin" ; + Acc => base_1+"gvin" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } + } + }; + _ => error "Can't apply paradigm mkA012" + } ; + +mkA013 : Str -> A ; +mkA013 base = + case base of { + base_1+"gur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"gur" ; + Acc => base_1+"gan" ; + Dat => base_1+"gum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"gir" ; + Acc => base_1+"gar" ; + Dat => base_1+"gum" ; + Gen => base_1+"ga" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"g" ; + Acc => base_1+"ga" ; + Dat => base_1+"gari" ; + Gen => base_1+"gar" + } ; + Pl => table { + Nom => base_1+"gar" ; + Acc => base_1+"gar" ; + Dat => base_1+"gum" ; + Gen => base_1+"ga" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"gum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"g" ; + Acc => base_1+"g" ; + Dat => base_1+"gum" ; + Gen => base_1+"ga" + } + } + } + }; + _ => error "Can't apply paradigm mkA013" + } ; + +mkA014 : Str -> A ; +mkA014 base = + case base of { + base_1+"ddur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ddur" ; + Acc => base_1+"ddan" ; + Dat => base_1+"ddum" ; + Gen => base_1+"øs" + } ; + Pl => table { + Nom => base_1+"ddir" ; + Acc => base_1+"ddar" ; + Dat => base_1+"ddum" ; + Gen => base_1+"dda" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"dd" ; + Acc => base_1+"dda" ; + Dat => base_1+"ddari" ; + Gen => base_1+"ddar" + } ; + Pl => table { + Nom => base_1+"ddar" ; + Acc => base_1+"ddar" ; + Dat => base_1+"ddum" ; + Gen => base_1+"dda" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"tt" ; + Acc => base_1+"tt" ; + Dat => base_1+"ddum" ; + Gen => base_1+"øs" + } ; + Pl => table { + Nom => base_1+"dd" ; + Acc => base_1+"dd" ; + Dat => base_1+"ddum" ; + Gen => base_1+"dda" + } + } + } + }; + _ => error "Can't apply paradigm mkA014" + } ; + +mkA015 : Str -> A ; +mkA015 base = + case base of { + base_1+"a"+base_2@("ng"|"m"|(?+?+?))+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2+"an" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"ari" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"t" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"o"+base_2 ; + Acc => base_1+"o"+base_2 ; + Dat => base_1+"o"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA015" + } ; + +mkA016 : Str -> A ; +mkA016 base = + case base of { + base_1+"mur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"mur" ; + Acc => base_1+"man" ; + Dat => base_1+"mum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"mir" ; + Acc => base_1+"mar" ; + Dat => base_1+"mum" ; + Gen => base_1+"madimra" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"m" ; + Acc => base_1+"ma" ; + Dat => base_1+"mari" ; + Gen => base_1+"mar" + } ; + Pl => table { + Nom => base_1+"mar" ; + Acc => base_1+"mar" ; + Dat => base_1+"mum" ; + Gen => base_1+"madimra" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"mum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"m" ; + Acc => base_1+"m" ; + Dat => base_1+"mum" ; + Gen => base_1+"madimra" + } + } + } + }; + _ => error "Can't apply paradigm mkA016" + } ; + +mkA017 : Str -> A ; +mkA017 base = + case base of { + base_1+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ur" ; + Acc => base_1+"an" ; + Dat => base_1+"um" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ir" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1 ; + Acc => base_1+"a" ; + Dat => base_1+"ari" ; + Gen => base_1+"ar" + } ; + Pl => table { + Nom => base_1+"ar" ; + Acc => base_1+"ar" ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"tt" ; + Acc => base_1+"tt" ; + Dat => base_1+"um" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1 ; + Acc => base_1 ; + Dat => base_1+"um" ; + Gen => base_1+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA017" + } ; + +mkA018 : Str -> A ; +mkA018 base = + case base of { + base_1+"kur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"kur" ; + Acc => base_1+"kan" ; + Dat => base_1+"kum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"kir" ; + Acc => base_1+"kar" ; + Dat => base_1+"kum" ; + Gen => base_1+"kadøkra" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"k" ; + Acc => base_1+"ka" ; + Dat => base_1+"kari" ; + Gen => base_1+"kar" + } ; + Pl => table { + Nom => base_1+"kar" ; + Acc => base_1+"kar" ; + Dat => base_1+"kum" ; + Gen => base_1+"kadøkra" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"kum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"k" ; + Acc => base_1+"k" ; + Dat => base_1+"kum" ; + Gen => base_1+"kadøkra" + } + } + } + }; + _ => error "Can't apply paradigm mkA018" + } ; + +mkA019 : Str -> A ; +mkA019 base = + case base of { + base_1+"tin" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"tin" ; + Acc => base_1+"nan" ; + Dat => base_1+"num" ; + Gen => base_1+"tins" + } ; + Pl => table { + Nom => base_1+"nir" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"tin" ; + Acc => base_1+"na" ; + Dat => base_1+"nari" ; + Gen => base_1+"nar" + } ; + Pl => table { + Nom => base_1+"nar" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"tið" ; + Acc => base_1+"tið" ; + Dat => base_1+"num" ; + Gen => base_1+"tins" + } ; + Pl => table { + Nom => base_1+"tin" ; + Acc => base_1+"tin" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } + } + }; + _ => error "Can't apply paradigm mkA019" + } ; + +mkA020 : Str -> A ; +mkA020 base = + case base of { + base_1+"a"+base_2@?+"dur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"dur" ; + Acc => base_1+"a"+base_2+"dan" ; + Dat => base_1+"ø"+base_2+"dum" ; + Gen => base_1+"a"+base_2+"ds" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"dir" ; + Acc => base_1+"a"+base_2+"dar" ; + Dat => base_1+"ø"+base_2+"dum" ; + Gen => base_1+"a"+base_2+"da" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2+"d" ; + Acc => base_1+"a"+base_2+"da" ; + Dat => base_1+"a"+base_2+"dari" ; + Gen => base_1+"a"+base_2+"dar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"dar" ; + Acc => base_1+"a"+base_2+"dar" ; + Dat => base_1+"ø"+base_2+"dum" ; + Gen => base_1+"a"+base_2+"da" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"t" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"ø"+base_2+"dum" ; + Gen => base_1+"a"+base_2+"ds" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"d" ; + Acc => base_1+"ø"+base_2+"d" ; + Dat => base_1+"ø"+base_2+"dum" ; + Gen => base_1+"a"+base_2+"da" + } + } + } + }; + _ => error "Can't apply paradigm mkA020" + } ; + +mkA021 : Str -> A ; +mkA021 base = + case base of { + base_1+"a"+base_2@?+"lur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"lur" ; + Acc => base_1+"a"+base_2+"lan" ; + Dat => base_1+"ø"+base_2+"lum" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"lir" ; + Acc => base_1+"a"+base_2+"lar" ; + Dat => base_1+"ø"+base_2+"lum" ; + Gen => base_1+"a"+base_2+"la" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2+"l" ; + Acc => base_1+"a"+base_2+"la" ; + Dat => base_1+"a"+base_2+"lari" ; + Gen => base_1+"a"+base_2+"lar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"lar" ; + Acc => base_1+"a"+base_2+"lar" ; + Dat => base_1+"ø"+base_2+"lum" ; + Gen => base_1+"a"+base_2+"la" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"t" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"ø"+base_2+"lum" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"l" ; + Acc => base_1+"ø"+base_2+"l" ; + Dat => base_1+"ø"+base_2+"lum" ; + Gen => base_1+"a"+base_2+"la" + } + } + } + }; + _ => error "Can't apply paradigm mkA021" + } ; + +mkA022 : Str -> A ; +mkA022 base = + case base of { + base_1+"a"+base_2@?+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2+"an" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"ari" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"t" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA022" + } ; + +mkA023 : Str -> A ; +mkA023 base = + case base of { + base_1+"rin" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"rin" ; + Acc => base_1+"nan" ; + Dat => base_1+"num" ; + Gen => base_1+"rins" + } ; + Pl => table { + Nom => base_1+"nir" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"rin" ; + Acc => base_1+"na" ; + Dat => base_1+"nari" ; + Gen => base_1+"nar" + } ; + Pl => table { + Nom => base_1+"nar" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"rið" ; + Acc => base_1+"rið" ; + Dat => base_1+"num" ; + Gen => base_1+"rins" + } ; + Pl => table { + Nom => base_1+"rin" ; + Acc => base_1+"rin" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } + } + }; + _ => error "Can't apply paradigm mkA023" + } ; + +mkA024 : Str -> A ; +mkA024 base = + case base of { + base_1+"lur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"lur" ; + Acc => base_1+"lan" ; + Dat => base_1+"lum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"lir" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"lafulra" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"l" ; + Acc => base_1+"la" ; + Dat => base_1+"lari" ; + Gen => base_1+"lar" + } ; + Pl => table { + Nom => base_1+"lar" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"lafulra" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"lum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"l" ; + Acc => base_1+"l" ; + Dat => base_1+"lum" ; + Gen => base_1+"lafulra" + } + } + } + }; + _ => error "Can't apply paradigm mkA024" + } ; + +mkA025 : Str -> A ; +mkA025 base = + case base of { + base_1+"a"+base_2@?+"a"+base_3@? => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"a"+base_3 ; + Acc => base_1+"a"+base_2+base_3+"an" ; + Dat => base_1+"o"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+"a"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ir" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"o"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"o"+base_2+"u"+base_3 ; + Acc => base_1+"a"+base_2+base_3+"a" ; + Dat => base_1+"a"+base_2+base_3+"ari" ; + Gen => base_1+"a"+base_2+base_3+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ar" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"o"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"a"+base_3+"t" ; + Acc => base_1+"a"+base_2+"a"+base_3+"t" ; + Dat => base_1+"o"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"s" + } ; + Pl => table { + Nom => base_1+"o"+base_2+"u"+base_3 ; + Acc => base_1+"o"+base_2+"u"+base_3 ; + Dat => base_1+"o"+base_2+base_3+"um" ; + Gen => base_1+"a"+base_2+base_3+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA025" + } ; + +mkA026 : Str -> A ; +mkA026 base = + case base of { + base_1+"óður" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"óður" ; + Acc => base_1+"óðan" ; + Dat => base_1+"óðum" ; + Gen => base_1+"óðs" + } ; + Pl => table { + Nom => base_1+"óðir" ; + Acc => base_1+"óðar" ; + Dat => base_1+"óðum" ; + Gen => base_1+"óða" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"óð" ; + Acc => base_1+"óða" ; + Dat => base_1+"óðari" ; + Gen => base_1+"óðar" + } ; + Pl => table { + Nom => base_1+"óðar" ; + Acc => base_1+"óðar" ; + Dat => base_1+"óðum" ; + Gen => base_1+"óða" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"ott" ; + Acc => base_1+"ott" ; + Dat => base_1+"óðum" ; + Gen => base_1+"óðs" + } ; + Pl => table { + Nom => base_1+"óð" ; + Acc => base_1+"óð" ; + Dat => base_1+"óðum" ; + Gen => base_1+"óða" + } + } + } + }; + _ => error "Can't apply paradigm mkA026" + } ; + +mkA027 : Str -> A ; +mkA027 base = + case base of { + base_1+"ei"+base_2@?+"a"+base_3@?+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ei"+base_2+"a"+base_3+"ur" ; + Acc => base_1+"a"+base_2+base_3+"an" ; + Dat => base_1+"a"+base_2+base_3+"um" ; + Gen => base_1+"ei"+base_2+"a"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ir" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"a"+base_2+base_3+"um" ; + Gen => base_1+"ei"+base_2+"a"+base_3+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ei"+base_2+"u"+base_3 ; + Acc => base_1+"a"+base_2+base_3+"a" ; + Dat => base_1+"a"+base_2+base_3+"ari" ; + Gen => base_1+"ei"+base_2+"a"+base_3+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+base_3+"ar" ; + Acc => base_1+"a"+base_2+base_3+"ar" ; + Dat => base_1+"a"+base_2+base_3+"um" ; + Gen => base_1+"ei"+base_2+"a"+base_3+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"ei"+base_2+"a"+base_3+"t" ; + Acc => base_1+"ei"+base_2+"a"+base_3+"t" ; + Dat => base_1+"a"+base_2+base_3+"um" ; + Gen => base_1+"ei"+base_2+"a"+base_3+"s" + } ; + Pl => table { + Nom => base_1+"ei"+base_2+"u"+base_3 ; + Acc => base_1+"ei"+base_2+"u"+base_3 ; + Dat => base_1+"a"+base_2+base_3+"um" ; + Gen => base_1+"ei"+base_2+"a"+base_3+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA027" + } ; + +mkA028 : Str -> A ; +mkA028 base = + case base of { + base_1+"pin" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"pin" ; + Acc => base_1+"nan" ; + Dat => base_1+"num" ; + Gen => base_1+"pins" + } ; + Pl => table { + Nom => base_1+"nir" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"pin" ; + Acc => base_1+"na" ; + Dat => base_1+"nari" ; + Gen => base_1+"nar" + } ; + Pl => table { + Nom => base_1+"nar" ; + Acc => base_1+"nar" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"pið" ; + Acc => base_1+"pið" ; + Dat => base_1+"num" ; + Gen => base_1+"pins" + } ; + Pl => table { + Nom => base_1+"pin" ; + Acc => base_1+"pin" ; + Dat => base_1+"num" ; + Gen => base_1+"na" + } + } + } + }; + _ => error "Can't apply paradigm mkA028" + } ; + +mkA029 : Str -> A ; +mkA029 base = + case base of { + base_1+"a"+base_2@?+"sur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"sur" ; + Acc => base_1+"a"+base_2+"san" ; + Dat => base_1+"ø"+base_2+"sum" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"sir" ; + Acc => base_1+"a"+base_2+"sar" ; + Dat => base_1+"ø"+base_2+"sum" ; + Gen => base_1+"a"+base_2+"sa" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2+"s" ; + Acc => base_1+"a"+base_2+"sa" ; + Dat => base_1+"a"+base_2+"sari" ; + Gen => base_1+"a"+base_2+"sar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"sar" ; + Acc => base_1+"a"+base_2+"sar" ; + Dat => base_1+"ø"+base_2+"sum" ; + Gen => base_1+"a"+base_2+"sa" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"t" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"ø"+base_2+"sum" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2+"s" ; + Acc => base_1+"ø"+base_2+"s" ; + Dat => base_1+"ø"+base_2+"sum" ; + Gen => base_1+"a"+base_2+"sa" + } + } + } + }; + _ => error "Can't apply paradigm mkA029" + } ; + +mkA030 : Str -> A ; +mkA030 base = + case base of { + base_1+"ddur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ddur" ; + Acc => base_1+"ddan" ; + Dat => base_1+"ddum" ; + Gen => base_1+"ds" + } ; + Pl => table { + Nom => base_1+"ddir" ; + Acc => base_1+"ddar" ; + Dat => base_1+"ddum" ; + Gen => base_1+"dda" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"dd" ; + Acc => base_1+"dda" ; + Dat => base_1+"ddari" ; + Gen => base_1+"ddar" + } ; + Pl => table { + Nom => base_1+"ddar" ; + Acc => base_1+"ddar" ; + Dat => base_1+"ddum" ; + Gen => base_1+"dda" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"tt" ; + Acc => base_1+"tt" ; + Dat => base_1+"ddum" ; + Gen => base_1+"ds" + } ; + Pl => table { + Nom => base_1+"dd" ; + Acc => base_1+"dd" ; + Dat => base_1+"ddum" ; + Gen => base_1+"dda" + } + } + } + }; + _ => error "Can't apply paradigm mkA030" + } ; + +mkA031 : Str -> A ; +mkA031 base = + case base of { + base_1+"a"+base_2@?+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2+"an" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"alatra" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"ari" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"alatra" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"t" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"alatra" + } + } + } + }; + _ => error "Can't apply paradigm mkA031" + } ; + +mkA032 : Str -> A ; +mkA032 base = + case base of { + base_1+"ðin" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ðin" ; + Acc => base_1+"dnan" ; + Dat => base_1+"dnum" ; + Gen => base_1+"ðins" + } ; + Pl => table { + Nom => base_1+"dnir" ; + Acc => base_1+"dnar" ; + Dat => base_1+"dnum" ; + Gen => base_1+"dna" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ðin" ; + Acc => base_1+"dna" ; + Dat => base_1+"dnari" ; + Gen => base_1+"dnar" + } ; + Pl => table { + Nom => base_1+"dnar" ; + Acc => base_1+"dnar" ; + Dat => base_1+"dnum" ; + Gen => base_1+"dna" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"ðið" ; + Acc => base_1+"ðið" ; + Dat => base_1+"dnum" ; + Gen => base_1+"ðins" + } ; + Pl => table { + Nom => base_1+"ðin" ; + Acc => base_1+"ðin" ; + Dat => base_1+"dnum" ; + Gen => base_1+"dna" + } + } + } + }; + _ => error "Can't apply paradigm mkA032" + } ; + +mkA033 : Str -> A ; +mkA033 base = + case base of { + base_1+"ggjur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"ggjur" ; + Acc => base_1+"ggjan" ; + Dat => base_1+"ggjum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ggir" ; + Acc => base_1+"ggjar" ; + Dat => base_1+"ggjum" ; + Gen => base_1+"ggja" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ggj" ; + Acc => base_1+"ggja" ; + Dat => base_1+"ggjari" ; + Gen => base_1+"ggjar" + } ; + Pl => table { + Nom => base_1+"ggjar" ; + Acc => base_1+"ggjar" ; + Dat => base_1+"ggjum" ; + Gen => base_1+"ggja" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"tt" ; + Acc => base_1+"tt" ; + Dat => base_1+"ggjum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"ggj" ; + Acc => base_1+"ggj" ; + Dat => base_1+"ggjum" ; + Gen => base_1+"ggja" + } + } + } + }; + _ => error "Can't apply paradigm mkA033" + } ; + +mkA034 : Str -> A ; +mkA034 base = + case base of { + base_1+"a"+base_2@?+"ur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"a"+base_2+"ur" ; + Acc => base_1+"a"+base_2+"an" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ir" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"amakra" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"a"+base_2+"a" ; + Dat => base_1+"a"+base_2+"ari" ; + Gen => base_1+"a"+base_2+"ar" + } ; + Pl => table { + Nom => base_1+"a"+base_2+"ar" ; + Acc => base_1+"a"+base_2+"ar" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"amakra" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"a"+base_2+"t" ; + Acc => base_1+"a"+base_2+"t" ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"ø"+base_2 ; + Acc => base_1+"ø"+base_2 ; + Dat => base_1+"ø"+base_2+"um" ; + Gen => base_1+"a"+base_2+"amakra" + } + } + } + }; + _ => error "Can't apply paradigm mkA034" + } ; + +mkA035 : Str -> A ; +mkA035 base = + case base of { + base_1+"il" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"il" ; + Acc => base_1+"lan" ; + Dat => base_1+"lum" ; + Gen => base_1+"ils" + } ; + Pl => table { + Nom => base_1+"lir" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"il" ; + Acc => base_1+"la" ; + Dat => base_1+"lari" ; + Gen => base_1+"lar" + } ; + Pl => table { + Nom => base_1+"lar" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"ið" ; + Acc => base_1+"ið" ; + Dat => base_1+"lum" ; + Gen => base_1+"ils" + } ; + Pl => table { + Nom => base_1+"il" ; + Acc => base_1+"il" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } + } + }; + _ => error "Can't apply paradigm mkA035" + } ; + +mkA036 : Str -> A ; +mkA036 base = + case base of { + base_1+"lur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"lur" ; + Acc => base_1+"lan" ; + Dat => base_1+"lum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"lir" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"l" ; + Acc => base_1+"la" ; + Dat => base_1+"lari" ; + Gen => base_1+"lar" + } ; + Pl => table { + Nom => base_1+"lar" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"lum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"l" ; + Acc => base_1+"l" ; + Dat => base_1+"lum" ; + Gen => base_1+"la" + } + } + } + }; + _ => error "Can't apply paradigm mkA036" + } ; + +mkA037 : Str -> A ; +mkA037 base = + case base of { + base_1+"gvur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"gvur" ; + Acc => base_1+"gvan" ; + Dat => base_1+"gvum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"gvir" ; + Acc => base_1+"gvar" ; + Dat => base_1+"gvum" ; + Gen => base_1+"gva" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"gv" ; + Acc => base_1+"gva" ; + Dat => base_1+"gvari" ; + Gen => base_1+"gvar" + } ; + Pl => table { + Nom => base_1+"gvar" ; + Acc => base_1+"gvar" ; + Dat => base_1+"gvum" ; + Gen => base_1+"gva" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"tt" ; + Acc => base_1+"tt" ; + Dat => base_1+"gvum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"gv" ; + Acc => base_1+"gv" ; + Dat => base_1+"gvum" ; + Gen => base_1+"gva" + } + } + } + }; + _ => error "Can't apply paradigm mkA037" + } ; + +mkA038 : Str -> A ; +mkA038 base = + case base of { + base_1+"u"+base_2@? => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+base_2+"an" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+"u"+base_2+"s" + } ; + Pl => table { + Nom => base_1+base_2+"ir" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+base_2+"a" ; + Dat => base_1+base_2+"ari" ; + Gen => base_1+base_2+"ar" + } ; + Pl => table { + Nom => base_1+base_2+"ar" ; + Acc => base_1+base_2+"ar" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"u"+base_2+"t" ; + Acc => base_1+"u"+base_2+"t" ; + Dat => base_1+base_2+"um" ; + Gen => base_1+"u"+base_2+"s" + } ; + Pl => table { + Nom => base_1+"u"+base_2 ; + Acc => base_1+"u"+base_2 ; + Dat => base_1+base_2+"um" ; + Gen => base_1+base_2+"a" + } + } + } + }; + _ => error "Can't apply paradigm mkA038" + } ; + +mkA039 : Str -> A ; +mkA039 base = + case base of { + base_1+"rur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"rur" ; + Acc => base_1+"ran" ; + Dat => base_1+"rum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"rir" ; + Acc => base_1+"rar" ; + Dat => base_1+"rum" ; + Gen => base_1+"ra" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"r" ; + Acc => base_1+"ra" ; + Dat => base_1+"rari" ; + Gen => base_1+"rar" + } ; + Pl => table { + Nom => base_1+"rar" ; + Acc => base_1+"rar" ; + Dat => base_1+"rum" ; + Gen => base_1+"ra" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"rum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"r" ; + Acc => base_1+"r" ; + Dat => base_1+"rum" ; + Gen => base_1+"ra" + } + } + } + }; + _ => error "Can't apply paradigm mkA039" + } ; + +mkA040 : Str -> A ; +mkA040 base = + case base of { + base_1+"lur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"lur" ; + Acc => base_1+"lan" ; + Dat => base_1+"lum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"lir" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"lavilra" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"l" ; + Acc => base_1+"la" ; + Dat => base_1+"lari" ; + Gen => base_1+"lar" + } ; + Pl => table { + Nom => base_1+"lar" ; + Acc => base_1+"lar" ; + Dat => base_1+"lum" ; + Gen => base_1+"lavilra" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"lum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"l" ; + Acc => base_1+"l" ; + Dat => base_1+"lum" ; + Gen => base_1+"lavilra" + } + } + } + }; + _ => error "Can't apply paradigm mkA040" + } ; + +mkA041 : Str -> A ; +mkA041 base = + case base of { + base_1+"sur" => lin A + { s = table { + Masc => table { + Sg => table { + Nom => base_1+"sur" ; + Acc => base_1+"san" ; + Dat => base_1+"sum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"sir" ; + Acc => base_1+"sar" ; + Dat => base_1+"sum" ; + Gen => base_1+"sa" + } + } ; + Fem => table { + Sg => table { + Nom => base_1+"s" ; + Acc => base_1+"sa" ; + Dat => base_1+"sari" ; + Gen => base_1+"sar" + } ; + Pl => table { + Nom => base_1+"sar" ; + Acc => base_1+"sar" ; + Dat => base_1+"sum" ; + Gen => base_1+"sa" + } + } ; + Neutr => table { + Sg => table { + Nom => base_1+"t" ; + Acc => base_1+"t" ; + Dat => base_1+"sum" ; + Gen => base_1+"s" + } ; + Pl => table { + Nom => base_1+"s" ; + Acc => base_1+"s" ; + Dat => base_1+"sum" ; + Gen => base_1+"sa" + } + } + } + }; + _ => error "Can't apply paradigm mkA041" + } ; + +mkV001 : Str -> V ; +mkV001 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"að" ; + Imperative_Jussive = table { + Sg => base_1+"a" ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ar" ; + PSg P3 => base_1+"ar" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"aði" ; + PSg P2 => base_1+"aði" ; + PSg P3 => base_1+"aði" ; + PPl => base_1+"aðu" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"aður" + } + }; + _ => error "Can't apply paradigm mkV001" + } ; + +mkV002 : Str -> V ; +mkV002 base = + case base of { + "ei"+base_1+"a" => lin V + { Converb = "hi"+base_1+"ið" ; + Imperative_Jussive = table { + Sg => "ei"+base_1 ; + Pl => "ei"+base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => "ei"+base_1+"i" ; + PSg P2 => "ei"+base_1+"ur" ; + PSg P3 => "ei"+base_1+"ur" ; + PPl => "ei"+base_1+"a" + } ; + Past => table { + PSg P1 => "hæ"+base_1 ; + PSg P2 => "hæ"+base_1 ; + PSg P3 => "hæ"+base_1 ; + PPl => "hi"+base_1+"u" + } + } ; + Nonfinite = "ei"+base_1+"a" ; + Particle = table { + Pres => "ei"+base_1+"andi" ; + Past => "hi"+base_1+"in" + } + }; + _ => error "Can't apply paradigm mkV002" + } ; + +mkV003 : Str -> V ; +mkV003 base = + case base of { + "a"+base_1+"a" => lin V + { Converb = "i"+base_1+"ið" ; + Imperative_Jussive = table { + Sg => "a"+base_1 ; + Pl => "a"+base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => "a"+base_1+"i" ; + PSg P2 => "e"+base_1+"ur" ; + PSg P3 => "e"+base_1+"ur" ; + PPl => "a"+base_1+"a" + } ; + Past => table { + PSg P1 => "ó"+base_1 ; + PSg P2 => "ó"+base_1+"st" ; + PSg P3 => "ó"+base_1 ; + PPl => "ó"+base_1+"u" + } + } ; + Nonfinite = "a"+base_1+"a" ; + Particle = table { + Pres => "a"+base_1+"andi" ; + Past => "i"+base_1+"in" + } + }; + _ => error "Can't apply paradigm mkV003" + } ; + +mkV004 : Str -> V ; +mkV004 base = + case base of { + "a"+base_1+"a" => lin V + { Converb = "a"+base_1+"ið" ; + Imperative_Jussive = table { + Sg => "a"+base_1 ; + Pl => "a"+base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => "a"+base_1+"i" ; + PSg P2 => "e"+base_1+"ur" ; + PSg P3 => "e"+base_1+"ur" ; + PPl => "a"+base_1+"a" + } ; + Past => table { + PSg P1 => "ó"+base_1 ; + PSg P2 => "ó"+base_1+"st" ; + PSg P3 => "ó"+base_1 ; + PPl => "ó"+base_1+"u" + } + } ; + Nonfinite = "a"+base_1+"a" ; + Particle = table { + Pres => "a"+base_1+"andi" ; + Past => "a"+base_1+"in" + } + }; + _ => error "Can't apply paradigm mkV004" + } ; + +mkV005 : Str -> V ; +mkV005 base = + case base of { + base_1+"a"+base_2@(?+?) => lin V + { Converb = base_1+"a"+base_2 ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2 ; + PSg P2 => base_1+"a"+base_2 ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"a"+base_2 + } ; + Past => table { + PSg P1 => base_1+"aði"+base_2 ; + PSg P2 => base_1+"aði"+base_2 ; + PSg P3 => base_1+"aði"+base_2 ; + PPl => base_1+"aðu"+base_2 + } + } ; + Nonfinite = base_1+"a"+base_2 ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV005" + } ; + +mkV006 : Str -> V ; +mkV006 base = + case base of { + base_1+"ða" => lin V + { Converb = base_1+"tt" ; + Imperative_Jussive = table { + Sg => base_1+"ð" ; + Pl => base_1+"ðið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ði" ; + PSg P2 => base_1+"ðir" ; + PSg P3 => base_1+"ðir" ; + PPl => base_1+"ða" + } ; + Past => table { + PSg P1 => base_1+"ddi" ; + PSg P2 => base_1+"ddi" ; + PSg P3 => base_1+"ddi" ; + PPl => base_1+"ddu" + } + } ; + Nonfinite = base_1+"ða" ; + Particle = table { + Pres => base_1+"ðandi" ; + Past => base_1+"ddur" + } + }; + _ => error "Can't apply paradigm mkV006" + } ; + +mkV007 : Str -> V ; +mkV007 base = + case base of { + "eiga" => lin V + { Converb = "átt" ; + Imperative_Jussive = table { + Sg => "eig" ; + Pl => "eigið" + } ; + Indicative = table { + Pres => table { + PSg P1 => "eigi" ; + PSg P2 => "eigureigir" ; + PSg P3 => "eigureigir" ; + PPl => "eiga" + } ; + Past => table { + PSg P1 => "áttiár" ; + PSg P2 => "áttiár" ; + PSg P3 => "áttiár" ; + PPl => "áttu" + } + } ; + Nonfinite = "eiga" ; + Particle = table { + Pres => "eigandi" ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV007" + } ; + +mkV008 : Str -> V ; +mkV008 base = + case base of { + base_1+"e"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"t" ; + PSg P3 => base_1+"e"+base_2 ; + PPl => base_1+"e"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"t" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"e"+base_2+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV008" + } ; + +mkV009 : Str -> V ; +mkV009 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ir" ; + PSg P3 => base_1+"ir" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV009" + } ; + +mkV010 : Str -> V ; +mkV010 base = + case base of { + base_1+"da" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"d" ; + Pl => base_1+"dið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"dir" ; + PSg P3 => base_1+"dir" ; + PPl => base_1+"da" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"da" ; + Particle = table { + Pres => base_1+"dandi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV010" + } ; + +mkV011 : Str -> V ; +mkV011 base = + case base of { + base_1+"e"+base_2@?+"ja" => lin V + { Converb = base_1+"a"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2+"j" ; + Pl => base_1+"e"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"ji" ; + PSg P2 => base_1+"e"+base_2+"jir" ; + PSg P3 => base_1+"e"+base_2+"jir" ; + PPl => base_1+"e"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"di" ; + PSg P2 => base_1+"a"+base_2+"di" ; + PSg P3 => base_1+"a"+base_2+"di" ; + PPl => base_1+"a"+base_2+"du" + } + } ; + Nonfinite = base_1+"e"+base_2+"ja" ; + Particle = table { + Pres => base_1+"e"+base_2+"jandi" ; + Past => base_1+"a"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV011" + } ; + +mkV012 : Str -> V ; +mkV012 base = + case base of { + base_1+"i"+base_2@?+"ja" => lin V + { Converb = base_1+"i"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"i"+base_2 ; + Pl => base_1+"i"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2+"ji" ; + PSg P2 => base_1+"i"+base_2+"ur" ; + PSg P3 => base_1+"i"+base_2+"ur" ; + PPl => base_1+"i"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"i"+base_2+"ja" ; + Particle = table { + Pres => base_1+"i"+base_2+"jandi" ; + Past => base_1+"i"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV012" + } ; + +mkV013 : Str -> V ; +mkV013 base = + case base of { + base_1+"i"+base_2@?+"da" => lin V + { Converb = base_1+"u"+base_2+"dið" ; + Imperative_Jussive = table { + Sg => base_1+"i"+base_2+"d" ; + Pl => base_1+"i"+base_2+"dið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2+"di" ; + PSg P2 => base_1+"i"+base_2+"dur" ; + PSg P3 => base_1+"i"+base_2+"dur" ; + PPl => base_1+"i"+base_2+"da" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"t" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"t" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"i"+base_2+"da" ; + Particle = table { + Pres => base_1+"i"+base_2+"dandi" ; + Past => base_1+"u"+base_2+"din" + } + }; + _ => error "Can't apply paradigm mkV013" + } ; + +mkV014 : Str -> V ; +mkV014 base = + case base of { + base_1+"í"+base_2@?+"a" => lin V + { Converb = base_1+"i"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"í"+base_2 ; + Pl => base_1+"í"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"í"+base_2+"i" ; + PSg P2 => base_1+"í"+base_2+"ur" ; + PSg P3 => base_1+"í"+base_2+"ur" ; + PPl => base_1+"í"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ei"+base_2 ; + PSg P2 => base_1+"ei"+base_2+"st" ; + PSg P3 => base_1+"ei"+base_2 ; + PPl => base_1+"i"+base_2+"u" + } + } ; + Nonfinite = base_1+"í"+base_2+"a" ; + Particle = table { + Pres => base_1+"í"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV014" + } ; + +mkV015 : Str -> V ; +mkV015 base = + case base of { + base_1+"jó"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"jó"+base_2 ; + Pl => base_1+"jó"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"jó"+base_2+"i" ; + PSg P2 => base_1+"ý"+base_2+"ur" ; + PSg P3 => base_1+"ý"+base_2+"ur" ; + PPl => base_1+"jó"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ey"+base_2 ; + PSg P2 => base_1+"ey"+base_2+"st" ; + PSg P3 => base_1+"ey"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"jó"+base_2+"a" ; + Particle = table { + Pres => base_1+"jó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV015" + } ; + +mkV016 : Str -> V ; +mkV016 base = + case base of { + base_1+"gja" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"g" ; + Pl => base_1+"gið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"gi" ; + PSg P2 => base_1+"gir" ; + PSg P3 => base_1+"gir" ; + PPl => base_1+"gja" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"gja" ; + Particle = table { + Pres => base_1+"gjandi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV016" + } ; + +mkV017 : Str -> V ; +mkV017 base = + case base of { + base_1+"e"+base_2@?+"na" => lin V + { Converb = base_1+"u"+base_2+"nið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2+"n" ; + Pl => base_1+"e"+base_2+"nið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"ni" ; + PSg P2 => base_1+"e"+base_2+"nur" ; + PSg P3 => base_1+"e"+base_2+"nur" ; + PPl => base_1+"e"+base_2+"na" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"n" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"n" ; + PPl => base_1+"u"+base_2+"nu" + } + } ; + Nonfinite = base_1+"e"+base_2+"na" ; + Particle = table { + Pres => base_1+"e"+base_2+"nandi" ; + Past => base_1+"u"+base_2+"nin" + } + }; + _ => error "Can't apply paradigm mkV017" + } ; + +mkV018 : Str -> V ; +mkV018 base = + case base of { + base_1+"e"+base_2@("m"|(?+?))+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"e"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"e"+base_2+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV018" + } ; + +mkV019 : Str -> V ; +mkV019 base = + case base of { + base_1+"ó"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"ó"+base_2 ; + Pl => base_1+"ó"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ó"+base_2+"i" ; + PSg P2 => base_1+"ý"+base_2+"ur" ; + PSg P3 => base_1+"ý"+base_2+"ur" ; + PPl => base_1+"ó"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ey"+base_2 ; + PSg P2 => base_1+"ey"+base_2+"st" ; + PSg P3 => base_1+"ey"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"ó"+base_2+"a" ; + Particle = table { + Pres => base_1+"ó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV019" + } ; + +mkV020 : Str -> V ; +mkV020 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ir" ; + PSg P3 => base_1+"ir" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV020" + } ; + +mkV021 : Str -> V ; +mkV021 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"að" ; + Imperative_Jussive = table { + Sg => base_1+"a" ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ar" ; + PSg P3 => base_1+"ar" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV021" + } ; + +mkV022 : Str -> V ; +mkV022 base = + case base of { + base_1+"úgva" => lin V + { Converb = base_1+"úð" ; + Imperative_Jussive = table { + Sg => base_1+"úgv" ; + Pl => base_1+"úgvið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"úgvi" ; + PSg P2 => base_1+"ýrt" ; + PSg P3 => base_1+"ýr" ; + PPl => base_1+"úgva" + } ; + Past => table { + PSg P1 => base_1+"úði" ; + PSg P2 => base_1+"úði" ; + PSg P3 => base_1+"úði" ; + PPl => base_1+"úðu" + } + } ; + Nonfinite = base_1+"úgva" ; + Particle = table { + Pres => base_1+"úgvandi" ; + Past => base_1+"úgvin" + } + }; + _ => error "Can't apply paradigm mkV022" + } ; + +mkV023 : Str -> V ; +mkV023 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ur" ; + PSg P3 => base_1+"ur" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV023" + } ; + +mkV024 : Str -> V ; +mkV024 base = + case base of { + base_1+"e"+base_2@?+base_3@?+"a" => lin V + { Converb = base_1+"o"+base_2+base_3+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2+base_3 ; + Pl => base_1+"e"+base_2+base_3+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+base_3+"i" ; + PSg P2 => base_1+"e"+base_2+base_3+"ur" ; + PSg P3 => base_1+"e"+base_2+base_3+"ur" ; + PPl => base_1+"e"+base_2+base_3+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+base_3 ; + PSg P2 => base_1+"a"+base_2+"s"+base_3 ; + PSg P3 => base_1+"a"+base_2+base_3 ; + PPl => base_1+"u"+base_2+base_3+"u" + } + } ; + Nonfinite = base_1+"e"+base_2+base_3+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+base_3+"andi" ; + Past => base_1+"o"+base_2+base_3+"in" + } + }; + _ => error "Can't apply paradigm mkV024" + } ; + +mkV025 : Str -> V ; +mkV025 base = + case base of { + base_1+"ggja" => lin V + { Converb = base_1+"ð" ; + Imperative_Jussive = table { + Sg => base_1+"ggj" ; + Pl => base_1+"ggið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ggi" ; + PSg P2 => base_1+"rt" ; + PSg P3 => base_1+"r" ; + PPl => base_1+"ggja" + } ; + Past => table { + PSg P1 => base_1+"ði" ; + PSg P2 => base_1+"ði" ; + PSg P3 => base_1+"ði" ; + PPl => base_1+"ðu" + } + } ; + Nonfinite = base_1+"ggja" ; + Particle = table { + Pres => base_1+"ggjandi" ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV025" + } ; + +mkV026 : Str -> V ; +mkV026 base = + case base of { + base_1+"aga" => lin V + { Converb = base_1+"igið" ; + Imperative_Jussive = table { + Sg => base_1+"ag" ; + Pl => base_1+"agið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"agi" ; + PSg P2 => base_1+"egur" ; + PSg P3 => base_1+"egur" ; + PPl => base_1+"aga" + } ; + Past => table { + PSg P1 => base_1+"ó" ; + PSg P2 => base_1+"óst" ; + PSg P3 => base_1+"ó" ; + PPl => base_1+"ógu" + } + } ; + Nonfinite = base_1+"aga" ; + Particle = table { + Pres => base_1+"agandi" ; + Past => base_1+"igin" + } + }; + _ => error "Can't apply paradigm mkV026" + } ; + +mkV027 : Str -> V ; +mkV027 base = + case base of { + base_1+"e"+base_2@?+"ka" => lin V + { Converb = base_1+"u"+base_2+"kið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2+"k" ; + Pl => base_1+"e"+base_2+"kið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"ki" ; + PSg P2 => base_1+"e"+base_2+"kur" ; + PSg P3 => base_1+"e"+base_2+"kur" ; + PPl => base_1+"e"+base_2+"ka" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"k" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"k" ; + PPl => base_1+"u"+base_2+"ku" + } + } ; + Nonfinite = base_1+"e"+base_2+"ka" ; + Particle = table { + Pres => base_1+"e"+base_2+"kandi" ; + Past => base_1+"u"+base_2+"kin" + } + }; + _ => error "Can't apply paradigm mkV027" + } ; + +mkV028 : Str -> V ; +mkV028 base = + case base of { + base_1+"e"+base_2@?+"a" => lin V + { Converb = base_1+"i"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"e"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"e"+base_2+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV028" + } ; + +mkV029 : Str -> V ; +mkV029 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"að" ; + Imperative_Jussive = table { + Sg => base_1+"a" ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ir" ; + PSg P3 => base_1+"ir" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"aður" + } + }; + _ => error "Can't apply paradigm mkV029" + } ; + +mkV030 : Str -> V ; +mkV030 base = + case base of { + "ve"+base_1+"a" => lin V + { Converb = "ve"+base_1+"ið" ; + Imperative_Jussive = table { + Sg => "ve"+base_1 ; + Pl => "ve"+base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => "e"+base_1+"i" ; + PSg P2 => "e"+base_1+"t" ; + PSg P3 => "e"+base_1 ; + PPl => "e"+base_1+"u" + } ; + Past => table { + PSg P1 => "va"+base_1 ; + PSg P2 => "va"+base_1+"t" ; + PSg P3 => "va"+base_1 ; + PPl => "vó"+base_1+"u" + } + } ; + Nonfinite = "ve"+base_1+"a" ; + Particle = table { + Pres => "ve"+base_1+"andi" ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV030" + } ; + +mkV031 : Str -> V ; +mkV031 base = + case base of { + base_1+"na" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"na" ; + Pl => base_1+"nið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ni" ; + PSg P2 => base_1+"nir" ; + PSg P3 => base_1+"nir" ; + PPl => base_1+"na" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"na" ; + Particle = table { + Pres => base_1+"nandi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV031" + } ; + +mkV032 : Str -> V ; +mkV032 base = + case base of { + base_1+"a"+base_2@(?+?)+"a" => lin V + { Converb = base_1+"a"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2 ; + Pl => base_1+"a"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"a"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"fell" ; + PSg P2 => base_1+"a"+base_2 ; + PSg P3 => base_1+"a"+base_2+"fell" ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"a"+base_2+"a" ; + Particle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV032" + } ; + +mkV033 : Str -> V ; +mkV033 base = + case base of { + base_1+"a"+base_2@?+"a" => lin V + { Converb = base_1+"a"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2 ; + Pl => base_1+"a"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"t" ; + PSg P3 => base_1+"e"+base_2 ; + PPl => base_1+"a"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ó"+base_2 ; + PSg P2 => base_1+"ó"+base_2+"t" ; + PSg P3 => base_1+"ó"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"a"+base_2+"a" ; + Particle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV033" + } ; + +mkV034 : Str -> V ; +mkV034 base = + case base of { + base_1+"áa" => lin V + { Converb = base_1+"ingið" ; + Imperative_Jussive = table { + Sg => base_1+"á" ; + Pl => base_1+"áið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ái" ; + PSg P2 => base_1+"ært" ; + PSg P3 => base_1+"ær" ; + PPl => base_1+"áa" + } ; + Past => table { + PSg P1 => base_1+"ekk" ; + PSg P2 => base_1+"ekst" ; + PSg P3 => base_1+"ekk" ; + PPl => base_1+"ingu" + } + } ; + Nonfinite = base_1+"áa" ; + Particle = table { + Pres => nonExist ; + Past => base_1+"ingin" + } + }; + _ => error "Can't apply paradigm mkV034" + } ; + +mkV035 : Str -> V ; +mkV035 base = + case base of { + base_1+"la" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"la" ; + Pl => base_1+"lið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"li" ; + PSg P2 => base_1+"lir" ; + PSg P3 => base_1+"lir" ; + PPl => base_1+"la" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"la" ; + Particle = table { + Pres => base_1+"landi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV035" + } ; + +mkV036 : Str -> V ; +mkV036 base = + case base of { + base_1+"ða"+base_2@(?+?) => lin V + { Converb = base_1+"da"+base_2 ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ði"+base_2 ; + PSg P2 => base_1+"ða"+base_2 ; + PSg P3 => base_1+"ða"+base_2 ; + PPl => base_1+"ða"+base_2 + } ; + Past => table { + PSg P1 => base_1+"daði"+base_2 ; + PSg P2 => base_1+"daði"+base_2 ; + PSg P3 => base_1+"daði"+base_2 ; + PPl => base_1+"daðu"+base_2 + } + } ; + Nonfinite = base_1+"ða"+base_2 ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV036" + } ; + +mkV037 : Str -> V ; +mkV037 base = + case base of { + base_1+"a" => lin V + { Converb = base_1 ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ir" ; + PSg P3 => base_1+"ir" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"i" ; + PSg P3 => base_1+"i" ; + PPl => base_1+"u" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"ur" + } + }; + _ => error "Can't apply paradigm mkV037" + } ; + +mkV038 : Str -> V ; +mkV038 base = + case base of { + base_1+"e"+base_2@?+"ja" => lin V + { Converb = base_1+"a"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ir" ; + PSg P3 => base_1+"e"+base_2+"ir" ; + PPl => base_1+"e"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"ti" ; + PSg P2 => base_1+"a"+base_2+"ti" ; + PSg P3 => base_1+"a"+base_2+"ti" ; + PPl => base_1+"a"+base_2+"tu" + } + } ; + Nonfinite = base_1+"e"+base_2+"ja" ; + Particle = table { + Pres => base_1+"e"+base_2+"jandi" ; + Past => base_1+"a"+base_2+"tur" + } + }; + _ => error "Can't apply paradigm mkV038" + } ; + +mkV039 : Str -> V ; +mkV039 base = + case base of { + base_1+"na" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"n" ; + Pl => base_1+"nið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ni" ; + PSg P2 => base_1+"nir" ; + PSg P3 => base_1+"nir" ; + PPl => base_1+"na" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"na" ; + Particle = table { + Pres => base_1+"nandi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV039" + } ; + +mkV040 : Str -> V ; +mkV040 base = + case base of { + base_1+"ú"+base_2@?+"va" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"ú"+base_2 ; + Pl => base_1+"ú"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ú"+base_2+"vi" ; + PSg P2 => base_1+"ý"+base_2+"ur" ; + PSg P3 => base_1+"ý"+base_2+"ur" ; + PPl => base_1+"ú"+base_2+"va" + } ; + Past => table { + PSg P1 => base_1+"ey"+base_2 ; + PSg P2 => base_1+"ey"+base_2+"st" ; + PSg P3 => base_1+"ey"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"ú"+base_2+"va" ; + Particle = table { + Pres => base_1+"ú"+base_2+"vandi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV040" + } ; + +mkV041 : Str -> V ; +mkV041 base = + case base of { + base_1+"y"+base_2@?+"a" => lin V + { Converb = base_1+"u"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"y"+base_2 ; + Pl => base_1+"y"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"y"+base_2+"i" ; + PSg P2 => base_1+"y"+base_2+"ur" ; + PSg P3 => base_1+"y"+base_2+"ur" ; + PPl => base_1+"y"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"u"+base_2+"ti" ; + PSg P2 => base_1+"u"+base_2+"ti" ; + PSg P3 => base_1+"u"+base_2+"ti" ; + PPl => base_1+"u"+base_2+"tu" + } + } ; + Nonfinite = base_1+"y"+base_2+"a" ; + Particle = table { + Pres => base_1+"y"+base_2+"andi" ; + Past => base_1+"u"+base_2+"tur" + } + }; + _ => error "Can't apply paradigm mkV041" + } ; + +mkV042 : Str -> V ; +mkV042 base = + case base of { + base_1+"e"+base_2@?+"ja" => lin V + { Converb = base_1+"a"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"ji" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"e"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"di" ; + PSg P2 => base_1+"a"+base_2+"di" ; + PSg P3 => base_1+"a"+base_2+"di" ; + PPl => base_1+"a"+base_2+"du" + } + } ; + Nonfinite = base_1+"e"+base_2+"ja" ; + Particle = table { + Pres => base_1+"e"+base_2+"jandi" ; + Past => base_1+"a"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV042" + } ; + +mkV043 : Str -> V ; +mkV043 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"tt" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ir" ; + PSg P3 => base_1+"ir" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"ddi" ; + PSg P2 => base_1+"ddi" ; + PSg P3 => base_1+"ddi" ; + PPl => base_1+"ddu" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"ddur" + } + }; + _ => error "Can't apply paradigm mkV043" + } ; + +mkV044 : Str -> V ; +mkV044 base = + case base of { + base_1+"ú"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"ú"+base_2 ; + Pl => base_1+"ú"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ú"+base_2+"i" ; + PSg P2 => base_1+"ý"+base_2+"ur" ; + PSg P3 => base_1+"ý"+base_2+"ur" ; + PPl => base_1+"ú"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ey"+base_2 ; + PSg P2 => base_1+"ey"+base_2+"st" ; + PSg P3 => base_1+"ey"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"ú"+base_2+"a" ; + Particle = table { + Pres => base_1+"ú"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV044" + } ; + +mkV045 : Str -> V ; +mkV045 base = + case base of { + base_1+"la" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"l" ; + Pl => base_1+"lið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"li" ; + PSg P2 => base_1+"lir" ; + PSg P3 => base_1+"lir" ; + PPl => base_1+"la" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"la" ; + Particle = table { + Pres => base_1+"landi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV045" + } ; + +mkV046 : Str -> V ; +mkV046 base = + case base of { + base_1+"a"+base_2@?+"a" => lin V + { Converb = base_1+"a"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2 ; + Pl => base_1+"a"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"a"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ó"+base_2 ; + PSg P2 => base_1+"ó"+base_2+"st" ; + PSg P3 => base_1+"ó"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"a"+base_2+"a" ; + Particle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV046" + } ; + +mkV047 : Str -> V ; +mkV047 base = + case base of { + base_1+"anga" => lin V + { Converb = base_1+"ingið" ; + Imperative_Jussive = table { + Sg => base_1+"akk" ; + Pl => base_1+"angið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"angi" ; + PSg P2 => base_1+"ongur" ; + PSg P3 => base_1+"ongur" ; + PPl => base_1+"anga" + } ; + Past => table { + PSg P1 => base_1+"ekk" ; + PSg P2 => base_1+"ekst" ; + PSg P3 => base_1+"ekk" ; + PPl => base_1+"ingu" + } + } ; + Nonfinite = base_1+"anga" ; + Particle = table { + Pres => base_1+"angandi" ; + Past => base_1+"ingin" + } + }; + _ => error "Can't apply paradigm mkV047" + } ; + +mkV048 : Str -> V ; +mkV048 base = + case base of { + base_1+"ja"+base_2@?+"da" => lin V + { Converb = base_1+"o"+base_2+"dið" ; + Imperative_Jussive = table { + Sg => base_1+"ja"+base_2+"d" ; + Pl => base_1+"ja"+base_2+"dið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ja"+base_2+"di" ; + PSg P2 => base_1+"e"+base_2+"dur" ; + PSg P3 => base_1+"e"+base_2+"dur" ; + PPl => base_1+"ja"+base_2+"da" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"t" ; + PSg P2 => base_1+"a"+base_2+"t" ; + PSg P3 => base_1+"a"+base_2+"t" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"ja"+base_2+"da" ; + Particle = table { + Pres => base_1+"ja"+base_2+"dandi" ; + Past => base_1+"o"+base_2+"din" + } + }; + _ => error "Can't apply paradigm mkV048" + } ; + +mkV049 : Str -> V ; +mkV049 base = + case base of { + base_1+"e"+base_2@?+"a" => lin V + { Converb = base_1+"jø"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"t" ; + PSg P3 => base_1+"e"+base_2 ; + PPl => base_1+"e"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"jø"+base_2+"di" ; + PSg P2 => base_1+"jø"+base_2+"di" ; + PSg P3 => base_1+"jø"+base_2+"di" ; + PPl => base_1+"jø"+base_2+"du" + } + } ; + Nonfinite = base_1+"e"+base_2+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"jø"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV049" + } ; + +mkV050 : Str -> V ; +mkV050 base = + case base of { + base_1+"jó"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"jó"+base_2 ; + Pl => base_1+"jó"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"jó"+base_2+"i" ; + PSg P2 => base_1+"ý"+base_2+"ur" ; + PSg P3 => base_1+"ý"+base_2+"ur" ; + PPl => base_1+"jó"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ey"+base_2 ; + PSg P2 => base_1+"ey"+base_2+"t" ; + PSg P3 => base_1+"ey"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"jó"+base_2+"a" ; + Particle = table { + Pres => base_1+"jó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV050" + } ; + +mkV051 : Str -> V ; +mkV051 base = + case base of { + base_1+"e"+base_2@?+"pa" => lin V + { Converb = base_1+"o"+base_2+"pið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2+"p" ; + Pl => base_1+"e"+base_2+"pið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"pi" ; + PSg P2 => base_1+"e"+base_2+"pur" ; + PSg P3 => base_1+"e"+base_2+"pur" ; + PPl => base_1+"e"+base_2+"pa" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"p" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"p" ; + PPl => base_1+"u"+base_2+"pu" + } + } ; + Nonfinite = base_1+"e"+base_2+"pa" ; + Particle = table { + Pres => base_1+"e"+base_2+"pandi" ; + Past => base_1+"o"+base_2+"pin" + } + }; + _ => error "Can't apply paradigm mkV051" + } ; + +mkV052 : Str -> V ; +mkV052 base = + case base of { + base_1+"y"+base_2@?+"ja" => lin V + { Converb = base_1+"u"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"y"+base_2 ; + Pl => base_1+"y"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"y"+base_2+"i" ; + PSg P2 => base_1+"y"+base_2+"ur" ; + PSg P3 => base_1+"y"+base_2+"ur" ; + PPl => base_1+"y"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"u"+base_2+"di" ; + PSg P2 => base_1+"u"+base_2+"di" ; + PSg P3 => base_1+"u"+base_2+"di" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"y"+base_2+"ja" ; + Particle = table { + Pres => base_1+"y"+base_2+"jandi" ; + Past => base_1+"u"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV052" + } ; + +mkV053 : Str -> V ; +mkV053 base = + case base of { + base_1+"á"+base_2@?+"a" => lin V + { Converb = base_1+"á"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"á"+base_2 ; + Pl => base_1+"á"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"á"+base_2+"i" ; + PSg P2 => base_1+"æ"+base_2+"ur" ; + PSg P3 => base_1+"æ"+base_2+"ur" ; + PPl => base_1+"á"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"æ"+base_2 ; + PSg P2 => base_1+"æ"+base_2+"st" ; + PSg P3 => base_1+"æ"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"á"+base_2+"a" ; + Particle = table { + Pres => base_1+"á"+base_2+"andi" ; + Past => base_1+"á"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV053" + } ; + +mkV054 : Str -> V ; +mkV054 base = + case base of { + base_1+"a"+base_2@?+"a" => lin V + { Converb = base_1+"i"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2 ; + Pl => base_1+"a"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"a"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ó"+base_2 ; + PSg P2 => base_1+"ó"+base_2+"st" ; + PSg P3 => base_1+"ó"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"a"+base_2+"a" ; + Particle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV054" + } ; + +mkV055 : Str -> V ; +mkV055 base = + case base of { + base_1+"ógva" => lin V + { Converb = base_1+"óð" ; + Imperative_Jussive = table { + Sg => base_1+"ógv" ; + Pl => base_1+"ógvið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ógvi" ; + PSg P2 => base_1+"ørt" ; + PSg P3 => base_1+"ør" ; + PPl => base_1+"ógva" + } ; + Past => table { + PSg P1 => base_1+"óði" ; + PSg P2 => base_1+"óði" ; + PSg P3 => base_1+"óði" ; + PPl => base_1+"óðu" + } + } ; + Nonfinite = base_1+"ógva" ; + Particle = table { + Pres => base_1+"ógvandi" ; + Past => base_1+"ógvin" + } + }; + _ => error "Can't apply paradigm mkV055" + } ; + +mkV056 : Str -> V ; +mkV056 base = + case base of { + base_1+"a"+base_2@?+"da" => lin V + { Converb = base_1+"i"+base_2+"dið" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2+"d" ; + Pl => base_1+"a"+base_2+"dið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"di" ; + PSg P2 => base_1+"e"+base_2+"dur" ; + PSg P3 => base_1+"e"+base_2+"dur" ; + PPl => base_1+"a"+base_2+"da" + } ; + Past => table { + PSg P1 => base_1+"e"+base_2+"t" ; + PSg P2 => base_1+"e"+base_2+"tst" ; + PSg P3 => base_1+"e"+base_2+"t" ; + PPl => base_1+"i"+base_2+"du" + } + } ; + Nonfinite = base_1+"a"+base_2+"da" ; + Particle = table { + Pres => base_1+"a"+base_2+"dandi" ; + Past => base_1+"i"+base_2+"din" + } + }; + _ => error "Can't apply paradigm mkV056" + } ; + +mkV057 : Str -> V ; +mkV057 base = + case base of { + base_1+"anga" => lin V + { Converb = base_1+"ingið" ; + Imperative_Jussive = table { + Sg => base_1+"ang" ; + Pl => base_1+"angið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"angi" ; + PSg P2 => base_1+"ongur" ; + PSg P3 => base_1+"ongur" ; + PPl => base_1+"anga" + } ; + Past => table { + PSg P1 => base_1+"ekk" ; + PSg P2 => base_1+"ekst" ; + PSg P3 => base_1+"ekk" ; + PPl => base_1+"ingu" + } + } ; + Nonfinite = base_1+"anga" ; + Particle = table { + Pres => base_1+"angandi" ; + Past => base_1+"ingin" + } + }; + _ => error "Can't apply paradigm mkV057" + } ; + +mkV058 : Str -> V ; +mkV058 base = + case base of { + base_1+"a"+base_2@?+"a" => lin V + { Converb = base_1+"a"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2 ; + Pl => base_1+"a"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"a"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"e"+base_2+"ði" ; + PSg P2 => base_1+"e"+base_2+"ði" ; + PSg P3 => base_1+"e"+base_2+"ði" ; + PPl => base_1+"ø"+base_2+"du" + } + } ; + Nonfinite = base_1+"a"+base_2+"a" ; + Particle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV058" + } ; + +mkV059 : Str -> V ; +mkV059 base = + case base of { + base_1+"ei"+base_2@(?+?)+"ja" => lin V + { Converb = base_1+"o"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"ei"+base_2+"j" ; + Pl => base_1+"ei"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ei"+base_2+"i" ; + PSg P2 => base_1+"ei"+base_2+"ir" ; + PSg P3 => base_1+"ei"+base_2+"ir" ; + PPl => base_1+"ei"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"o"+base_2+"di" ; + PSg P2 => base_1+"o"+base_2+"di" ; + PSg P3 => base_1+"o"+base_2+"di" ; + PPl => base_1+"o"+base_2+"du" + } + } ; + Nonfinite = base_1+"ei"+base_2+"ja" ; + Particle = table { + Pres => base_1+"ei"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV059" + } ; + +mkV060 : Str -> V ; +mkV060 base = + case base of { + base_1+"vø"+base_2@(?+?)+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"vø"+base_2 ; + Pl => base_1+"vø"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"vø"+base_2+"i" ; + PSg P2 => base_1+"vø"+base_2+"ur" ; + PSg P3 => base_1+"vø"+base_2+"ur" ; + PPl => base_1+"vø"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"va"+base_2 ; + PSg P2 => base_1+"va"+base_2+"st" ; + PSg P3 => base_1+"va"+base_2 ; + PPl => base_1+"vu"+base_2+"u" + } + } ; + Nonfinite = base_1+"vø"+base_2+"a" ; + Particle = table { + Pres => base_1+"vø"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV060" + } ; + +mkV061 : Str -> V ; +mkV061 base = + case base of { + base_1+"y"+base_2@?+"gja" => lin V + { Converb = base_1+"u"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"y"+base_2+"g" ; + Pl => base_1+"y"+base_2+"gið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"y"+base_2+"gi" ; + PSg P2 => base_1+"y"+base_2+"gur" ; + PSg P3 => base_1+"y"+base_2+"gur" ; + PPl => base_1+"y"+base_2+"gja" + } ; + Past => table { + PSg P1 => base_1+"u"+base_2+"di" ; + PSg P2 => base_1+"u"+base_2+"di" ; + PSg P3 => base_1+"u"+base_2+"di" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"y"+base_2+"gja" ; + Particle = table { + Pres => base_1+"y"+base_2+"gjandi" ; + Past => base_1+"u"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV061" + } ; + +mkV062 : Str -> V ; +mkV062 base = + case base of { + base_1+"o"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"o"+base_2 ; + Pl => base_1+"o"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"o"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"o"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"o"+base_2 ; + PSg P2 => base_1+"o"+base_2+"st" ; + PSg P3 => base_1+"o"+base_2 ; + PPl => base_1+"o"+base_2+"u" + } + } ; + Nonfinite = base_1+"o"+base_2+"a" ; + Particle = table { + Pres => base_1+"o"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV062" + } ; + +mkV063 : Str -> V ; +mkV063 base = + case base of { + base_1+"pa" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"p" ; + Pl => base_1+"pið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"pi" ; + PSg P2 => base_1+"pir" ; + PSg P3 => base_1+"pir" ; + PPl => base_1+"pa" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"pa" ; + Particle = table { + Pres => base_1+"pandi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV063" + } ; + +mkV064 : Str -> V ; +mkV064 base = + case base of { + base_1+"úgva" => lin V + { Converb = base_1+"ovið" ; + Imperative_Jussive = table { + Sg => base_1+"úg" ; + Pl => base_1+"úgið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"úgvi" ; + PSg P2 => base_1+"ývur" ; + PSg P3 => base_1+"ývur" ; + PPl => base_1+"úgva" + } ; + Past => table { + PSg P1 => base_1+"eyv" ; + PSg P2 => base_1+"eyvst" ; + PSg P3 => base_1+"eyv" ; + PPl => base_1+"uvu" + } + } ; + Nonfinite = base_1+"úgva" ; + Particle = table { + Pres => base_1+"úgvandi" ; + Past => base_1+"ovin" + } + }; + _ => error "Can't apply paradigm mkV064" + } ; + +mkV065 : Str -> V ; +mkV065 base = + case base of { + base_1+"u"+base_2@?+"na" => lin V + { Converb = base_1+"u"+base_2+"nað" ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"n" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"n" ; + PPl => base_1+"u"+base_2+"nu" + } ; + Past => table { + PSg P1 => base_1+"u"+base_2+"di" ; + PSg P2 => base_1+"u"+base_2+"di" ; + PSg P3 => base_1+"u"+base_2+"di" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"u"+base_2+"na" ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV065" + } ; + +mkV066 : Str -> V ; +mkV066 base = + case base of { + base_1+"ø"+base_2@?+"a" => lin V + { Converb = base_1+"ø"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"ø"+base_2 ; + Pl => base_1+"ø"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ø"+base_2+"i" ; + PSg P2 => base_1+"ø"+base_2+"ur" ; + PSg P3 => base_1+"ø"+base_2+"ur" ; + PPl => base_1+"ø"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"ø"+base_2+"a" ; + Particle = table { + Pres => base_1+"ø"+base_2+"andi" ; + Past => base_1+"ø"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV066" + } ; + +mkV067 : Str -> V ; +mkV067 base = + case base of { + base_1+"sa" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"s" ; + Pl => base_1+"sið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"si" ; + PSg P2 => base_1+"sir" ; + PSg P3 => base_1+"sir" ; + PPl => base_1+"sa" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"sa" ; + Particle = table { + Pres => base_1+"sandi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV067" + } ; + +mkV068 : Str -> V ; +mkV068 base = + case base of { + base_1+"a" => lin V + { Converb = base_1+"ið" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"r" ; + PSg P3 => base_1+"r" ; + PPl => base_1+"a" + } ; + Past => table { + PSg P1 => base_1+"ði" ; + PSg P2 => base_1+"ði" ; + PSg P3 => base_1+"ði" ; + PPl => base_1+"ðu" + } + } ; + Nonfinite = base_1+"a" ; + Particle = table { + Pres => base_1+"andi" ; + Past => base_1+"in" + } + }; + _ => error "Can't apply paradigm mkV068" + } ; + +mkV069 : Str -> V ; +mkV069 base = + case base of { + base_1+"e"+base_2@?+"gja" => lin V + { Converb = base_1+"a"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2+"gj" ; + Pl => base_1+"e"+base_2+"gjið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"gi" ; + PSg P2 => base_1+"e"+base_2+"gur" ; + PSg P3 => base_1+"e"+base_2+"gur" ; + PPl => base_1+"e"+base_2+"gja" + } ; + Past => table { + PSg P1 => base_1+"e"+base_2+"ði" ; + PSg P2 => base_1+"e"+base_2+"ði" ; + PSg P3 => base_1+"e"+base_2+"ði" ; + PPl => base_1+"ø"+base_2+"du" + } + } ; + Nonfinite = base_1+"e"+base_2+"gja" ; + Particle = table { + Pres => base_1+"e"+base_2+"gjandi" ; + Past => base_1+"a"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV069" + } ; + +mkV070 : Str -> V ; +mkV070 base = + case base of { + base_1+"iggja" => lin V + { Converb = base_1+"igið" ; + Imperative_Jussive = table { + Sg => base_1+"igg" ; + Pl => base_1+"iggið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"iggi" ; + PSg P2 => base_1+"iggur" ; + PSg P3 => base_1+"iggur" ; + PPl => base_1+"iggja" + } ; + Past => table { + PSg P1 => base_1+"á" ; + PSg P2 => base_1+"ást" ; + PSg P3 => base_1+"á" ; + PPl => base_1+"ógu" + } + } ; + Nonfinite = base_1+"iggja" ; + Particle = table { + Pres => base_1+"iggjandi" ; + Past => base_1+"igin" + } + }; + _ => error "Can't apply paradigm mkV070" + } ; + +mkV071 : Str -> V ; +mkV071 base = + case base of { + base_1+"e"+base_2@?+"a" => lin V + { Converb = base_1+"i"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"e"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"t" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"e"+base_2+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV071" + } ; + +mkV072 : Str -> V ; +mkV072 base = + case base of { + base_1+"a"+base_2@?+"a" => lin V + { Converb = base_1+"a"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2 ; + Pl => base_1+"a"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"a"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"æ"+base_2 ; + PSg P2 => base_1+"æ"+base_2+"st" ; + PSg P3 => base_1+"æ"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"a"+base_2+"a" ; + Particle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV072" + } ; + +mkV073 : Str -> V ; +mkV073 base = + case base of { + base_1+"á"+base_2@?+"a" => lin V + { Converb = base_1+"á"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"á"+base_2 ; + Pl => base_1+"á"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"á"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"á"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"æ"+base_2 ; + PSg P2 => base_1+"æ"+base_2+"st" ; + PSg P3 => base_1+"æ"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"á"+base_2+"a" ; + Particle = table { + Pres => base_1+"á"+base_2+"andi" ; + Past => base_1+"á"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV073" + } ; + +mkV074 : Str -> V ; +mkV074 base = + case base of { + base_1+"ey"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"ey"+base_2 ; + Pl => base_1+"ey"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ey"+base_2+"i" ; + PSg P2 => base_1+"oy"+base_2+"ur" ; + PSg P3 => base_1+"oy"+base_2+"ur" ; + PPl => base_1+"ey"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ey"+base_2 ; + PSg P2 => base_1+"ey"+base_2+"st" ; + PSg P3 => base_1+"ey"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"ey"+base_2+"a" ; + Particle = table { + Pres => base_1+"ey"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV074" + } ; + +mkV075 : Str -> V ; +mkV075 base = + case base of { + base_1+"ega" => lin V + { Converb = nonExist ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"á" ; + PSg P2 => base_1+"ást" ; + PSg P3 => base_1+"á" ; + PPl => base_1+"ugu" + } ; + Past => table { + PSg P1 => base_1+"átti" ; + PSg P2 => base_1+"átti" ; + PSg P3 => base_1+"átti" ; + PPl => base_1+"áttu" + } + } ; + Nonfinite = base_1+"ega" ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV075" + } ; + +mkV076 : Str -> V ; +mkV076 base = + case base of { + base_1+"u"+base_2@?+"na" => lin V + { Converb = base_1+"u"+base_2+"nað" ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"u"+base_2+"nu" + } ; + Past => table { + PSg P1 => base_1+"u"+base_2+"di" ; + PSg P2 => base_1+"u"+base_2+"di" ; + PSg P3 => base_1+"u"+base_2+"di" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"u"+base_2+"na" ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV076" + } ; + +mkV077 : Str -> V ; +mkV077 base = + case base of { + base_1+"ja" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ir" ; + PSg P3 => base_1+"ir" ; + PPl => base_1+"ja" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"ja" ; + Particle = table { + Pres => base_1+"jandi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV077" + } ; + +mkV078 : Str -> V ; +mkV078 base = + case base of { + base_1+"ja" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ji" ; + PSg P2 => base_1+"ur" ; + PSg P3 => base_1+"ur" ; + PPl => base_1+"ja" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"ja" ; + Particle = table { + Pres => base_1+"jandi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV078" + } ; + +mkV079 : Str -> V ; +mkV079 base = + case base of { + base_1+"ða" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"ð" ; + Pl => base_1+"ðið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ði" ; + PSg P2 => base_1+"ðir" ; + PSg P3 => base_1+"ðir" ; + PPl => base_1+"ða" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"ða" ; + Particle = table { + Pres => base_1+"ðandi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV079" + } ; + +mkV080 : Str -> V ; +mkV080 base = + case base of { + base_1+"áa" => lin V + { Converb = base_1+"átt" ; + Imperative_Jussive = table { + Sg => base_1+"á" ; + Pl => base_1+"áið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ái" ; + PSg P2 => base_1+"ær" ; + PSg P3 => base_1+"ær" ; + PPl => base_1+"áa" + } ; + Past => table { + PSg P1 => base_1+"áddi" ; + PSg P2 => base_1+"áddi" ; + PSg P3 => base_1+"áddi" ; + PPl => base_1+"áddu" + } + } ; + Nonfinite = base_1+"áa" ; + Particle = table { + Pres => base_1+"áandi" ; + Past => base_1+"áddur" + } + }; + _ => error "Can't apply paradigm mkV080" + } ; + +mkV081 : Str -> V ; +mkV081 base = + case base of { + base_1+"áða" => lin V + { Converb = base_1+"átt" ; + Imperative_Jussive = table { + Sg => base_1+"áð" ; + Pl => base_1+"áðið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"áði" ; + PSg P2 => base_1+"æður" ; + PSg P3 => base_1+"æður" ; + PPl => base_1+"áða" + } ; + Past => table { + PSg P1 => base_1+"addi" ; + PSg P2 => base_1+"addi" ; + PSg P3 => base_1+"addi" ; + PPl => base_1+"addu" + } + } ; + Nonfinite = base_1+"áða" ; + Particle = table { + Pres => base_1+"áðandi" ; + Past => base_1+"áðin" + } + }; + _ => error "Can't apply paradigm mkV081" + } ; + +mkV082 : Str -> V ; +mkV082 base = + case base of { + base_1+"ða"+base_2@(?+?) => lin V + { Converb = base_1+"ð"+base_2 ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ði"+base_2 ; + PSg P2 => base_1+"ða"+base_2 ; + PSg P3 => base_1+"ða"+base_2 ; + PPl => base_1+"ða"+base_2 + } ; + Past => table { + PSg P1 => base_1+"ddi"+base_2 ; + PSg P2 => base_1+"ddi"+base_2 ; + PSg P3 => base_1+"ddi"+base_2 ; + PPl => base_1+"ddu"+base_2 + } + } ; + Nonfinite = base_1+"ða"+base_2 ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV082" + } ; + +mkV083 : Str -> V ; +mkV083 base = + case base of { + base_1+"ø"+base_2@?+"ka" => lin V + { Converb = base_1+"o"+base_2+"kið" ; + Imperative_Jussive = table { + Sg => base_1+"ø"+base_2+"k" ; + Pl => base_1+"ø"+base_2+"kið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ø"+base_2+"ki" ; + PSg P2 => base_1+"ø"+base_2+"kur" ; + PSg P3 => base_1+"ø"+base_2+"kur" ; + PPl => base_1+"ø"+base_2+"ka" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"k" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"k" ; + PPl => base_1+"u"+base_2+"ku" + } + } ; + Nonfinite = base_1+"ø"+base_2+"ka" ; + Particle = table { + Pres => base_1+"ø"+base_2+"kandi" ; + Past => base_1+"o"+base_2+"kin" + } + }; + _ => error "Can't apply paradigm mkV083" + } ; + +mkV084 : Str -> V ; +mkV084 base = + case base of { + base_1+"íggja" => lin V + { Converb = base_1+"æð" ; + Imperative_Jussive = table { + Sg => base_1+"íggj" ; + Pl => base_1+"íggið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"íggi" ; + PSg P2 => base_1+"ært" ; + PSg P3 => base_1+"ær" ; + PPl => base_1+"íggja" + } ; + Past => table { + PSg P1 => base_1+"á" ; + PSg P2 => base_1+"ást" ; + PSg P3 => base_1+"á" ; + PPl => base_1+"óu" + } + } ; + Nonfinite = base_1+"íggja" ; + Particle = table { + Pres => base_1+"íggjandi" ; + Past => base_1+"æddur" + } + }; + _ => error "Can't apply paradigm mkV084" + } ; + +mkV085 : Str -> V ; +mkV085 base = + case base of { + base_1+"kja" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"k" ; + Pl => base_1+"kið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ki" ; + PSg P2 => base_1+"kir" ; + PSg P3 => base_1+"kir" ; + PPl => base_1+"kja" + } ; + Past => table { + PSg P1 => base_1+"ti" ; + PSg P2 => base_1+"ti" ; + PSg P3 => base_1+"ti" ; + PPl => base_1+"tu" + } + } ; + Nonfinite = base_1+"kja" ; + Particle = table { + Pres => base_1+"kjandi" ; + Past => base_1+"tur" + } + }; + _ => error "Can't apply paradigm mkV085" + } ; + +mkV086 : Str -> V ; +mkV086 base = + case base of { + base_1+"i"+base_2@?+"a" => lin V + { Converb = base_1+"a"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"i"+base_2 ; + Pl => base_1+"i"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2+"i" ; + PSg P2 => base_1+"i"+base_2+"ur" ; + PSg P3 => base_1+"i"+base_2+"ur" ; + PPl => base_1+"i"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"e"+base_2+"ði" ; + PSg P2 => base_1+"e"+base_2+"ði" ; + PSg P3 => base_1+"e"+base_2+"ði" ; + PPl => base_1+"ø"+base_2+"du" + } + } ; + Nonfinite = base_1+"i"+base_2+"a" ; + Particle = table { + Pres => base_1+"i"+base_2+"andi" ; + Past => base_1+"a"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV086" + } ; + +mkV087 : Str -> V ; +mkV087 base = + case base of { + base_1+"i"+base_2@?+"a" => lin V + { Converb = base_1+"i"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"i"+base_2 ; + Pl => base_1+"i"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2+"i" ; + PSg P2 => base_1+"i"+base_2+"ur" ; + PSg P3 => base_1+"i"+base_2+"ur" ; + PPl => base_1+"i"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => "sat"+base_1+base_2 ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"i"+base_2+"a" ; + Particle = table { + Pres => base_1+"i"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV087" + } ; + +mkV088 : Str -> V ; +mkV088 base = + case base of { + base_1+"u"+base_2@?+"a" => lin V + { Converb = base_1+"u"+base_2+"að" ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"t" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } ; + Past => table { + PSg P1 => base_1+"u"+base_2+"di" ; + PSg P2 => base_1+"u"+base_2+"di" ; + PSg P3 => base_1+"u"+base_2+"di" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"u"+base_2+"a" ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV088" + } ; + +mkV089 : Str -> V ; +mkV089 base = + case base of { + base_1+"ei"+base_2@(?+?)+"ja" => lin V + { Converb = base_1+"o"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"ei"+base_2+"j" ; + Pl => base_1+"ei"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ei"+base_2+"i" ; + PSg P2 => base_1+"ei"+base_2+"ir" ; + PSg P3 => base_1+"ei"+base_2+"ir" ; + PPl => base_1+"ei"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"o"+base_2+"ti" ; + PSg P2 => base_1+"o"+base_2+"ti" ; + PSg P3 => base_1+"o"+base_2+"ti" ; + PPl => base_1+"o"+base_2+"tu" + } + } ; + Nonfinite = base_1+"ei"+base_2+"ja" ; + Particle = table { + Pres => base_1+"ei"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"tur" + } + }; + _ => error "Can't apply paradigm mkV089" + } ; + +mkV090 : Str -> V ; +mkV090 base = + case base of { + base_1+"ja" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1+"j" ; + Pl => base_1+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ji" ; + PSg P2 => base_1+"jir" ; + PSg P3 => base_1+"jir" ; + PPl => base_1+"ja" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"ja" ; + Particle = table { + Pres => base_1+"jandi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV090" + } ; + +mkV091 : Str -> V ; +mkV091 base = + case base of { + base_1+"jó"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"jó"+base_2 ; + Pl => base_1+"jó"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"jó"+base_2+"i" ; + PSg P2 => base_1+"jý"+base_2+"ur" ; + PSg P3 => base_1+"jý"+base_2+"ur" ; + PPl => base_1+"jó"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ey"+base_2 ; + PSg P2 => base_1+"ey"+base_2+"st" ; + PSg P3 => base_1+"ey"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"jó"+base_2+"a" ; + Particle = table { + Pres => base_1+"jó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV091" + } ; + +mkV092 : Str -> V ; +mkV092 base = + case base of { + base_1+"áa" => lin V + { Converb = base_1+"igið" ; + Imperative_Jussive = table { + Sg => base_1+"á" ; + Pl => base_1+"áið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ái" ; + PSg P2 => base_1+"ært" ; + PSg P3 => base_1+"ær" ; + PPl => base_1+"áa" + } ; + Past => table { + PSg P1 => base_1+"ó" ; + PSg P2 => base_1+"óst" ; + PSg P3 => base_1+"ó" ; + PPl => base_1+"ógu" + } + } ; + Nonfinite = base_1+"áa" ; + Particle = table { + Pres => base_1+"áandi" ; + Past => base_1+"igin" + } + }; + _ => error "Can't apply paradigm mkV092" + } ; + +mkV093 : Str -> V ; +mkV093 base = + case base of { + base_1+"y"+base_2@?+"ja" => lin V + { Converb = base_1+"u"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"y"+base_2 ; + Pl => base_1+"y"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"y"+base_2+"ji" ; + PSg P2 => base_1+"y"+base_2+"t" ; + PSg P3 => base_1+"y"+base_2 ; + PPl => base_1+"y"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"u"+base_2+"di" ; + PSg P2 => base_1+"u"+base_2+"di" ; + PSg P3 => base_1+"u"+base_2+"di" ; + PPl => base_1+"u"+base_2+"du" + } + } ; + Nonfinite = base_1+"y"+base_2+"ja" ; + Particle = table { + Pres => base_1+"y"+base_2+"jandi" ; + Past => base_1+"u"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV093" + } ; + +mkV094 : Str -> V ; +mkV094 base = + case base of { + base_1+"i"+base_2@?+"na" => lin V + { Converb = base_1+"u"+base_2+"nið" ; + Imperative_Jussive = table { + Sg => base_1+"i"+base_2+"n" ; + Pl => base_1+"i"+base_2+"nið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2+"ni" ; + PSg P2 => base_1+"i"+base_2+"nur" ; + PSg P3 => base_1+"i"+base_2+"nur" ; + PPl => base_1+"i"+base_2+"na" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"n" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"n" ; + PPl => base_1+"u"+base_2+"nu" + } + } ; + Nonfinite = base_1+"i"+base_2+"na" ; + Particle = table { + Pres => base_1+"i"+base_2+"nandi" ; + Past => base_1+"u"+base_2+"nin" + } + }; + _ => error "Can't apply paradigm mkV094" + } ; + +mkV095 : Str -> V ; +mkV095 base = + case base of { + base_1+"anda" => lin V + { Converb = base_1+"aðið" ; + Imperative_Jussive = table { + Sg => base_1+"att" ; + Pl => base_1+"andið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"andi" ; + PSg P2 => base_1+"endur" ; + PSg P3 => base_1+"endur" ; + PPl => base_1+"anda" + } ; + Past => table { + PSg P1 => base_1+"óð" ; + PSg P2 => base_1+"óðst" ; + PSg P3 => base_1+"óð" ; + PPl => base_1+"óðu" + } + } ; + Nonfinite = base_1+"anda" ; + Particle = table { + Pres => base_1+"andandi" ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV095" + } ; + +mkV096 : Str -> V ; +mkV096 base = + case base of { + base_1+"ei"+base_2@?+"ja" => lin V + { Converb = base_1+"o"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"ei"+base_2 ; + Pl => base_1+"ei"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ei"+base_2+"i" ; + PSg P2 => base_1+"ei"+base_2+"ir" ; + PSg P3 => base_1+"ei"+base_2+"ir" ; + PPl => base_1+"ei"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"o"+base_2+"ti" ; + PSg P2 => base_1+"o"+base_2+"ti" ; + PSg P3 => base_1+"o"+base_2+"ti" ; + PPl => base_1+"o"+base_2+"tu" + } + } ; + Nonfinite = base_1+"ei"+base_2+"ja" ; + Particle = table { + Pres => base_1+"ei"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"tur" + } + }; + _ => error "Can't apply paradigm mkV096" + } ; + +mkV097 : Str -> V ; +mkV097 base = + case base of { + base_1+"inga" => lin V + { Converb = base_1+"ungið" ; + Imperative_Jussive = table { + Sg => base_1+"ikk" ; + Pl => base_1+"ingið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ingi" ; + PSg P2 => base_1+"ingur" ; + PSg P3 => base_1+"ingur" ; + PPl => base_1+"inga" + } ; + Past => table { + PSg P1 => base_1+"akk" ; + PSg P2 => base_1+"akst" ; + PSg P3 => base_1+"akk" ; + PPl => base_1+"ungu" + } + } ; + Nonfinite = base_1+"inga" ; + Particle = table { + Pres => base_1+"ingandi" ; + Past => base_1+"ungin" + } + }; + _ => error "Can't apply paradigm mkV097" + } ; + +mkV098 : Str -> V ; +mkV098 base = + case base of { + base_1+"ja"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"ja"+base_2 ; + Pl => base_1+"ja"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ja"+base_2+"i" ; + PSg P2 => base_1+"je"+base_2+"ur" ; + PSg P3 => base_1+"je"+base_2+"ur" ; + PPl => base_1+"ja"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"jó"+base_2 ; + PSg P2 => base_1+"jó"+base_2+"st" ; + PSg P3 => base_1+"jó"+base_2 ; + PPl => base_1+"jó"+base_2+"u" + } + } ; + Nonfinite = base_1+"ja"+base_2+"a" ; + Particle = table { + Pres => base_1+"ja"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV098" + } ; + +mkV099 : Str -> V ; +mkV099 base = + case base of { + base_1+"o"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"o"+base_2 ; + Pl => base_1+"o"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"o"+base_2+"i" ; + PSg P2 => base_1+base_2+"evur" ; + PSg P3 => base_1+base_2+"evur" ; + PPl => base_1+"o"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+base_2+"av" ; + PSg P2 => base_1+base_2+"avst" ; + PSg P3 => base_1+base_2+"av" ; + PPl => base_1+base_2+"óvu" + } + } ; + Nonfinite = base_1+"o"+base_2+"a" ; + Particle = table { + Pres => base_1+"o"+base_2+"andi" ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV099" + } ; + +mkV100 : Str -> V ; +mkV100 base = + case base of { + base_1+"í"+base_2@?+"ja" => lin V + { Converb = base_1+"i"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"í"+base_2+"j" ; + Pl => base_1+"í"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"í"+base_2+"i" ; + PSg P2 => base_1+"í"+base_2+"ur" ; + PSg P3 => base_1+"í"+base_2+"ur" ; + PPl => base_1+"í"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"ei"+base_2 ; + PSg P2 => base_1+"ei"+base_2+"st" ; + PSg P3 => base_1+"ei"+base_2 ; + PPl => base_1+"i"+base_2+"u" + } + } ; + Nonfinite = base_1+"í"+base_2+"ja" ; + Particle = table { + Pres => base_1+"í"+base_2+"jandi" ; + Past => base_1+"i"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV100" + } ; + +mkV101 : Str -> V ; +mkV101 base = + case base of { + base_1+"i"+base_2@?+"ja" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"i"+base_2 ; + Pl => base_1+"i"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2+"ji" ; + PSg P2 => base_1+"i"+base_2+"ur" ; + PSg P3 => base_1+"i"+base_2+"ur" ; + PPl => base_1+"i"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"i"+base_2+"ja" ; + Particle = table { + Pres => base_1+"i"+base_2+"jandi" ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV101" + } ; + +mkV102 : Str -> V ; +mkV102 base = + case base of { + base_1+"ja" => lin V + { Converb = base_1+"t" ; + Imperative_Jussive = table { + Sg => base_1 ; + Pl => base_1+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i" ; + PSg P2 => base_1+"ir" ; + PSg P3 => base_1+"ir" ; + PPl => base_1+"ja" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"ja" ; + Particle = table { + Pres => base_1+"jandi" ; + Past => base_1+"dur" + } + }; + _ => error "Can't apply paradigm mkV102" + } ; + +mkV103 : Str -> V ; +mkV103 base = + case base of { + base_1+"ø"+base_2@?+"ja" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"ø"+base_2+"j" ; + Pl => base_1+"ø"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"ø"+base_2+"ji" ; + PSg P2 => base_1+"ø"+base_2+"t" ; + PSg P3 => base_1+"ø"+base_2 ; + PPl => base_1+"ø"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"ó"+base_2 ; + PSg P2 => base_1+"ó"+base_2+"st" ; + PSg P3 => base_1+"ó"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"ø"+base_2+"ja" ; + Particle = table { + Pres => base_1+"ø"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV103" + } ; + +mkV104 : Str -> V ; +mkV104 base = + case base of { + base_1+"y"+base_2@(?+?)+"ja" => lin V + { Converb = base_1+"u"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"y"+base_2+"j" ; + Pl => base_1+"y"+base_2+"jið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"y"+base_2+"i" ; + PSg P2 => base_1+"y"+base_2+"ur" ; + PSg P3 => base_1+"y"+base_2+"ur" ; + PPl => base_1+"y"+base_2+"ja" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2 ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"y"+base_2+"ja" ; + Particle = table { + Pres => base_1+"y"+base_2+"jandi" ; + Past => base_1+"u"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV104" + } ; + +mkV105 : Str -> V ; +mkV105 base = + case base of { + base_1+"i"+base_2@?+"a" => lin V + { Converb = base_1+"a"+base_2+"t" ; + Imperative_Jussive = table { + Sg => base_1+"i"+base_2 ; + Pl => base_1+"i"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"i"+base_2+"i" ; + PSg P2 => base_1+"i"+base_2+"ur" ; + PSg P3 => base_1+"i"+base_2+"ur" ; + PPl => base_1+"i"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"di" ; + PSg P2 => base_1+"a"+base_2+"di" ; + PSg P3 => base_1+"a"+base_2+"di" ; + PPl => base_1+"a"+base_2+"du" + } + } ; + Nonfinite = base_1+"i"+base_2+"a" ; + Particle = table { + Pres => base_1+"i"+base_2+"andi" ; + Past => base_1+"a"+base_2+"dur" + } + }; + _ => error "Can't apply paradigm mkV105" + } ; + +mkV106 : Str -> V ; +mkV106 base = + case base of { + base_1+"e"+base_2@?+"fa" => lin V + { Converb = base_1+"o"+base_2+"fið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2+"f" ; + Pl => base_1+"e"+base_2+"fið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"fi" ; + PSg P2 => base_1+"e"+base_2+"fur" ; + PSg P3 => base_1+"e"+base_2+"fur" ; + PPl => base_1+"e"+base_2+"fa" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2+"f" ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2+"f" ; + PPl => base_1+"u"+base_2+"fu" + } + } ; + Nonfinite = base_1+"e"+base_2+"fa" ; + Particle = table { + Pres => base_1+"e"+base_2+"fandi" ; + Past => base_1+"o"+base_2+"fin" + } + }; + _ => error "Can't apply paradigm mkV106" + } ; + +mkV107 : Str -> V ; +mkV107 base = + case base of { + base_1+"a"+base_2@(?+?)+"a" => lin V + { Converb = base_1+"a"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"a"+base_2 ; + Pl => base_1+"a"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"a"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"a"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2 ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"u"+base_2+"u" + } + } ; + Nonfinite = base_1+"a"+base_2+"a" ; + Particle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV107" + } ; + +mkV108 : Str -> V ; +mkV108 base = + case base of { + base_1+"e"+base_2@(?+?)+"a" => lin V + { Converb = nonExist ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"e"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2 ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"e"+base_2+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV108" + } ; + +mkV109 : Str -> V ; +mkV109 base = + case base of { + base_1+base_2@?+base_3@?+"a" => lin V + { Converb = base_1+base_2+base_3+"að" ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+base_3 ; + PSg P2 => base_1+"e"+base_2+base_3+"st" ; + PSg P3 => base_1+"e"+base_2+base_3 ; + PPl => base_1+base_2+base_3+"a" + } ; + Past => table { + PSg P1 => base_1+base_2+"s"+base_3+"i" ; + PSg P2 => base_1+base_2+"s"+base_3+"i" ; + PSg P3 => base_1+base_2+"s"+base_3+"i" ; + PPl => base_1+base_2+"s"+base_3+"u" + } + } ; + Nonfinite = base_1+base_2+base_3+"a" ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV109" + } ; + +mkV110 : Str -> V ; +mkV110 base = + case base of { + "d"+base_1+"finite" => lin V + { Converb = "v"+base_1+"rð" ; + Imperative_Jussive = table { + Sg => "v"+base_1+"rðsins" ; + Pl => "v"+base_1+"rðanna" + } ; + Indicative = table { + Pres => table { + PSg P1 => "v"+base_1+"rð" ; + PSg P2 => "v"+base_1+"rðið" ; + PSg P3 => "v"+base_1+"rð" ; + PPl => "v"+base_1+"rðini" + } ; + Past => table { + PSg P1 => "v"+base_1+"rð" ; + PSg P2 => "v"+base_1+"rðið" ; + PSg P3 => "v"+base_1+"rð" ; + PPl => "v"+base_1+"rðini" + } + } ; + Nonfinite = "d"+base_1+"finite" ; + Particle = table { + Pres => "v"+base_1+"rð" ; + Past => "v"+base_1+"rð" + } + }; + _ => error "Can't apply paradigm mkV110" + } ; + +mkV111 : Str -> V ; +mkV111 base = + case base of { + base_1+"e"+base_2@?+"a" => lin V + { Converb = base_1+"o"+base_2+"ið" ; + Imperative_Jussive = table { + Sg => base_1+"e"+base_2 ; + Pl => base_1+"e"+base_2+"ið" + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1+"e"+base_2+"i" ; + PSg P2 => base_1+"e"+base_2+"ur" ; + PSg P3 => base_1+"e"+base_2+"ur" ; + PPl => base_1+"e"+base_2+"a" + } ; + Past => table { + PSg P1 => base_1+"a"+base_2 ; + PSg P2 => base_1+"a"+base_2+"st" ; + PSg P3 => base_1+"a"+base_2 ; + PPl => base_1+"ó"+base_2+"u" + } + } ; + Nonfinite = base_1+"e"+base_2+"a" ; + Particle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } + }; + _ => error "Can't apply paradigm mkV111" + } ; + +mkV112 : Str -> V ; +mkV112 base = + case base of { + base_1+"ja" => lin V + { Converb = base_1+"að" ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => nonExist + } ; + Indicative = table { + Pres => table { + PSg P1 => base_1 ; + PSg P2 => base_1+"t" ; + PSg P3 => base_1 ; + PPl => base_1+"ja" + } ; + Past => table { + PSg P1 => base_1+"di" ; + PSg P2 => base_1+"di" ; + PSg P3 => base_1+"di" ; + PPl => base_1+"du" + } + } ; + Nonfinite = base_1+"ja" ; + Particle = table { + Pres => nonExist ; + Past => nonExist + } + }; + _ => error "Can't apply paradigm mkV112" + } ; +} \ No newline at end of file diff --git a/src/faroese/NounFao.gf b/src/faroese/NounFao.gf new file mode 100644 index 00000000..b9133c36 --- /dev/null +++ b/src/faroese/NounFao.gf @@ -0,0 +1,4 @@ +concrete NounFao of Noun = CatFao ** { +lin + UseN n = n ; +} diff --git a/src/faroese/ParadigmsFao.gf b/src/faroese/ParadigmsFao.gf new file mode 100644 index 00000000..8c631edc --- /dev/null +++ b/src/faroese/ParadigmsFao.gf @@ -0,0 +1,567 @@ +resource ParadigmsFao = MorphoFao ** open Predef, Prelude, CatFao, ResFao in { +oper + regN : Str -> N -- s;Indef;Sg;Nom + = \form -> case form of { + _ + "aður" => mkN032 form; + _ + "eki" => mkN025 form; + _ + "ski" => mkN014 form; + _ + "ýki" => mkN002 form; + _ + "rki" => mkN014 form; + _ + "lki" => mkN014 form; + _ + "øki" => mkN014 form; + _ + "øri" => mkN002 form; + _ + "vri" => mkN021 form; + _ + "lri" => mkN031 form; + _ + "yri" => mkN079 form; + _ + "ldi" => mkN031 form; + _ + "dni" => mkN002 form; + _ + "gni" => mkN002 form; + _ + "vni" => mkN021 form; + _ + "avi" => mkN021 form; + _ + "rvi" => mkN031 form; + _ + "yvi" => mkN031 form; + _ + "ugi" => mkN021 form; + _ + "ggi" => mkN040 form; + _ + "rgi" => mkN014 form; + _ + "øpi" => mkN002 form; + _ + "ýpi" => mkN031 form; + _ + "ppi" => mkN031 form; + _ + "mli" => mkN021 form; + _ + "pli" => mkN031 form; + _ + "æli" => mkN031 form; + _ + "iði" => mkN031 form; + _ + "æði" => mkN031 form; + _ + "ýði" => mkN031 form; + _ + "eði" => mkN104 form; + _ + "ysi" => mkN002 form; + _ + "lsi" => mkN031 form; + _ + "esi" => mkN031 form; + _ + "æmi" => mkN002 form; + _ + "ami" => mkN021 form; + _ + "ømi" => mkN031 form; + _ + "rmi" => mkN079 form; + _ + "sur" => mkN003 form; + _ + "øur" => mkN009 form; + _ + "ýur" => mkN009 form; + _ + "par" => mkN008 form; + _ + "gar" => mkN015 form; + _ + "tar" => mkN019 form; + _ + "mar" => mkN159 form; + _ + "fer" => mkN008 form; + _ + "ter" => mkN019 form; + _ + "tør" => mkN015 form; + _ + "dir" => mkN133 form; + _ + "ørr" => mkN139 form; + _ + "arn" => mkN004 form; + _ + "ørn" => mkN018 form; + _ + "agn" => mkN008 form; + _ + "ogn" => mkN007 form; + _ + "egn" => mkN008 form; + _ + "pan" => mkN007 form; + _ + "ran" => mkN008 form; + _ + "ian" => mkN008 form; + _ + "ton" => mkN008 form; + _ + "lon" => mkN019 form; + _ + "ein" => mkN019 form; + _ + "min" => mkN045 form; + _ + "vín" => mkN019 form; + _ + "ekn" => mkN019 form; + _ + "gun" => mkN024 form; + _ + "ødn" => mkN018 form; + _ + "jún" => mkN115 form; + _ + "lak" => mkN008 form; + _ + "bak" => mkN049 form; + _ + "ark" => mkN004 form; + _ + "ørk" => mkN018 form; + _ + "tsk" => mkN007 form; + _ + "pik" => mkN008 form; + _ + "eik" => mkN015 form; + _ + "økk" => mkN018 form; + _ + "ekk" => mkN068 form; + _ + "ikk" => mkN068 form; + _ + "úkk" => mkN163 form; + _ + "røk" => mkN121 form; + _ + "øgg" => mkN007 form; + _ + "agg" => mkN091 form; + _ + "org" => mkN015 form; + _ + "log" => mkN049 form; + _ + "ald" => mkN004 form; + _ + "old" => mkN007 form; + _ + "rgd" => mkN007 form; + _ + "und" => mkN019 form; + _ + "and" => mkN096 form; + _ + "ond" => mkN117 form; + _ + "ødd" => mkN088 form; + _ + "arð" => mkN004 form; + _ + "urð" => mkN006 form; + _ + "ørð" => mkN018 form; + _ + "lið" => mkN027 form; + _ + "nið" => mkN027 form; + _ + "ráð" => mkN027 form; + _ + "jal" => mkN004 form; + _ + "gal" => mkN038 form; + _ + "eil" => mkN006 form; + _ + "fil" => mkN099 form; + _ + "sól" => mkN007 form; + _ + "egl" => mkN015 form; + _ + "øll" => mkN078 form; + _ + "ell" => mkN078 form; + _ + "lat" => mkN004 form; + _ + "ikt" => mkN007 form; + _ + "átt" => mkN137 form; + _ + "itt" => mkN087 form; + _ + "ýtt" => mkN087 form; + _ + "att" => mkN087 form; + _ + "uft" => mkN007 form; + _ + "bót" => mkN007 form; + _ + "ist" => mkN008 form; + _ + "øst" => mkN008 form; + _ + "jøt" => mkN008 form; + _ + "eit" => mkN015 form; + _ + "rát" => mkN008 form; + _ + "pet" => mkN015 form; + _ + "álp" => mkN007 form; + _ + "upp" => mkN015 form; + _ + "alv" => mkN004 form; + _ + "eyv" => mkN006 form; + _ + "úgv" => mkN132 form; + _ + "yga" => mkN044 form; + _ + "oka" => mkN012 form; + _ + "ina" => mkN012 form; + _ + "mla" => mkN012 form; + _ + "vja" => mkN012 form; + _ + "tsj" => mkN015 form; + _ + "tos" => mkN026 form; + _ + "jús" => mkN026 form; + _ + "lús" => mkN047 form; + _ + "mús" => mkN047 form; + _ + "bus" => mkN026 form; + _ + "ins" => mkN026 form; + _ + "fræ" => mkN027 form; + _ + "omb" => mkN117 form; + _ + "ði" => mkN025 form; + _ + "fi" => mkN002 form; + _ + "ai" => mkN015 form; + _ + "ar" => mkN004 form; + _ + "ðr" => mkN006 form; + _ + "er" => mkN046 form; + _ + "úr" => mkN007 form; + _ + "or" => mkN008 form; + _ + "yr" => mkN008 form; + _ + "ør" => mkN008 form; + _ + "ár" => mkN019 form; + _ + "ór" => mkN019 form; + _ + "ýr" => mkN019 form; + _ + "ir" => mkN053 form; + _ + "ír" => mkN019 form; + _ + "ær" => mkN034 form; + _ + "æv" => mkN034 form; + _ + "rr" => mkN080 form; + _ + "rn" => mkN008 form; + _ + "vn" => mkN004 form; + _ + "gn" => mkN018 form; + _ + "tn" => mkN004 form; + _ + "in" => mkN008 form; + _ + "ín" => mkN008 form; + _ + "yn" => mkN008 form; + _ + "nn" => mkN051 form; + _ + "ún" => mkN019 form; + _ + "ýn" => mkN019 form; + _ + "sn" => mkN019 form; + _ + "án" => mkN019 form; + _ + "pn" => mkN019 form; + _ + "ak" => mkN004 form; + _ + "ík" => mkN006 form; + _ + "sk" => mkN008 form; + _ + "ðk" => mkN008 form; + _ + "kk" => mkN015 form; + _ + "øk" => mkN018 form; + _ + "ók" => mkN061 form; + _ + "ag" => mkN004 form; + _ + "gg" => mkN063 form; + _ + "óg" => mkN015 form; + _ + "rg" => mkN019 form; + _ + "ig" => mkN019 form; + _ + "og" => mkN027 form; + _ + "ld" => mkN019 form; + _ + "dd" => mkN076 form; + _ + "vd" => mkN118 form; + _ + "að" => mkN004 form; + _ + "rð" => mkN019 form; + _ + "oð" => mkN027 form; + _ + "al" => mkN008 form; + _ + "il" => mkN045 form; + _ + "ll" => mkN085 form; + _ + "ul" => mkN024 form; + _ + "yl" => mkN046 form; + _ + "øl" => mkN075 form; + _ + "el" => mkN092 form; + _ + "at" => mkN015 form; + _ + "kt" => mkN015 form; + _ + "tt" => mkN015 form; + _ + "ft" => mkN112 form; + _ + "ót" => mkN061 form; + _ + "lt" => mkN008 form; + _ + "nt" => mkN008 form; + _ + "øt" => mkN015 form; + _ + "mt" => mkN008 form; + _ + "yt" => mkN015 form; + _ + "vt" => mkN015 form; + _ + "ít" => mkN015 form; + _ + "rp" => mkN004 form; + _ + "lp" => mkN015 form; + _ + "pp" => mkN108 form; + _ + "rv" => mkN004 form; + _ + "lv" => mkN008 form; + _ + "yv" => mkN008 form; + _ + "av" => mkN008 form; + _ + "øv" => mkN018 form; + _ + "ív" => mkN019 form; + _ + "gv" => mkN041 form; + _ + "ev" => mkN046 form; + _ + "lf" => mkN008 form; + _ + "ím" => mkN008 form; + _ + "am" => mkN008 form; + _ + "mm" => mkN054 form; + _ + "po" => mkN008 form; + _ + "no" => mkN015 form; + _ + "sj" => mkN026 form; + _ + "ós" => mkN015 form; + _ + "ks" => mkN015 form; + _ + "as" => mkN103 form; + _ + "ás" => mkN100 form; + _ + "es" => mkN092 form; + _ + "øs" => mkN139 form; + _ + "i" => mkN001 form; + _ + "r" => mkN010 form; + _ + "n" => mkN015 form; + _ + "k" => mkN019 form; + _ + "g" => mkN006 form; + _ + "d" => mkN015 form; + _ + "ð" => mkN015 form; + _ + "l" => mkN019 form; + _ + "t" => mkN019 form; + _ + "p" => mkN019 form; + _ + "a" => mkN005 form; + _ + "y" => mkN008 form; + _ + "ó" => mkN007 form; + _ + "ý" => mkN008 form; + _ + "ø" => mkN008 form; + _ + "f" => mkN077 form; + _ + "m" => mkN019 form; + _ + "o" => mkN019 form; + _ + "j" => mkN105 form; + _ + "s" => mkN028 form; + _ + "á" => mkN015 form; + _ + "í" => mkN019 form; + _ + "u" => mkN019 form; + _ + "e" => mkN027 form; + _ + "æ" => mkN022 form; + _ + "b" => mkN096 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2N : Str -> Str -> N -- s;Indef;Sg;Nom s;Indef;Pl;Dat + = \form1, form2 -> case of { + <_ + "ski", _ + "kum"> => mkN001 form1; + <_ + "ugi", _ + "gum"> => mkN001 form1; + <_ + "ggi", _ + "gum"> => mkN001 form1; + <_ + "sur", _ + "num"> => mkN058 form1; + <_ + "ald", _ + "num"> => mkN008 form1; + <_ + "eyv", _ + "num"> => mkN008 form1; + <_ + "ist", _ + "tum"> => mkN015 form1; + <_ + "ður", _ + "ðum"> => mkN009 form1; + <_ + "ður", _ + "rum"> => mkN127 form1; + <_ + "rki", _ + "num"> => mkN021 form1; + <_ + "agg", _ + "num"> => mkN063 form1; + <_ + "ekk", _ + "num"> => mkN163 form1; + <_ + "eki", _ + "m"> => mkN001 form1; + <_ + "agn", _ + "m"> => mkN004 form1; + <_ + "pan", _ + "m"> => mkN015 form1; + <_ + "álp", _ + "m"> => mkN015 form1; + <_ + "ogn", _ + "m"> => mkN015 form1; + <_ + "sól", _ + "m"> => mkN015 form1; + <_ + "átt", _ + "i"> => mkN007 form1; + <_ + "ist", _ + "i"> => mkN007 form1; + <_ + "rki", _ + "i"> => mkN025 form1; + <_ + "øll", _ + "m"> => mkN018 form1; + <_ + "lið", _ + "m"> => mkN019 form1; + <_ + "iði", _ + "i"> => mkN025 form1; + <_ + "ði", _ + "num"> => mkN021 form1; + <_ + "ar", _ + "num"> => mkN008 form1; + <_ + "al", _ + "lum"> => mkN004 form1; + <_ + "lt", _ + "tum"> => mkN019 form1; + <_ + "sk", _ + "kum"> => mkN015 form1; + <_ + "ót", _ + "num"> => mkN008 form1; + <_ + "il", _ + "jum"> => mkN092 form1; + <_ + "ir", _ + "rum"> => mkN019 form1; + <_ + "gv", _ + "vum"> => mkN148 form1; + <_ + "gv", _ + "um"> => mkN102 form1; + <_ + "ði", _ + "m"> => mkN001 form1; + <_ + "rð", _ + "i"> => mkN007 form1; + <_ + "tt", _ + "i"> => mkN007 form1; + <_ + "ft", _ + "i"> => mkN007 form1; + <_ + "ld", _ + "i"> => mkN075 form1; + <_ + "a", _ + "aum"> => mkN019 form1; + <_ + "y", _ + "yum"> => mkN006 form1; + <_ + "ð", _ + "num"> => mkN049 form1; + <_ + "t", _ + "num"> => mkN008 form1; + <_ + "r", _ + "rum"> => mkN042 form1; + <_ + "r", _ + "jum"> => mkN150 form1; + <_ + "æ", _ + "æum"> => mkN027 form1; + <_ + "s", _ + "num"> => mkN026 form1; + <_ + "i", _ + "i"> => mkN025 form1; + <_ + "a", _ + "i"> => mkN012 form1; + <_ + "g", _ + "i"> => mkN007 form1; + <_ + "d", _ + "i"> => mkN007 form1; + <_ + "ð", _ + "i"> => mkN007 form1; + <_ + "k", _ + "i"> => mkN007 form1; + _ => regN form1 + } ; + + regA : Str -> A -- s;Masc;Sg;Nom + = \form -> case form of { + _ + "dur" => mkA001 form; + _ + "tur" => mkA003 form; + _ + "ður" => mkA010 form; + _ + "pur" => mkA004 form; + _ + "sur" => mkA008 form; + _ + "mur" => mkA016 form; + _ + "áur" => mkA017 form; + _ + "íur" => mkA017 form; + _ + "óur" => mkA017 form; + _ + "jur" => mkA033 form; + _ + "il" => mkA035 form; + _ + "in" => mkA009 form; + _ + "ur" => mkA007 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2A : Str -> Str -> A -- s;Masc;Sg;Nom s;Masc;Sg;Dat + = \form1, form2 -> case of { + _ => regA form1 + } ; + + regV : Str -> V -- Nonfinite + = \form -> case form of { + _ + "erja" => mkV011 form; + _ + "ala" => mkV046 form; + _ + "øla" => mkV009 form; + _ + "gla" => mkV009 form; + _ + "æla" => mkV009 form; + _ + "íla" => mkV020 form; + _ + "ula" => mkV088 form; + _ + "lda" => mkV056 form; + _ + "úka" => mkV044 form; + _ + "aka" => mkV054 form; + _ + "eka" => mkV028 form; + _ + "mba" => mkV009 form; + _ + "íða" => mkV014 form; + _ + "rða" => mkV108 form; + _ + "nna" => mkV039 form; + _ + "vna" => mkV009 form; + _ + "ina" => mkV009 form; + _ + "ína" => mkV014 form; + _ + "yna" => mkV009 form; + _ + "æna" => mkV020 form; + _ + "ýna" => mkV009 form; + _ + "øna" => mkV020 form; + _ + "una" => mkV021 form; + _ + "iga" => mkV086 form; + _ + "ega" => mkV075 form; + _ + "íga" => mkV014 form; + _ + "uga" => mkV029 form; + _ + "nga" => mkV047 form; + _ + "ðja" => mkV012 form; + _ + "kja" => mkV077 form; + _ + "lja" => mkV042 form; + _ + "mja" => mkV042 form; + _ + "lsa" => mkV020 form; + _ + "æsa" => mkV020 form; + _ + "ysa" => mkV020 form; + _ + "ýsa" => mkV020 form; + _ + "ósa" => mkV050 form; + _ + "esa" => mkV071 form; + _ + "sta" => mkV037 form; + _ + "tta" => mkV037 form; + _ + "áta" => mkV053 form; + _ + "íta" => mkV014 form; + _ + "óta" => mkV019 form; + _ + "yta" => mkV020 form; + _ + "ýta" => mkV020 form; + _ + "eta" => mkV023 form; + _ + "øta" => mkV020 form; + _ + "fta" => mkV037 form; + _ + "øra" => mkV009 form; + _ + "ýra" => mkV009 form; + _ + "yra" => mkV009 form; + _ + "æra" => mkV009 form; + _ + "íra" => mkV009 form; + _ + "gva" => mkV040 form; + _ + "ava" => mkV058 form; + _ + "ova" => mkV099 form; + _ + "eva" => mkV028 form; + _ + "íva" => mkV014 form; + _ + "yva" => mkV009 form; + _ + "øva" => mkV009 form; + _ + "rpa" => mkV018 form; + _ + "ópa" => mkV021 form; + _ + "epa" => mkV028 form; + _ + "úpa" => mkV044 form; + _ + "ema" => mkV018 form; + _ + "oma" => mkV062 form; + _ + "ða" => mkV006 form; + _ + "pa" => mkV020 form; + _ + "ma" => mkV009 form; + _ + "áa" => mkV034 form; + _ + "fa" => mkV106 form; + _ + "øa" => mkV043 form; + _ + "a" => mkV001 form; + _ + "t" => mkV005 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2V : Str -> Str -> V -- Nonfinite Indicative;Pres;('PSg', P2) + = \form1, form2 -> case of { + <_ + "gva", _ + "ørt"> => mkV055 form1; + <_ + "era", _ + "ert"> => mkV008 form1; + <_ + "ala", _ + "ar"> => mkV001 form1; + <_ + "ala", _ + "ir"> => mkV009 form1; + <_ + "úka", _ + "ar"> => mkV001 form1; + <_ + "aka", _ + "ar"> => mkV001 form1; + <_ + "nna", _ + "ar"> => mkV001 form1; + <_ + "íða", _ + "ar"> => mkV001 form1; + <_ + "íða", _ + "ir"> => mkV006 form1; + <_ + "rja", _ + "ar"> => mkV001 form1; + <_ + "sta", _ + "ar"> => mkV001 form1; + <_ + "sta", _ + "ur"> => mkV018 form1; + <_ + "gva", _ + "ar"> => mkV001 form1; + <_ + "rða", _ + "ar"> => mkV001 form1; + <_ + "tta", _ + "ar"> => mkV001 form1; + <_ + "tta", _ + "ur"> => mkV024 form1; + <_ + "ava", _ + "ar"> => mkV001 form1; + <_ + "iga", _ + "ar"> => mkV001 form1; + <_ + "iga", _ + "ir"> => mkV007 form1; + <_ + "ova", _ + "ar"> => mkV001 form1; + <_ + "lda", _ + "ar"> => mkV001 form1; + <_ + "lda", _ + "ir"> => mkV010 form1; + <_ + "áta", _ + "ar"> => mkV001 form1; + <_ + "vna", _ + "ar"> => mkV001 form1; + <_ + "eka", _ + "ar"> => mkV001 form1; + <_ + "mba", _ + "ar"> => mkV001 form1; + <_ + "eva", _ + "ar"> => mkV001 form1; + <_ + "ita", _ + "ir"> => mkV020 form1; + <_ + "ína", _ + "ir"> => mkV009 form1; + <_ + "íva", _ + "ir"> => mkV009 form1; + <_ + "yta", _ + "ur"> => mkV041 form1; + <_ + "ysa", _ + "ur"> => mkV041 form1; + <_ + "eta", _ + "ir"> => mkV020 form1; + <_ + "kja", _ + "ur"> => mkV100 form1; + <_ + "nna", _ + "t"> => mkV076 form1; + <_ + "rja", _ + "t"> => mkV093 form1; + <_ + "gva", _ + "t"> => mkV022 form1; + <_ + "ega", _ + "r"> => mkV001 form1; + <_ + "ita", _ + "t"> => mkV109 form1; + <_ + "lja", _ + "t"> => mkV112 form1; + <_ + "ða", _ + "ar"> => mkV001 form1; + <_ + "ða", _ + "ur"> => mkV066 form1; + <_ + "pa", _ + "ar"> => mkV001 form1; + <_ + "ma", _ + "ar"> => mkV001 form1; + <_ + "fa", _ + "ar"> => mkV001 form1; + <_ + "áa", _ + "r"> => mkV001 form1; + <_ + "a", _ + "ært"> => mkV084 form1; + <_ + "a", _ + "t"> => mkV025 form1; + _ => regV form1 + } ; + + mkN = overload { + mkN : Str -> N = regN; -- s;Indef;Sg;Nom + mkN : Str -> Str -> N = reg2N -- s;Indef;Sg;Nom s;Indef;Pl;Dat + } ; + + mkN2 = overload { + mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; + mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + } ; + + mkN3 = overload { + mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + } ; + + mkA = overload { + mkA : Str -> A = regA; -- s;Masc;Sg;Nom + mkA : Str -> Str -> A = reg2A -- s;Masc;Sg;Nom s;Masc;Sg;Dat + } ; + + mkA2 = overload { + mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; + mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + } ; + + mkV = overload { + mkV : Str -> V = regV; -- Nonfinite + mkV : Str -> Str -> V = reg2V -- Nonfinite Indicative;Pres;('PSg', P2) + } ; + + mkVV,mkVS,mkVQ,mkVA = \v -> v ; + + mkV2 = overload { + mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; + mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + } ; + + mkV3 = overload { + mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2A = overload { + mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2S = overload { + mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2Q = overload { + mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2V = overload { + mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; + mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; + mkAdA : Str -> AdA = \s -> lin AdA {s=s} ; + mkAdN : Str -> AdN = \s -> lin AdN {s=s} ; + mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s; p=""} ; + mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + + mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; + + mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; + mkIP : Str -> IP = \s -> lin IP {s=s} ; + mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; + mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; + mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; + mkQuant : Str -> Quant = \s -> lin Quant {s=s} ; + mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; + mkDet : Str -> Det = \s -> lin Det {s=s} ; + mkCard : Str -> Card = \s -> lin Card {s=s} ; + mkConj : Str -> Conj = \s -> lin Conj {s=s} ; + mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; + mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; + + mkLN : Str -> LN = \s -> lin LN {s=s} ; + mkGN : Str -> GN = \s -> lin GN {s=s} ; + mkSN : Str -> SN = \s -> lin SN {s=s} ; + mkPN : Str -> PN = \s -> lin PN {s=s} ; + +} diff --git a/src/faroese/PhraseFao.gf b/src/faroese/PhraseFao.gf new file mode 100644 index 00000000..23bc77c2 --- /dev/null +++ b/src/faroese/PhraseFao.gf @@ -0,0 +1,11 @@ +concrete PhraseFao of Phrase = CatFao ** { +lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; + UttInterj i = i ; + + NoPConj = {s = []} ; + + NoVoc = {s = []} ; +} diff --git a/src/faroese/ResFao.gf b/src/faroese/ResFao.gf new file mode 100644 index 00000000..3f680b1c --- /dev/null +++ b/src/faroese/ResFao.gf @@ -0,0 +1,131 @@ +resource ResFao = { + +param Species = Def | Indef ; +param Number = Sg | Pl ; +param Case = Nom | Acc | Dat | Gen ; +param Gender = Neutr | Fem | Masc ; +oper Noun = {s: Species => Number => Case => Str} ; -- 2135 +oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Noun = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16 -> + { s = table { + Indef => table { + Sg => table { + Nom => f1 ; + Acc => f2 ; + Dat => f3 ; + Gen => f4 + } ; + Pl => table { + Nom => f5 ; + Acc => f6 ; + Dat => f7 ; + Gen => f8 + } + } ; + Def => table { + Sg => table { + Nom => f9 ; + Acc => f10 ; + Dat => f11 ; + Gen => f12 + } ; + Pl => table { + Nom => f13 ; + Acc => f14 ; + Dat => f15 ; + Gen => f16 + } + } + } + } ; + + +oper Adj = {s: Gender => Number => Case => Str} ; -- 346 +oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24 -> + { s = table { + Masc => table { + Sg => table { + Nom => f1 ; + Acc => f2 ; + Dat => f3 ; + Gen => f4 + } ; + Pl => table { + Nom => f5 ; + Acc => f6 ; + Dat => f7 ; + Gen => f8 + } + } ; + Fem => table { + Sg => table { + Nom => f9 ; + Acc => f10 ; + Dat => f11 ; + Gen => f12 + } ; + Pl => table { + Nom => f13 ; + Acc => f14 ; + Dat => f15 ; + Gen => f16 + } + } ; + Neutr => table { + Sg => table { + Nom => f17 ; + Acc => f18 ; + Dat => f19 ; + Gen => f20 + } ; + Pl => table { + Nom => f21 ; + Acc => f22 ; + Dat => f23 ; + Gen => f24 + } + } + } + } ; + +param Tense = Past | Pres ; +param PersNum = PSg Person | PPl ; +param Person = P1 | P3 | P2 ; +oper Verb = {Converb: Str; Imperative_Jussive: Number => Str; Indicative: Tense => PersNum => Str; Nonfinite: Str; Particle: Tense => Str} ; -- 596 +oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14 -> + { Converb = f1 ; + Imperative_Jussive = table { + Sg => f2 ; + Pl => f3 + } ; + Indicative = table { + Pres => table { + PSg P1 => f4 ; + PSg P2 => f5 ; + PSg P3 => f6 ; + PPl => f7 + } ; + Past => table { + PSg P1 => f8 ; + PSg P2 => f9 ; + PSg P3 => f10 ; + PPl => f11 + } + } ; + Nonfinite = f12 ; + Particle = table { + Pres => f13 ; + Past => f14 + } + } ; + + +oper Compl = {s : Str; c : Case} ; +oper noPrep : Compl = {s=""; c=Acc} ; + +oper CommonNoun = Noun ; +oper AdjPhrase = Adj ; + +} From febd99be26887ba9701c6005123c8b7f47160ee3 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 10 Sep 2025 17:19:26 +0200 Subject: [PATCH 049/169] add faroese --- languages.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/languages.csv b/languages.csv index efedbac3..d26ab33a 100644 --- a/languages.csv +++ b/languages.csv @@ -12,6 +12,7 @@ Dut,Dutch,dutch,,,y,,,,,y,n Eng,English,english,,,y,,,,y,y,y Est,Estonian,estonian,,,,,,,,y,n Eus,Basque,basque,,,,,,,,y,n +Fao,Faroese,faroese,,,,y,n,n,n,y,n Fin,Finnish,finnish,,,y,,,,y,y,y Fre,French,french,Romance,,y,,,,y,y,y Ger,German,german,,,y,,,,,y,y From 7d695a6d49afac8aed43d9a2a62947fcb605969d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 10 Sep 2025 19:40:57 +0200 Subject: [PATCH 050/169] fix typo --- src/bulgarian/DocumentationBul.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bulgarian/DocumentationBul.gf b/src/bulgarian/DocumentationBul.gf index 7b253ecc..ae0f631a 100644 --- a/src/bulgarian/DocumentationBul.gf +++ b/src/bulgarian/DocumentationBul.gf @@ -148,7 +148,7 @@ lin s1= heading1 ("Прилагателно") ; s2= frameTable ( tr (intagAttr "th" "rowspan=\"7\"" "ед.ч." ++ - intagAttr "th" "rowspan=\"3\"" "мн.ч." ++ + intagAttr "th" "rowspan=\"3\"" "м.р." ++ th "нечленувано" ++ td (a.s ! (ASg Masc Indef))) ++ tr (th "непълен член" ++ td (a.s ! (ASg Masc Def))) ++ From 08aa91cdbbbe745751d9be0dec284655f22b0d6d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 10 Sep 2025 19:41:28 +0200 Subject: [PATCH 051/169] better inflection tables --- src/faroese/DocumentationFao.gf | 97 ++-- src/faroese/MorphoFao.gf | 898 ++++++++++++++++---------------- src/faroese/ResFao.gf | 12 +- 3 files changed, 498 insertions(+), 509 deletions(-) diff --git a/src/faroese/DocumentationFao.gf b/src/faroese/DocumentationFao.gf index 052ae2d9..72ef2064 100644 --- a/src/faroese/DocumentationFao.gf +++ b/src/faroese/DocumentationFao.gf @@ -12,22 +12,17 @@ lin t="n" ; s1="" ; s2=frameTable ( - tr (intagAttr "th" "rowspan=\"16\"" "s" ++ intagAttr "th" "rowspan=\"8\"" "Indef" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Indef ! Sg ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Indef ! Sg ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Indef ! Sg ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Indef ! Sg ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Indef ! Pl ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Indef ! Pl ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Indef ! Pl ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Indef ! Pl ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"8\"" "Def" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Def ! Sg ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Def ! Sg ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Def ! Sg ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Def ! Sg ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Def ! Pl ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Def ! Pl ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Def ! Pl ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Def ! Pl ! Gen))) ; + tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Indef" ++ th "Def") ++ + tr (intagAttr "th" "rowspan=\"4\"" "Sg" ++ + th "Nom" ++ td (x.s ! Indef ! Sg ! Nom) ++ td (x.s ! Def ! Sg ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Indef ! Sg ! Acc) ++ td (x.s ! Def ! Sg ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Indef ! Sg ! Dat) ++ td (x.s ! Def ! Sg ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Indef ! Sg ! Gen) ++ td (x.s ! Def ! Sg ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ + th "Nom" ++ td (x.s ! Indef ! Pl ! Nom) ++ td (x.s ! Def ! Pl ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Indef ! Pl ! Acc) ++ td (x.s ! Def ! Pl ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Indef ! Pl ! Dat) ++ td (x.s ! Def ! Pl ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Indef ! Pl ! Gen) ++ td (x.s ! Def ! Pl ! Gen))) ; s3=[] } ; lin @@ -35,50 +30,44 @@ lin t="a" ; s1="" ; s2=frameTable ( - tr (intagAttr "th" "rowspan=\"24\"" "s" ++ intagAttr "th" "rowspan=\"8\"" "Masc" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Masc ! Sg ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Masc ! Sg ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Masc ! Sg ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Masc ! Sg ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Masc ! Pl ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Masc ! Pl ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Masc ! Pl ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Masc ! Pl ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"8\"" "Fem" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Fem ! Sg ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Fem ! Sg ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Fem ! Sg ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Fem ! Sg ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Fem ! Pl ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Fem ! Pl ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Fem ! Pl ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Fem ! Pl ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"8\"" "Neutr" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Neutr ! Sg ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Neutr ! Sg ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Neutr ! Sg ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Neutr ! Sg ! Gen)) ++ - tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Neutr ! Pl ! Nom)) ++ - tr (th "Acc" ++ td (x.s ! Neutr ! Pl ! Acc)) ++ - tr (th "Dat" ++ td (x.s ! Neutr ! Pl ! Dat)) ++ - tr (th "Gen" ++ td (x.s ! Neutr ! Pl ! Gen))) ; + tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Masc" ++ th "Fem" ++ th "Neutr") ++ + tr (intagAttr "th" "rowspan=\"4\"" "Sg" ++ + th "Nom" ++ td (x.s ! Masc ! Sg ! Nom) ++ td (x.s ! Fem ! Sg ! Nom) ++ td (x.s ! Neutr ! Sg ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Masc ! Sg ! Acc) ++ td (x.s ! Fem ! Sg ! Acc) ++ td (x.s ! Neutr ! Sg ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Masc ! Sg ! Dat) ++ td (x.s ! Fem ! Sg ! Dat) ++ td (x.s ! Neutr ! Sg ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Masc ! Sg ! Gen) ++ td (x.s ! Fem ! Sg ! Gen) ++ td (x.s ! Neutr ! Sg ! Gen)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ + th "Nom" ++ td (x.s ! Masc ! Pl ! Nom) ++ td (x.s ! Fem ! Pl ! Nom) ++ td (x.s ! Neutr ! Pl ! Nom)) ++ + tr (th "Acc" ++ td (x.s ! Masc ! Pl ! Acc) ++ td (x.s ! Fem ! Pl ! Acc) ++ td (x.s ! Neutr ! Pl ! Acc)) ++ + tr (th "Dat" ++ td (x.s ! Masc ! Pl ! Dat) ++ td (x.s ! Fem ! Pl ! Dat) ++ td (x.s ! Neutr ! Pl ! Dat)) ++ + tr (th "Gen" ++ td (x.s ! Masc ! Pl ! Gen) ++ td (x.s ! Fem ! Pl ! Gen) ++ td (x.s ! Neutr ! Pl ! Gen))) ; s3=[] } ; lin InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> { t="v" ; s1="" ; - s2=frameTable ( - tr (th "Converb" ++ td (x.Converb)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Imperative_Jussive" ++ th "Sg" ++ td (x.Imperative_Jussive ! Sg)) ++ - tr (th "Pl" ++ td (x.Imperative_Jussive ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"8\"" "Indicative" ++ intagAttr "th" "rowspan=\"4\"" "Pres" ++ th "PSg P1" ++ td (x.Indicative ! Pres ! PSg P1)) ++ - tr (th "PSg P2" ++ td (x.Indicative ! Pres ! PSg P2)) ++ - tr (th "PSg P3" ++ td (x.Indicative ! Pres ! PSg P3)) ++ - tr (th "PPl" ++ td (x.Indicative ! Pres ! PPl)) ++ - tr (intagAttr "th" "rowspan=\"4\"" "Past" ++ th "PSg P1" ++ td (x.Indicative ! Past ! PSg P1)) ++ - tr (th "PSg P2" ++ td (x.Indicative ! Past ! PSg P2)) ++ - tr (th "PSg P3" ++ td (x.Indicative ! Past ! PSg P3)) ++ - tr (th "PPl" ++ td (x.Indicative ! Past ! PPl)) ++ - tr (th "Nonfinite" ++ td (x.Nonfinite)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Particle" ++ th "Pres" ++ td (x.Particle ! Pres)) ++ + s2=heading2 "Converb" ++ + paragraph x.Converb ++ + heading2 "Imperative" ++ + frameTable ( + tr (th "Sg" ++ td (x.Imperative_Jussive ! Sg)) ++ + tr (th "Pl" ++ td (x.Imperative_Jussive ! Pl))) ++ + heading2 "Indicative" ++ + frameTable ( + tr (intagAttr "th" "rowspan=\"4\"" "Pres" ++ th "Sg P1" ++ td (x.Indicative ! Pres ! PSg P1)) ++ + tr (th "Sg P2" ++ td (x.Indicative ! Pres ! PSg P2)) ++ + tr (th "Sg P3" ++ td (x.Indicative ! Pres ! PSg P3)) ++ + tr (th "Pl" ++ td (x.Indicative ! Pres ! PPl)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Past" ++ th "Sg P1" ++ td (x.Indicative ! Past ! PSg P1)) ++ + tr (th "Sg P2" ++ td (x.Indicative ! Past ! PSg P2)) ++ + tr (th "Sg P3" ++ td (x.Indicative ! Past ! PSg P3)) ++ + tr (th "Pl" ++ td (x.Indicative ! Past ! PPl))) ++ + heading2 "Nonfinite" ++ + paragraph x.Nonfinite ++ + heading2 "Particle" ++ + frameTable ( + tr (th "Pres" ++ td (x.Particle ! Pres)) ++ tr (th "Past" ++ td (x.Particle ! Past))) ; s3=[] } ; diff --git a/src/faroese/MorphoFao.gf b/src/faroese/MorphoFao.gf index bc52ea07..43a24bcc 100644 --- a/src/faroese/MorphoFao.gf +++ b/src/faroese/MorphoFao.gf @@ -8618,10 +8618,10 @@ mkV001 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"aður" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"aður" + } }; _ => error "Can't apply paradigm mkV001" } ; @@ -8650,10 +8650,10 @@ mkV002 base = } } ; Nonfinite = "ei"+base_1+"a" ; - Particle = table { - Pres => "ei"+base_1+"andi" ; - Past => "hi"+base_1+"in" - } + Participle = table { + Pres => "ei"+base_1+"andi" ; + Past => "hi"+base_1+"in" + } }; _ => error "Can't apply paradigm mkV002" } ; @@ -8682,10 +8682,10 @@ mkV003 base = } } ; Nonfinite = "a"+base_1+"a" ; - Particle = table { - Pres => "a"+base_1+"andi" ; - Past => "i"+base_1+"in" - } + Participle = table { + Pres => "a"+base_1+"andi" ; + Past => "i"+base_1+"in" + } }; _ => error "Can't apply paradigm mkV003" } ; @@ -8714,10 +8714,10 @@ mkV004 base = } } ; Nonfinite = "a"+base_1+"a" ; - Particle = table { - Pres => "a"+base_1+"andi" ; - Past => "a"+base_1+"in" - } + Participle = table { + Pres => "a"+base_1+"andi" ; + Past => "a"+base_1+"in" + } }; _ => error "Can't apply paradigm mkV004" } ; @@ -8746,10 +8746,10 @@ mkV005 base = } } ; Nonfinite = base_1+"a"+base_2 ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV005" } ; @@ -8778,10 +8778,10 @@ mkV006 base = } } ; Nonfinite = base_1+"ða" ; - Particle = table { - Pres => base_1+"ðandi" ; - Past => base_1+"ddur" - } + Participle = table { + Pres => base_1+"ðandi" ; + Past => base_1+"ddur" + } }; _ => error "Can't apply paradigm mkV006" } ; @@ -8810,10 +8810,10 @@ mkV007 base = } } ; Nonfinite = "eiga" ; - Particle = table { - Pres => "eigandi" ; - Past => nonExist - } + Participle = table { + Pres => "eigandi" ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV007" } ; @@ -8842,10 +8842,10 @@ mkV008 base = } } ; Nonfinite = base_1+"e"+base_2+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV008" } ; @@ -8874,10 +8874,10 @@ mkV009 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV009" } ; @@ -8906,10 +8906,10 @@ mkV010 base = } } ; Nonfinite = base_1+"da" ; - Particle = table { - Pres => base_1+"dandi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"dandi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV010" } ; @@ -8938,10 +8938,10 @@ mkV011 base = } } ; Nonfinite = base_1+"e"+base_2+"ja" ; - Particle = table { - Pres => base_1+"e"+base_2+"jandi" ; - Past => base_1+"a"+base_2+"dur" - } + Participle = table { + Pres => base_1+"e"+base_2+"jandi" ; + Past => base_1+"a"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV011" } ; @@ -8970,10 +8970,10 @@ mkV012 base = } } ; Nonfinite = base_1+"i"+base_2+"ja" ; - Particle = table { - Pres => base_1+"i"+base_2+"jandi" ; - Past => base_1+"i"+base_2+"in" - } + Participle = table { + Pres => base_1+"i"+base_2+"jandi" ; + Past => base_1+"i"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV012" } ; @@ -9002,10 +9002,10 @@ mkV013 base = } } ; Nonfinite = base_1+"i"+base_2+"da" ; - Particle = table { - Pres => base_1+"i"+base_2+"dandi" ; - Past => base_1+"u"+base_2+"din" - } + Participle = table { + Pres => base_1+"i"+base_2+"dandi" ; + Past => base_1+"u"+base_2+"din" + } }; _ => error "Can't apply paradigm mkV013" } ; @@ -9034,10 +9034,10 @@ mkV014 base = } } ; Nonfinite = base_1+"í"+base_2+"a" ; - Particle = table { - Pres => base_1+"í"+base_2+"andi" ; - Past => base_1+"i"+base_2+"in" - } + Participle = table { + Pres => base_1+"í"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV014" } ; @@ -9066,10 +9066,10 @@ mkV015 base = } } ; Nonfinite = base_1+"jó"+base_2+"a" ; - Particle = table { - Pres => base_1+"jó"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"jó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV015" } ; @@ -9098,10 +9098,10 @@ mkV016 base = } } ; Nonfinite = base_1+"gja" ; - Particle = table { - Pres => base_1+"gjandi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"gjandi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV016" } ; @@ -9130,10 +9130,10 @@ mkV017 base = } } ; Nonfinite = base_1+"e"+base_2+"na" ; - Particle = table { - Pres => base_1+"e"+base_2+"nandi" ; - Past => base_1+"u"+base_2+"nin" - } + Participle = table { + Pres => base_1+"e"+base_2+"nandi" ; + Past => base_1+"u"+base_2+"nin" + } }; _ => error "Can't apply paradigm mkV017" } ; @@ -9162,10 +9162,10 @@ mkV018 base = } } ; Nonfinite = base_1+"e"+base_2+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV018" } ; @@ -9194,10 +9194,10 @@ mkV019 base = } } ; Nonfinite = base_1+"ó"+base_2+"a" ; - Particle = table { - Pres => base_1+"ó"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"ó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV019" } ; @@ -9226,10 +9226,10 @@ mkV020 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV020" } ; @@ -9258,10 +9258,10 @@ mkV021 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV021" } ; @@ -9290,10 +9290,10 @@ mkV022 base = } } ; Nonfinite = base_1+"úgva" ; - Particle = table { - Pres => base_1+"úgvandi" ; - Past => base_1+"úgvin" - } + Participle = table { + Pres => base_1+"úgvandi" ; + Past => base_1+"úgvin" + } }; _ => error "Can't apply paradigm mkV022" } ; @@ -9322,10 +9322,10 @@ mkV023 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV023" } ; @@ -9354,10 +9354,10 @@ mkV024 base = } } ; Nonfinite = base_1+"e"+base_2+base_3+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+base_3+"andi" ; - Past => base_1+"o"+base_2+base_3+"in" - } + Participle = table { + Pres => base_1+"e"+base_2+base_3+"andi" ; + Past => base_1+"o"+base_2+base_3+"in" + } }; _ => error "Can't apply paradigm mkV024" } ; @@ -9386,10 +9386,10 @@ mkV025 base = } } ; Nonfinite = base_1+"ggja" ; - Particle = table { - Pres => base_1+"ggjandi" ; - Past => nonExist - } + Participle = table { + Pres => base_1+"ggjandi" ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV025" } ; @@ -9418,10 +9418,10 @@ mkV026 base = } } ; Nonfinite = base_1+"aga" ; - Particle = table { - Pres => base_1+"agandi" ; - Past => base_1+"igin" - } + Participle = table { + Pres => base_1+"agandi" ; + Past => base_1+"igin" + } }; _ => error "Can't apply paradigm mkV026" } ; @@ -9450,10 +9450,10 @@ mkV027 base = } } ; Nonfinite = base_1+"e"+base_2+"ka" ; - Particle = table { - Pres => base_1+"e"+base_2+"kandi" ; - Past => base_1+"u"+base_2+"kin" - } + Participle = table { + Pres => base_1+"e"+base_2+"kandi" ; + Past => base_1+"u"+base_2+"kin" + } }; _ => error "Can't apply paradigm mkV027" } ; @@ -9482,10 +9482,10 @@ mkV028 base = } } ; Nonfinite = base_1+"e"+base_2+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+"andi" ; - Past => base_1+"i"+base_2+"in" - } + Participle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV028" } ; @@ -9514,10 +9514,10 @@ mkV029 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"aður" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"aður" + } }; _ => error "Can't apply paradigm mkV029" } ; @@ -9546,10 +9546,10 @@ mkV030 base = } } ; Nonfinite = "ve"+base_1+"a" ; - Particle = table { - Pres => "ve"+base_1+"andi" ; - Past => nonExist - } + Participle = table { + Pres => "ve"+base_1+"andi" ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV030" } ; @@ -9578,10 +9578,10 @@ mkV031 base = } } ; Nonfinite = base_1+"na" ; - Particle = table { - Pres => base_1+"nandi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"nandi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV031" } ; @@ -9610,10 +9610,10 @@ mkV032 base = } } ; Nonfinite = base_1+"a"+base_2+"a" ; - Particle = table { - Pres => base_1+"a"+base_2+"andi" ; - Past => base_1+"a"+base_2+"in" - } + Participle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV032" } ; @@ -9642,10 +9642,10 @@ mkV033 base = } } ; Nonfinite = base_1+"a"+base_2+"a" ; - Particle = table { - Pres => base_1+"a"+base_2+"andi" ; - Past => base_1+"a"+base_2+"in" - } + Participle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV033" } ; @@ -9674,10 +9674,10 @@ mkV034 base = } } ; Nonfinite = base_1+"áa" ; - Particle = table { - Pres => nonExist ; - Past => base_1+"ingin" - } + Participle = table { + Pres => nonExist ; + Past => base_1+"ingin" + } }; _ => error "Can't apply paradigm mkV034" } ; @@ -9706,10 +9706,10 @@ mkV035 base = } } ; Nonfinite = base_1+"la" ; - Particle = table { - Pres => base_1+"landi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"landi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV035" } ; @@ -9738,10 +9738,10 @@ mkV036 base = } } ; Nonfinite = base_1+"ða"+base_2 ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV036" } ; @@ -9770,10 +9770,10 @@ mkV037 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"ur" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"ur" + } }; _ => error "Can't apply paradigm mkV037" } ; @@ -9802,10 +9802,10 @@ mkV038 base = } } ; Nonfinite = base_1+"e"+base_2+"ja" ; - Particle = table { - Pres => base_1+"e"+base_2+"jandi" ; - Past => base_1+"a"+base_2+"tur" - } + Participle = table { + Pres => base_1+"e"+base_2+"jandi" ; + Past => base_1+"a"+base_2+"tur" + } }; _ => error "Can't apply paradigm mkV038" } ; @@ -9834,10 +9834,10 @@ mkV039 base = } } ; Nonfinite = base_1+"na" ; - Particle = table { - Pres => base_1+"nandi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"nandi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV039" } ; @@ -9866,10 +9866,10 @@ mkV040 base = } } ; Nonfinite = base_1+"ú"+base_2+"va" ; - Particle = table { - Pres => base_1+"ú"+base_2+"vandi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"ú"+base_2+"vandi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV040" } ; @@ -9898,10 +9898,10 @@ mkV041 base = } } ; Nonfinite = base_1+"y"+base_2+"a" ; - Particle = table { - Pres => base_1+"y"+base_2+"andi" ; - Past => base_1+"u"+base_2+"tur" - } + Participle = table { + Pres => base_1+"y"+base_2+"andi" ; + Past => base_1+"u"+base_2+"tur" + } }; _ => error "Can't apply paradigm mkV041" } ; @@ -9930,10 +9930,10 @@ mkV042 base = } } ; Nonfinite = base_1+"e"+base_2+"ja" ; - Particle = table { - Pres => base_1+"e"+base_2+"jandi" ; - Past => base_1+"a"+base_2+"dur" - } + Participle = table { + Pres => base_1+"e"+base_2+"jandi" ; + Past => base_1+"a"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV042" } ; @@ -9962,10 +9962,10 @@ mkV043 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"ddur" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"ddur" + } }; _ => error "Can't apply paradigm mkV043" } ; @@ -9994,10 +9994,10 @@ mkV044 base = } } ; Nonfinite = base_1+"ú"+base_2+"a" ; - Particle = table { - Pres => base_1+"ú"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"ú"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV044" } ; @@ -10026,10 +10026,10 @@ mkV045 base = } } ; Nonfinite = base_1+"la" ; - Particle = table { - Pres => base_1+"landi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"landi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV045" } ; @@ -10058,10 +10058,10 @@ mkV046 base = } } ; Nonfinite = base_1+"a"+base_2+"a" ; - Particle = table { - Pres => base_1+"a"+base_2+"andi" ; - Past => base_1+"a"+base_2+"in" - } + Participle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV046" } ; @@ -10090,10 +10090,10 @@ mkV047 base = } } ; Nonfinite = base_1+"anga" ; - Particle = table { - Pres => base_1+"angandi" ; - Past => base_1+"ingin" - } + Participle = table { + Pres => base_1+"angandi" ; + Past => base_1+"ingin" + } }; _ => error "Can't apply paradigm mkV047" } ; @@ -10122,10 +10122,10 @@ mkV048 base = } } ; Nonfinite = base_1+"ja"+base_2+"da" ; - Particle = table { - Pres => base_1+"ja"+base_2+"dandi" ; - Past => base_1+"o"+base_2+"din" - } + Participle = table { + Pres => base_1+"ja"+base_2+"dandi" ; + Past => base_1+"o"+base_2+"din" + } }; _ => error "Can't apply paradigm mkV048" } ; @@ -10154,10 +10154,10 @@ mkV049 base = } } ; Nonfinite = base_1+"e"+base_2+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+"andi" ; - Past => base_1+"jø"+base_2+"dur" - } + Participle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"jø"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV049" } ; @@ -10186,10 +10186,10 @@ mkV050 base = } } ; Nonfinite = base_1+"jó"+base_2+"a" ; - Particle = table { - Pres => base_1+"jó"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"jó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV050" } ; @@ -10218,10 +10218,10 @@ mkV051 base = } } ; Nonfinite = base_1+"e"+base_2+"pa" ; - Particle = table { - Pres => base_1+"e"+base_2+"pandi" ; - Past => base_1+"o"+base_2+"pin" - } + Participle = table { + Pres => base_1+"e"+base_2+"pandi" ; + Past => base_1+"o"+base_2+"pin" + } }; _ => error "Can't apply paradigm mkV051" } ; @@ -10250,10 +10250,10 @@ mkV052 base = } } ; Nonfinite = base_1+"y"+base_2+"ja" ; - Particle = table { - Pres => base_1+"y"+base_2+"jandi" ; - Past => base_1+"u"+base_2+"dur" - } + Participle = table { + Pres => base_1+"y"+base_2+"jandi" ; + Past => base_1+"u"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV052" } ; @@ -10282,10 +10282,10 @@ mkV053 base = } } ; Nonfinite = base_1+"á"+base_2+"a" ; - Particle = table { - Pres => base_1+"á"+base_2+"andi" ; - Past => base_1+"á"+base_2+"in" - } + Participle = table { + Pres => base_1+"á"+base_2+"andi" ; + Past => base_1+"á"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV053" } ; @@ -10314,10 +10314,10 @@ mkV054 base = } } ; Nonfinite = base_1+"a"+base_2+"a" ; - Particle = table { - Pres => base_1+"a"+base_2+"andi" ; - Past => base_1+"i"+base_2+"in" - } + Participle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV054" } ; @@ -10346,10 +10346,10 @@ mkV055 base = } } ; Nonfinite = base_1+"ógva" ; - Particle = table { - Pres => base_1+"ógvandi" ; - Past => base_1+"ógvin" - } + Participle = table { + Pres => base_1+"ógvandi" ; + Past => base_1+"ógvin" + } }; _ => error "Can't apply paradigm mkV055" } ; @@ -10378,10 +10378,10 @@ mkV056 base = } } ; Nonfinite = base_1+"a"+base_2+"da" ; - Particle = table { - Pres => base_1+"a"+base_2+"dandi" ; - Past => base_1+"i"+base_2+"din" - } + Participle = table { + Pres => base_1+"a"+base_2+"dandi" ; + Past => base_1+"i"+base_2+"din" + } }; _ => error "Can't apply paradigm mkV056" } ; @@ -10410,10 +10410,10 @@ mkV057 base = } } ; Nonfinite = base_1+"anga" ; - Particle = table { - Pres => base_1+"angandi" ; - Past => base_1+"ingin" - } + Participle = table { + Pres => base_1+"angandi" ; + Past => base_1+"ingin" + } }; _ => error "Can't apply paradigm mkV057" } ; @@ -10442,10 +10442,10 @@ mkV058 base = } } ; Nonfinite = base_1+"a"+base_2+"a" ; - Particle = table { - Pres => base_1+"a"+base_2+"andi" ; - Past => base_1+"a"+base_2+"dur" - } + Participle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV058" } ; @@ -10474,10 +10474,10 @@ mkV059 base = } } ; Nonfinite = base_1+"ei"+base_2+"ja" ; - Particle = table { - Pres => base_1+"ei"+base_2+"jandi" ; - Past => base_1+"o"+base_2+"dur" - } + Participle = table { + Pres => base_1+"ei"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV059" } ; @@ -10506,10 +10506,10 @@ mkV060 base = } } ; Nonfinite = base_1+"vø"+base_2+"a" ; - Particle = table { - Pres => base_1+"vø"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"vø"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV060" } ; @@ -10538,10 +10538,10 @@ mkV061 base = } } ; Nonfinite = base_1+"y"+base_2+"gja" ; - Particle = table { - Pres => base_1+"y"+base_2+"gjandi" ; - Past => base_1+"u"+base_2+"dur" - } + Participle = table { + Pres => base_1+"y"+base_2+"gjandi" ; + Past => base_1+"u"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV061" } ; @@ -10570,10 +10570,10 @@ mkV062 base = } } ; Nonfinite = base_1+"o"+base_2+"a" ; - Particle = table { - Pres => base_1+"o"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"o"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV062" } ; @@ -10602,10 +10602,10 @@ mkV063 base = } } ; Nonfinite = base_1+"pa" ; - Particle = table { - Pres => base_1+"pandi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"pandi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV063" } ; @@ -10634,10 +10634,10 @@ mkV064 base = } } ; Nonfinite = base_1+"úgva" ; - Particle = table { - Pres => base_1+"úgvandi" ; - Past => base_1+"ovin" - } + Participle = table { + Pres => base_1+"úgvandi" ; + Past => base_1+"ovin" + } }; _ => error "Can't apply paradigm mkV064" } ; @@ -10666,10 +10666,10 @@ mkV065 base = } } ; Nonfinite = base_1+"u"+base_2+"na" ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV065" } ; @@ -10698,10 +10698,10 @@ mkV066 base = } } ; Nonfinite = base_1+"ø"+base_2+"a" ; - Particle = table { - Pres => base_1+"ø"+base_2+"andi" ; - Past => base_1+"ø"+base_2+"in" - } + Participle = table { + Pres => base_1+"ø"+base_2+"andi" ; + Past => base_1+"ø"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV066" } ; @@ -10730,10 +10730,10 @@ mkV067 base = } } ; Nonfinite = base_1+"sa" ; - Particle = table { - Pres => base_1+"sandi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"sandi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV067" } ; @@ -10762,10 +10762,10 @@ mkV068 base = } } ; Nonfinite = base_1+"a" ; - Particle = table { - Pres => base_1+"andi" ; - Past => base_1+"in" - } + Participle = table { + Pres => base_1+"andi" ; + Past => base_1+"in" + } }; _ => error "Can't apply paradigm mkV068" } ; @@ -10794,10 +10794,10 @@ mkV069 base = } } ; Nonfinite = base_1+"e"+base_2+"gja" ; - Particle = table { - Pres => base_1+"e"+base_2+"gjandi" ; - Past => base_1+"a"+base_2+"dur" - } + Participle = table { + Pres => base_1+"e"+base_2+"gjandi" ; + Past => base_1+"a"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV069" } ; @@ -10826,10 +10826,10 @@ mkV070 base = } } ; Nonfinite = base_1+"iggja" ; - Particle = table { - Pres => base_1+"iggjandi" ; - Past => base_1+"igin" - } + Participle = table { + Pres => base_1+"iggjandi" ; + Past => base_1+"igin" + } }; _ => error "Can't apply paradigm mkV070" } ; @@ -10858,10 +10858,10 @@ mkV071 base = } } ; Nonfinite = base_1+"e"+base_2+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+"andi" ; - Past => base_1+"i"+base_2+"in" - } + Participle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV071" } ; @@ -10890,10 +10890,10 @@ mkV072 base = } } ; Nonfinite = base_1+"a"+base_2+"a" ; - Particle = table { - Pres => base_1+"a"+base_2+"andi" ; - Past => base_1+"a"+base_2+"in" - } + Participle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV072" } ; @@ -10922,10 +10922,10 @@ mkV073 base = } } ; Nonfinite = base_1+"á"+base_2+"a" ; - Particle = table { - Pres => base_1+"á"+base_2+"andi" ; - Past => base_1+"á"+base_2+"in" - } + Participle = table { + Pres => base_1+"á"+base_2+"andi" ; + Past => base_1+"á"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV073" } ; @@ -10954,10 +10954,10 @@ mkV074 base = } } ; Nonfinite = base_1+"ey"+base_2+"a" ; - Particle = table { - Pres => base_1+"ey"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"ey"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV074" } ; @@ -10986,10 +10986,10 @@ mkV075 base = } } ; Nonfinite = base_1+"ega" ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV075" } ; @@ -11018,10 +11018,10 @@ mkV076 base = } } ; Nonfinite = base_1+"u"+base_2+"na" ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV076" } ; @@ -11050,10 +11050,10 @@ mkV077 base = } } ; Nonfinite = base_1+"ja" ; - Particle = table { - Pres => base_1+"jandi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"jandi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV077" } ; @@ -11082,10 +11082,10 @@ mkV078 base = } } ; Nonfinite = base_1+"ja" ; - Particle = table { - Pres => base_1+"jandi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"jandi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV078" } ; @@ -11114,10 +11114,10 @@ mkV079 base = } } ; Nonfinite = base_1+"ða" ; - Particle = table { - Pres => base_1+"ðandi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"ðandi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV079" } ; @@ -11146,10 +11146,10 @@ mkV080 base = } } ; Nonfinite = base_1+"áa" ; - Particle = table { - Pres => base_1+"áandi" ; - Past => base_1+"áddur" - } + Participle = table { + Pres => base_1+"áandi" ; + Past => base_1+"áddur" + } }; _ => error "Can't apply paradigm mkV080" } ; @@ -11178,10 +11178,10 @@ mkV081 base = } } ; Nonfinite = base_1+"áða" ; - Particle = table { - Pres => base_1+"áðandi" ; - Past => base_1+"áðin" - } + Participle = table { + Pres => base_1+"áðandi" ; + Past => base_1+"áðin" + } }; _ => error "Can't apply paradigm mkV081" } ; @@ -11210,10 +11210,10 @@ mkV082 base = } } ; Nonfinite = base_1+"ða"+base_2 ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV082" } ; @@ -11242,10 +11242,10 @@ mkV083 base = } } ; Nonfinite = base_1+"ø"+base_2+"ka" ; - Particle = table { - Pres => base_1+"ø"+base_2+"kandi" ; - Past => base_1+"o"+base_2+"kin" - } + Participle = table { + Pres => base_1+"ø"+base_2+"kandi" ; + Past => base_1+"o"+base_2+"kin" + } }; _ => error "Can't apply paradigm mkV083" } ; @@ -11274,10 +11274,10 @@ mkV084 base = } } ; Nonfinite = base_1+"íggja" ; - Particle = table { - Pres => base_1+"íggjandi" ; - Past => base_1+"æddur" - } + Participle = table { + Pres => base_1+"íggjandi" ; + Past => base_1+"æddur" + } }; _ => error "Can't apply paradigm mkV084" } ; @@ -11306,10 +11306,10 @@ mkV085 base = } } ; Nonfinite = base_1+"kja" ; - Particle = table { - Pres => base_1+"kjandi" ; - Past => base_1+"tur" - } + Participle = table { + Pres => base_1+"kjandi" ; + Past => base_1+"tur" + } }; _ => error "Can't apply paradigm mkV085" } ; @@ -11338,10 +11338,10 @@ mkV086 base = } } ; Nonfinite = base_1+"i"+base_2+"a" ; - Particle = table { - Pres => base_1+"i"+base_2+"andi" ; - Past => base_1+"a"+base_2+"dur" - } + Participle = table { + Pres => base_1+"i"+base_2+"andi" ; + Past => base_1+"a"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV086" } ; @@ -11370,10 +11370,10 @@ mkV087 base = } } ; Nonfinite = base_1+"i"+base_2+"a" ; - Particle = table { - Pres => base_1+"i"+base_2+"andi" ; - Past => base_1+"i"+base_2+"in" - } + Participle = table { + Pres => base_1+"i"+base_2+"andi" ; + Past => base_1+"i"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV087" } ; @@ -11402,10 +11402,10 @@ mkV088 base = } } ; Nonfinite = base_1+"u"+base_2+"a" ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV088" } ; @@ -11434,10 +11434,10 @@ mkV089 base = } } ; Nonfinite = base_1+"ei"+base_2+"ja" ; - Particle = table { - Pres => base_1+"ei"+base_2+"jandi" ; - Past => base_1+"o"+base_2+"tur" - } + Participle = table { + Pres => base_1+"ei"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"tur" + } }; _ => error "Can't apply paradigm mkV089" } ; @@ -11466,10 +11466,10 @@ mkV090 base = } } ; Nonfinite = base_1+"ja" ; - Particle = table { - Pres => base_1+"jandi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"jandi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV090" } ; @@ -11498,10 +11498,10 @@ mkV091 base = } } ; Nonfinite = base_1+"jó"+base_2+"a" ; - Particle = table { - Pres => base_1+"jó"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"jó"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV091" } ; @@ -11530,10 +11530,10 @@ mkV092 base = } } ; Nonfinite = base_1+"áa" ; - Particle = table { - Pres => base_1+"áandi" ; - Past => base_1+"igin" - } + Participle = table { + Pres => base_1+"áandi" ; + Past => base_1+"igin" + } }; _ => error "Can't apply paradigm mkV092" } ; @@ -11562,10 +11562,10 @@ mkV093 base = } } ; Nonfinite = base_1+"y"+base_2+"ja" ; - Particle = table { - Pres => base_1+"y"+base_2+"jandi" ; - Past => base_1+"u"+base_2+"dur" - } + Participle = table { + Pres => base_1+"y"+base_2+"jandi" ; + Past => base_1+"u"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV093" } ; @@ -11594,10 +11594,10 @@ mkV094 base = } } ; Nonfinite = base_1+"i"+base_2+"na" ; - Particle = table { - Pres => base_1+"i"+base_2+"nandi" ; - Past => base_1+"u"+base_2+"nin" - } + Participle = table { + Pres => base_1+"i"+base_2+"nandi" ; + Past => base_1+"u"+base_2+"nin" + } }; _ => error "Can't apply paradigm mkV094" } ; @@ -11626,10 +11626,10 @@ mkV095 base = } } ; Nonfinite = base_1+"anda" ; - Particle = table { - Pres => base_1+"andandi" ; - Past => nonExist - } + Participle = table { + Pres => base_1+"andandi" ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV095" } ; @@ -11658,10 +11658,10 @@ mkV096 base = } } ; Nonfinite = base_1+"ei"+base_2+"ja" ; - Particle = table { - Pres => base_1+"ei"+base_2+"jandi" ; - Past => base_1+"o"+base_2+"tur" - } + Participle = table { + Pres => base_1+"ei"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"tur" + } }; _ => error "Can't apply paradigm mkV096" } ; @@ -11690,10 +11690,10 @@ mkV097 base = } } ; Nonfinite = base_1+"inga" ; - Particle = table { - Pres => base_1+"ingandi" ; - Past => base_1+"ungin" - } + Participle = table { + Pres => base_1+"ingandi" ; + Past => base_1+"ungin" + } }; _ => error "Can't apply paradigm mkV097" } ; @@ -11722,10 +11722,10 @@ mkV098 base = } } ; Nonfinite = base_1+"ja"+base_2+"a" ; - Particle = table { - Pres => base_1+"ja"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"ja"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV098" } ; @@ -11754,10 +11754,10 @@ mkV099 base = } } ; Nonfinite = base_1+"o"+base_2+"a" ; - Particle = table { - Pres => base_1+"o"+base_2+"andi" ; - Past => nonExist - } + Participle = table { + Pres => base_1+"o"+base_2+"andi" ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV099" } ; @@ -11786,10 +11786,10 @@ mkV100 base = } } ; Nonfinite = base_1+"í"+base_2+"ja" ; - Particle = table { - Pres => base_1+"í"+base_2+"jandi" ; - Past => base_1+"i"+base_2+"in" - } + Participle = table { + Pres => base_1+"í"+base_2+"jandi" ; + Past => base_1+"i"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV100" } ; @@ -11818,10 +11818,10 @@ mkV101 base = } } ; Nonfinite = base_1+"i"+base_2+"ja" ; - Particle = table { - Pres => base_1+"i"+base_2+"jandi" ; - Past => nonExist - } + Participle = table { + Pres => base_1+"i"+base_2+"jandi" ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV101" } ; @@ -11850,10 +11850,10 @@ mkV102 base = } } ; Nonfinite = base_1+"ja" ; - Particle = table { - Pres => base_1+"jandi" ; - Past => base_1+"dur" - } + Participle = table { + Pres => base_1+"jandi" ; + Past => base_1+"dur" + } }; _ => error "Can't apply paradigm mkV102" } ; @@ -11882,10 +11882,10 @@ mkV103 base = } } ; Nonfinite = base_1+"ø"+base_2+"ja" ; - Particle = table { - Pres => base_1+"ø"+base_2+"jandi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"ø"+base_2+"jandi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV103" } ; @@ -11914,10 +11914,10 @@ mkV104 base = } } ; Nonfinite = base_1+"y"+base_2+"ja" ; - Particle = table { - Pres => base_1+"y"+base_2+"jandi" ; - Past => base_1+"u"+base_2+"in" - } + Participle = table { + Pres => base_1+"y"+base_2+"jandi" ; + Past => base_1+"u"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV104" } ; @@ -11946,10 +11946,10 @@ mkV105 base = } } ; Nonfinite = base_1+"i"+base_2+"a" ; - Particle = table { - Pres => base_1+"i"+base_2+"andi" ; - Past => base_1+"a"+base_2+"dur" - } + Participle = table { + Pres => base_1+"i"+base_2+"andi" ; + Past => base_1+"a"+base_2+"dur" + } }; _ => error "Can't apply paradigm mkV105" } ; @@ -11978,10 +11978,10 @@ mkV106 base = } } ; Nonfinite = base_1+"e"+base_2+"fa" ; - Particle = table { - Pres => base_1+"e"+base_2+"fandi" ; - Past => base_1+"o"+base_2+"fin" - } + Participle = table { + Pres => base_1+"e"+base_2+"fandi" ; + Past => base_1+"o"+base_2+"fin" + } }; _ => error "Can't apply paradigm mkV106" } ; @@ -12010,10 +12010,10 @@ mkV107 base = } } ; Nonfinite = base_1+"a"+base_2+"a" ; - Particle = table { - Pres => base_1+"a"+base_2+"andi" ; - Past => base_1+"a"+base_2+"in" - } + Participle = table { + Pres => base_1+"a"+base_2+"andi" ; + Past => base_1+"a"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV107" } ; @@ -12042,10 +12042,10 @@ mkV108 base = } } ; Nonfinite = base_1+"e"+base_2+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV108" } ; @@ -12074,10 +12074,10 @@ mkV109 base = } } ; Nonfinite = base_1+base_2+base_3+"a" ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV109" } ; @@ -12106,10 +12106,10 @@ mkV110 base = } } ; Nonfinite = "d"+base_1+"finite" ; - Particle = table { - Pres => "v"+base_1+"rð" ; - Past => "v"+base_1+"rð" - } + Participle = table { + Pres => "v"+base_1+"rð" ; + Past => "v"+base_1+"rð" + } }; _ => error "Can't apply paradigm mkV110" } ; @@ -12138,10 +12138,10 @@ mkV111 base = } } ; Nonfinite = base_1+"e"+base_2+"a" ; - Particle = table { - Pres => base_1+"e"+base_2+"andi" ; - Past => base_1+"o"+base_2+"in" - } + Participle = table { + Pres => base_1+"e"+base_2+"andi" ; + Past => base_1+"o"+base_2+"in" + } }; _ => error "Can't apply paradigm mkV111" } ; @@ -12170,11 +12170,11 @@ mkV112 base = } } ; Nonfinite = base_1+"ja" ; - Particle = table { - Pres => nonExist ; - Past => nonExist - } + Participle = table { + Pres => nonExist ; + Past => nonExist + } }; _ => error "Can't apply paradigm mkV112" } ; -} \ No newline at end of file +} diff --git a/src/faroese/ResFao.gf b/src/faroese/ResFao.gf index 3f680b1c..feb23444 100644 --- a/src/faroese/ResFao.gf +++ b/src/faroese/ResFao.gf @@ -1,6 +1,6 @@ resource ResFao = { -param Species = Def | Indef ; +param Species = Indef | Def ; param Number = Sg | Pl ; param Case = Nom | Acc | Dat | Gen ; param Gender = Neutr | Fem | Masc ; @@ -92,7 +92,7 @@ oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj = param Tense = Past | Pres ; param PersNum = PSg Person | PPl ; param Person = P1 | P3 | P2 ; -oper Verb = {Converb: Str; Imperative_Jussive: Number => Str; Indicative: Tense => PersNum => Str; Nonfinite: Str; Particle: Tense => Str} ; -- 596 +oper Verb = {Converb: Str; Imperative_Jussive: Number => Str; Indicative: Tense => PersNum => Str; Nonfinite: Str; Participle: Tense => Str} ; -- 596 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14 -> { Converb = f1 ; @@ -115,10 +115,10 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = } } ; Nonfinite = f12 ; - Particle = table { - Pres => f13 ; - Past => f14 - } + Participle = table { + Pres => f13 ; + Past => f14 + } } ; From 0e5bb779ccad2d30b87254082a4b74b214a18f4f Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 10 Sep 2025 19:44:07 +0200 Subject: [PATCH 052/169] Particle->Participle --- src/faroese/DocumentationFao.gf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/faroese/DocumentationFao.gf b/src/faroese/DocumentationFao.gf index 72ef2064..1ded48a9 100644 --- a/src/faroese/DocumentationFao.gf +++ b/src/faroese/DocumentationFao.gf @@ -65,10 +65,10 @@ lin tr (th "Pl" ++ td (x.Indicative ! Past ! PPl))) ++ heading2 "Nonfinite" ++ paragraph x.Nonfinite ++ - heading2 "Particle" ++ + heading2 "Participle" ++ frameTable ( - tr (th "Pres" ++ td (x.Particle ! Pres)) ++ - tr (th "Past" ++ td (x.Particle ! Past))) ; + tr (th "Pres" ++ td (x.Participle ! Pres)) ++ + tr (th "Past" ++ td (x.Participle ! Past))) ; s3=[] } ; lin From bc41082247ded28c4ab180c11a4a2db70f5c4f33 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 11 Sep 2025 09:50:53 +0200 Subject: [PATCH 053/169] added UttS --- src/albanian/PhraseSqi.gf | 1 + src/macedonian/GrammarMkd.gf | 1 + src/macedonian/PhraseMkd.gf | 13 +++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 src/macedonian/PhraseMkd.gf diff --git a/src/albanian/PhraseSqi.gf b/src/albanian/PhraseSqi.gf index af89ed80..7ebb5544 100644 --- a/src/albanian/PhraseSqi.gf +++ b/src/albanian/PhraseSqi.gf @@ -3,6 +3,7 @@ concrete PhraseSqi of Phrase = CatSqi ** open Prelude, ResSqi in { lin PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + UttS s = s ; UttNP np = {s = np.s ! Nom} ; UttInterj i = i ; diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index b8e0718a..204a2130 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,4 +1,5 @@ concrete GrammarMkd of Grammar = + PhraseMkd, TextX, StructuralMkd, TenseX ** { diff --git a/src/macedonian/PhraseMkd.gf b/src/macedonian/PhraseMkd.gf new file mode 100644 index 00000000..f77c4b05 --- /dev/null +++ b/src/macedonian/PhraseMkd.gf @@ -0,0 +1,13 @@ +concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in { + + lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; + UttInterj i = i ; + + NoPConj = {s = []} ; + + NoVoc = {s = []} ; + +} From e76e11e5663ca26763ebd8776be20722fa1d2f27 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 11 Sep 2025 09:57:32 +0200 Subject: [PATCH 054/169] added PhraseKaz --- src/kazakh/GrammarKaz.gf | 6 ++++++ src/kazakh/LangKaz.gf | 1 + src/kazakh/PhraseKaz.gf | 13 +++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 src/kazakh/GrammarKaz.gf create mode 100644 src/kazakh/PhraseKaz.gf diff --git a/src/kazakh/GrammarKaz.gf b/src/kazakh/GrammarKaz.gf new file mode 100644 index 00000000..cfda44d9 --- /dev/null +++ b/src/kazakh/GrammarKaz.gf @@ -0,0 +1,6 @@ +concrete GrammarKaz of Grammar = + PhraseKaz, + TextX, + TenseX ** { + +} ; diff --git a/src/kazakh/LangKaz.gf b/src/kazakh/LangKaz.gf index 1763139d..d4e05929 100644 --- a/src/kazakh/LangKaz.gf +++ b/src/kazakh/LangKaz.gf @@ -1,4 +1,5 @@ concrete LangKaz of Lang = + GrammarKaz, LexiconKaz ,DocumentationKaz --# notpresent ** { diff --git a/src/kazakh/PhraseKaz.gf b/src/kazakh/PhraseKaz.gf new file mode 100644 index 00000000..d7edac36 --- /dev/null +++ b/src/kazakh/PhraseKaz.gf @@ -0,0 +1,13 @@ +concrete PhraseKaz of Phrase = CatKaz ** open Prelude, ResKaz in { + + lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; + UttInterj i = i ; + + NoPConj = {s = []} ; + + NoVoc = {s = []} ; + +} From 5375cda243da2ae689a3514741e7ef40ebc3a17a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 11 Sep 2025 10:04:27 +0200 Subject: [PATCH 055/169] add type signatures to keep the old type checker happy --- src/scots/ParadigmsSco.gf | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/scots/ParadigmsSco.gf b/src/scots/ParadigmsSco.gf index 59a9c889..4643ab75 100644 --- a/src/scots/ParadigmsSco.gf +++ b/src/scots/ParadigmsSco.gf @@ -1,13 +1,15 @@ resource ParadigmsSco = ParadigmsEng - [regV, reg2V, regDuplV, irregV, irreg4V, irregDuplV, mkV, mkV2, mkV3, mkV2V, mkV2Q] ** open Prelude, ResSco, CatSco in { oper + regV : Str -> V ; regV cry = let cries = (regN cry).s ! Pl ! Nom ; -- ! - cried : Str = case cries of { - _ + "es" => init cries + "d" ; - _ + "ers" => init cries + "ed" ; - _ => duplFinal cry + "ed" + criet : Str = case cry of { + rax@(_ + ("x"|"sh"|"ch")) => rax+"t"; + hurt@(_ + ("t"|"p"|"d")) => hurt + "it" ; + traivel@(_ + ("l"|"n"|"r"|"ie"|"y")) => traivel + "t" ; + clean => clean + "ed" } ; cryin : Str = case cry of { _ + "ee" => cry + "in" ; @@ -16,30 +18,35 @@ oper ent + "er" => ent + "erin" ; _ => duplFinal cry + "in" } - in mk5V cry cries cried cried cryin ; + in mk5V cry cries criet criet cryin ; - reg2V fit fitted = - let fitt = Predef.tk 2 fitted ; + reg2V : Str -> Str -> V ; + reg2V fit fittet = + let fitt = Predef.tk 2 fittet ; in if_then_else V (pbool2bool (Predef.eqStr (last fit) (last fitt))) - (mk5V fit (fit + "s") (fitt + "ed") (fitt + "ed") (fitt + "in")) + (mk5V fit (fit + "s") (fitt + "et") (fitt + "et") (fitt + "in")) (regV fit) ; + regDuplV : Str -> V ; regDuplV fit = case last fit of { ("a" | "e" | "i" | "o" | "u" | "y") => Predef.error (["final duplication makes no sense for"] ++ fit) ; t => let fitt = fit + t in - mk5V fit (fit + "s") (fitt + "ed") (fitt + "ed") (fitt + "in") + mk5V fit (fit + "s") (fitt + "et") (fitt + "et") (fitt + "in") } ; + irregV : Str -> Str -> Str -> V ; irregV x y z = let reg = (regV x).s in mk5V x (reg ! VPres) y z (reg ! VPresPart) ** {s1 = []} ; + irreg4V : Str -> Str -> Str -> Str -> V ; irreg4V x y z w = let reg = (regV x).s in mk5V x (reg ! VPres) y z w ** {s1 = []} ; + irregDuplV : Str -> Str -> Str -> V ; irregDuplV fit y z = let fitting = (regDuplV fit).s ! VPresPart From 153ad8b41a69e3f9e667709f107c19aa34165cea Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 11 Sep 2025 10:07:38 +0200 Subject: [PATCH 056/169] added type signatures --- src/faroese/ParadigmsFao.gf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/faroese/ParadigmsFao.gf b/src/faroese/ParadigmsFao.gf index 8c631edc..7c6dc207 100644 --- a/src/faroese/ParadigmsFao.gf +++ b/src/faroese/ParadigmsFao.gf @@ -504,7 +504,10 @@ oper mkV : Str -> Str -> V = reg2V -- Nonfinite Indicative;Pres;('PSg', P2) } ; - mkVV,mkVS,mkVQ,mkVA = \v -> v ; + mkVV : V -> VV = \v -> v ; + mkVS : V -> VS = \v -> v ; + mkVQ : V -> VQ = \v -> v ; + mkVA : V -> VA = \v -> v ; mkV2 = overload { mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; From f01d50937676ef5c90ded20d8d2500f9dc6c2201 Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Thu, 18 Sep 2025 20:36:03 +0200 Subject: [PATCH 057/169] word order in Ger CompCN and CompNP: RS in ext part, adv before it; agr for CompCN todo --- src/german/CatGer.gf | 2 +- src/german/VerbGer.gf | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/german/CatGer.gf b/src/german/CatGer.gf index be5a5b3a..4374a62b 100644 --- a/src/german/CatGer.gf +++ b/src/german/CatGer.gf @@ -40,7 +40,7 @@ concrete CatGer of Cat = VP = ResGer.VP ; VPSlash = ResGer.VPSlash ; - Comp = {s : Agr => Str ; ext : Str} ; + Comp = {s : Agr => Str ; ext : Number => Str} ; -- Adjective (HL 7/23: we need c : Agr => Str * Str to handle reflexive objects, cf ReflA2) diff --git a/src/german/VerbGer.gf b/src/german/VerbGer.gf index 6d89b332..8a7d4bef 100644 --- a/src/german/VerbGer.gf +++ b/src/german/VerbGer.gf @@ -103,27 +103,27 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in { insertObj' obj b w c vps ; UseComp comp = - insertExtrapos comp.ext (insertObj comp.s (predV sein_V)) ; -- agr not used + insertExtrapos (comp.ext ! Sg) (insertObj comp.s (predV sein_V)) ; -- agr not used ---- TODO: comp.ext depends on number if CompCN -- SS: adj slot not used here for e.g. "ich bin alt" but same behaviour as NPs? -- "ich bin nicht alt" "ich bin nicht Doris" UseCopula = predV sein_V ; - CompAP ap = {s = \\_ => ap.c.p1 ++ ap.s ! APred ++ ap.c.p2 ; ext = ap.s2 ! Nom ++ ap.ext} ; - CompNP np = {s = \\_ => np.s ! False ! Nom ++ np.rc ; ext = np.ext} ; - CompAdv a = {s = \\_ => a.s ; ext = []} ; + CompAP ap = {s = \\_ => ap.c.p1 ++ ap.s ! APred ++ ap.c.p2 ; ext = \\_ => ap.s2 ! Nom ++ ap.ext} ; + CompNP np = {s = \\_ => np.s ! False ! Nom ; ext = \\_ => np.rc ++ np.ext} ; + CompAdv a = {s = \\_ => a.s ; ext = \\_ => []} ; CompCN cn = { s = let - sg : Str = "ein" + pronEnding ! GSg cn.g ! Nom ++ cn.s ! Strong ! Sg ! Nom ++ cn.rc ! Sg ; --- - pl : Str = cn.s ! Strong ! Pl ! Nom ++ cn.rc ! Pl + sg : Str = "ein" + pronEnding ! GSg cn.g ! Nom ++ cn.s ! Strong ! Sg ! Nom ++ cn.adv ; --- + pl : Str = cn.s ! Strong ! Pl ! Nom ++ cn.adv in table { AgPlPol => sg ; a => case numberAgr a of { Sg => sg ; Pl => pl } } ; - ext = cn.adv ++ cn.ext + ext = \\n => cn.rc ! n ++ cn.ext } ; AdvVP vp adv = insertAdv adv.s vp ; From 7e52a4759ce12b3875bf603f640f7befe78f39d4 Mon Sep 17 00:00:00 2001 From: Hans Leiss Date: Sun, 21 Sep 2025 21:05:43 +0200 Subject: [PATCH 058/169] (Ger) Corrections in Cat, Res, Lexicon, Structural, Morpho, Paradigms and Questions --- src/api/TryGer.gf | 2 +- src/german/CatGer.gf | 9 +++--- src/german/ExtendGer.gf | 2 +- src/german/IrregGer.gf | 16 +++++------ src/german/LexiconGer.gf | 49 +++++++++++++++++---------------- src/german/MakeStructuralGer.gf | 2 +- src/german/MorphoGer.gf | 12 ++++++++ src/german/NamesGer.gf | 4 +-- src/german/ParadigmsGer.gf | 13 +++++---- src/german/QuestionGer.gf | 37 ++++++++++++++----------- src/german/ResGer.gf | 3 ++ src/german/StructuralGer.gf | 28 +++++++++++-------- 12 files changed, 103 insertions(+), 74 deletions(-) diff --git a/src/api/TryGer.gf b/src/api/TryGer.gf index 9e99c3be..b387bfd8 100644 --- a/src/api/TryGer.gf +++ b/src/api/TryGer.gf @@ -1,3 +1,3 @@ --# -path=.:../german:../common:../abstract:../prelude -resource TryGer = SyntaxGer, ExtraGer, LexiconGer, ParadigmsGer - [mkAdv], MakeStructuralGer ; +resource TryGer = SyntaxGer, ExtraGer, LexiconGer, ParadigmsGer - [mkAdv,mkIAdv], MakeStructuralGer ; diff --git a/src/german/CatGer.gf b/src/german/CatGer.gf index be5a5b3a..4e590f13 100644 --- a/src/german/CatGer.gf +++ b/src/german/CatGer.gf @@ -26,10 +26,11 @@ concrete CatGer of Cat = -- Question QCl = {s : Mood => ResGer.Tense => Anteriority => Polarity => QForm => Str} ; - IP = {s : Case => Str ; n : Number} ; + + IP = {s : Case => Str ; a : GenNum ; isPron : Bool} ; IComp = {s : Agr => Str ; ext : Str} ; - IDet = {s : Gender => Case => Str ; n : Number} ; - IQuant = {s : GenNum => Case => Str} ; + IDet = {s : Gender => Case => Str ; n : Number ; a : Adjf} ; + IQuant = {s : GenNum => Case => Str ; a : Adjf} ; -- Relative @@ -114,7 +115,7 @@ concrete CatGer of Cat = GN = {s : Case => Str; g : Sex} ; SN = {s : Sex => Case => Str} ; PN = {s : Case => Str; g : Gender; n : Number} ; - LN = {s : Adjf => Case => Str; hasArt : Bool; g : Gender; n : Number} ; + LN = {s : Adjf => Case => Str; hasDefArt : Bool; g : Gender; n : Number} ; -- tense with possibility to choose conjunctive forms diff --git a/src/german/ExtendGer.gf b/src/german/ExtendGer.gf index e6108ac1..a55a54a4 100644 --- a/src/german/ExtendGer.gf +++ b/src/german/ExtendGer.gf @@ -10,7 +10,7 @@ concrete ExtendGer of Extend = PastPartAP, PastPartAgentAP, PassVPSlash, PassAgentVPSlash, AdvIsNP, - RNP, RNPList, Base_rr_RNP, Base_nr_RNP, Base_rn_RNP, Cons_rr_RNP, Cons_nr_RNP, Conj_RNP, + RNP, RNPList, Base_rr_RNP, Base_nr_RNP, Base_rn_RNP, Cons_rr_RNP, Cons_nr_RNP, ConjRNP, ReflRNP, ReflPron, ReflPoss, PredetRNP, AdvRNP, ReflA2RNP, PossPronRNP, CompoundN, DetNPMasc, DetNPFem, UseDAP, UseDAPMasc, UseDAPFem, CardCNCard, diff --git a/src/german/IrregGer.gf b/src/german/IrregGer.gf index 74c4c5bd..0ed3f2e2 100644 --- a/src/german/IrregGer.gf +++ b/src/german/IrregGer.gf @@ -96,13 +96,13 @@ in { lin laden_V = irregV "laden" "lädt" "lud" "lüde" "geladen" ; lin lassen_V = irregV "lassen" "lässt" "ließ" "ließe" "gelassen" ; lin laufen_V = irregV "laufen" "läuft" "lief" "liefe" "gelaufen" ; - lin leiden_V = irregV "leiden" "leidt" "litt" "litte" "gelitten" ; + lin leiden_V = irregV "leiden" "leidet" "litt" "litte" "gelitten" ; lin leihen_V = irregV "leihen" "leiht" "lieh" "liehe" "geliehen" ; lin lesen_V = irregV "lesen" "liest" "las" "läse" "gelesen" ; lin liegen_V = irregV "liegen" "liegt" "lag" "läge" "gelegen" ; lin lügen_V = irregV "lügen" "lügt" "log" "löge" "gelogen" ; lin mahlen_V = irregV "mahlen" "mahlt" "mahlte" "mahlte" "gemahlen" ; - lin meiden_V = irregV "meiden" "meidt" "mied" "miede" "gemieden" ; + lin meiden_V = irregV "meiden" "meidet" "mied" "miede" "gemieden" ; lin melken_V = irregV "melken" "milkt" "molk" "mölke" "gemolken" ; lin messen_V = irregV "messen" "misst" "maß" "mäße" "gemessen" ; lin mißlingen_V = irregV "misslingen" "misslingt" "misslang" "misslungen" "misslänge" ; -- old spelling @@ -131,14 +131,14 @@ in { lin saufen_V = irregV "saufen" "säuft" "soff" "söffe" "gesoffen" ; lin saugen_V = irregV "saugen" "saugt" "sog" "soge" "gesogen" ; lin schaffen_V = irregV "schaffen" "schafft" "schuf" "schüfe" "geschaffen" ; - lin scheiden_V = irregV "scheiden" "scheidt" "schied" "schiede" "geschieden" ; + lin scheiden_V = irregV "scheiden" "scheidet" "schied" "schiede" "geschieden" ; lin scheinen_V = irregV "scheinen" "scheint" "schien" "schiene" "geschienen" ; lin scheißen_V = irregV "scheißen" "scheißt" "schiss" "schisse" "geschissen" ; lin schelten_V = irregV "schelten" "schilt" "schalt" "schölte" "gescholten" ; lin scheren_V = irregV "scheren" "schert" "schor" "schöre" "geschoren" ; lin schieben_V = irregV "schieben" "schiebt" "schob" "schöbe" "geschoben" ; lin schießen_V = irregV "schießen" "schießt" "schoss" "schösse" "geschossen" ; - lin schinden_V = irregV "schinden" "schindt" "schund" "schunde" "geschunden" ; + lin schinden_V = irregV "schinden" "schindet" "schund" "schunde" "geschunden" ; lin schlafen_V = irregV "schlafen" "schläft" "schlief" "schliefe" "geschlafen" ; lin schlagen_V = irregV "schlagen" "schlägt" "schlug" "schlüge" "geschlagen" ; lin schleichen_V = irregV "schleichen" "schleicht" "schlich" "schliche" "geschlichen" ; @@ -156,7 +156,7 @@ in { lin schwellen_V = irregV "schwellen" "schwillt" "schwoll" "schwölle" "geschwollen" ; lin schwimmen_V = irregV "schwimmen" "schwimmt" "schwamm" "schwämme" "geschwommen" ; lin schwimmen_o_V = irregV "schwimmen" "schwimmt" "schwamm" "schwömme" "geschwommen" ; - lin schwinden_V = irregV "schwinden" "schwindt" "schwand" "schwände" "geschwunden" ; + lin schwinden_V = irregV "schwinden" "schwindet" "schwand" "schwände" "geschwunden" ; lin schwingen_V = irregV "schwingen" "schwingt" "schwang" "schwänge" "geschwungen" ; lin schwören_V = irregV "schwören" "schwört" "schwor" "schwüre" "geschworen" ; lin sehen_V = irregV "sehen" "sieht" "sah" "sähe" "gesehen" ; @@ -200,7 +200,7 @@ in { "tun" "tue" "tust" "tut" "tut" "tue" "tat" "tatest" "taten" "tatet" "täte" "getan" [] M.VHaben) ; - lin verderben_V = irregV "verderben" "verdirbt" "verdarb" "verdarbe" "verdorben" ; + lin verderben_V = irregV "verderben" "verdirbt" "verdarb" "verdürbe" "verdorben" ; lin vergessen_V = irregV "vergessen" "vergisst" "vergaß" "vergäße" "vergessen" ; lin verlieren_V = irregV "verlieren" "verliert" "verlor" "verlöre" "verloren" ; lin wachsen_V = irregV "wachsen" "wächst" "wuchs" "wüchse" "gewachsen" ; @@ -209,14 +209,14 @@ in { lin weben_V = irregV "weben" "webt" "wob" "wöbe" "gewoben" ; lin weichen_V = irregV "weichen" "weicht" "wich" "wiche" "gewichen" ; lin weisen_V = irregV "weisen" "weist" "wies" "wiese" "gewiesen" ; - lin wenden_V = irregV "wenden" "wendt" "wandte" "wandte" "gewandt" ; + lin wenden_V = irregV "wenden" "wendet" "wandte" "wandte" "gewandt" ; lin werben_V = irregV "werben" "wirbt" "warb" "würbe" "geworben" ; lin werden_V = lin V (M.mkV "werden" "werde" "wirst" "wird" "werdet" "werd" "wurde" "wurdest" "wurden" "wurdet" "würde" "geworden" [] M.VSein) ; lin werfen_V = irregV "werfen" "wirft" "warf" "würfe" "geworfen" ; lin wiegen_V = irregV "wiegen" "wiegt" "wog" "wöge" "gewogen" ; - lin winden_V = irregV "winden" "windt" "wand" "wände" "gewunden" ; + lin winden_V = irregV "winden" "windet" "wand" "wände" "gewunden" ; lin wissen_V = lin V (M.mkV "wissen" "weiß" "weißt" "weiß" "wisst" "wisse" "wusste" "wusstest" "wussten" "wusstet" "wüsste" "gewusst" [] M.VHaben) ; diff --git a/src/german/LexiconGer.gf b/src/german/LexiconGer.gf index 8c2714a7..2e2e717b 100644 --- a/src/german/LexiconGer.gf +++ b/src/german/LexiconGer.gf @@ -2,25 +2,26 @@ -- work by Aarne Ranta, Andreas Priesnitz, and Henning Thielemann. -- a few corrections by Hans Leiß, and using the better IrregGer +-- sg/pl t = singulare/plurale tantum concrete LexiconGer of Lexicon = CatGer ** open Prelude, ParadigmsGer, (Mo = MorphoGer), (Irreg = IrregGer) in { flags - coding=utf8 ; + coding=utf8 ; optimize=all_subs ; lin add_V3 = dirV3 (prefixV "hinzu" (regV "fügen")) zu_Prep ; airplane_N = mkN "Flugzeug" "Flugzeuge" neuter ; - alas_Interj = {s = "ach"} ; + alas_Interj = ss "leider" ; -- {s = "ach"} ; already_Adv = mkAdv "schon" ; answer_V2S = mkV2S (regV "antworten") datPrep ; apartment_N = mkN "Wohnung" ; apple_N = reg2N "Apfel" "Äpfel" masculine ; art_N = reg2N "Kunst" "Künste" feminine ; ask_V2Q = mkV2Q (regV "fragen") accPrep ; - baby_N = reg2N "Baby" "Babies" neuter ; ---- + baby_N = reg2N "Baby" "Babies" neuter ; ---- "Kleinkind" bad_A = regA "schlecht" ; bank_N = reg2N "Bank" "Banken" feminine ; beautiful_A = regA "schön" ; @@ -35,21 +36,21 @@ lin boat_N = reg2N "Boot" "Boote" neuter ; book_N = reg2N "Buch" "Bücher" neuter ; boot_N = reg2N "Stiefel" "Stiefel" masculine ; - boss_N = reg2N "Chef" "Chefs" masculine ; ---- + boss_N = reg2N "Chef" "Chefs" masculine ; ---- "Vorgesetzte" boy_N = reg2N "Junge" "Jungen" masculine ; bread_N = reg2N "Brot" "Brote" neuter ; break_V2 = dirV2 (fixprefixV "zer" Irreg.schlagen_V) ; broad_A = regA "breit" ; brother_N2 = mkN2 (reg2N "Bruder" "Brüder" masculine) von_Prep ; brown_A = regA "braun" ; - butter_N = reg2N "Butter" "Butter" feminine ; ---- infl + butter_N = reg2N "Butter" "Butter" feminine ; ---- sg t buy_V2 = dirV2 (regV "kaufen") ; camera_N = reg2N "Kamera" "Kameras" feminine ; cap_N = mkN "Mütze" ; car_N = mkN "Auto" "Autos" neuter | mkN "Wagen" "Wagen" masculine ; carpet_N = mkN "Teppich" ; cat_N = mkN "Katze" ; - ceiling_N = reg2N "Dach" "Dächer" neuter ; + ceiling_N = mkN "Zimmerdecke" ; chair_N = reg2N "Stuhl" "Stühle" masculine ; cheese_N = mkN "Käse" "Käse" masculine ; child_N = reg2N "Kind" "Kinder" neuter ; @@ -58,12 +59,12 @@ lin clean_A = regA "rein" ; clever_A = mk3A "klug" "klüger" "klügste" ; close_V2 = dirV2 Irreg.schließen_V ; - coat_N = mkN "Jacke" | mkN "Mantel" "Mantel" masculine; + coat_N = mkN "Jacke" | mkN "Mantel" "Mäntel" masculine; cold_A = mk3A "kalt" "kälter" "kälteste" ; come_V = seinV (mk6V "kommen" "kommt" "komm" "kam" "käme" "gekommen") ; computer_N = reg2N "Rechner" "Rechner" masculine ; country_N = reg2N "Land" "Länder" neuter ; - cousin_N = reg2N "Vetter" "Vetter" masculine ; --- Kusine + cousin_N = reg2N "Vetter" "Vettern" masculine ; --- "Kusine" feminine cow_N = reg2N "Kuh" "Kühe" feminine ; die_V = seinV Irreg.sterben_V | seinV (prefixV "um" Irreg.kommen_V); distance_N3 = mkN3 (mkN "Entfernung") von_Prep zu_Prep ; @@ -91,7 +92,7 @@ lin garden_N = reg2N "Garten" "Gärten" masculine ; girl_N = reg2N "Mädchen" "Mädchen" neuter ; glove_N = mkN "Handschuh" ; - gold_N = reg2N "Gold" "Golde" neuter ; ---- infl + gold_N = reg2N "Gold" "Golde" neuter ; ---- sg t good_A = mk3A "gut" "besser" "beste" ; go_V = seinV Irreg.gehen_V ; green_A = regA "grün" ; @@ -112,7 +113,7 @@ lin know_V2 = dirV2 Irreg.kennen_V ; know_VQ = mkVQ Irreg.wissen_V ; know_VS = mkVS Irreg.wissen_V ; - lake_N = reg2N "See" "Seen" masculine ; --- infl + lake_N = mkN "See" "See" "See" "Sees" "Seen" "Seen" masculine ; lamp_N = mkN "Lampe"; learn_V2 = dirV2 (regV "lernen") ; leather_N = reg2N "Leder" "Leder" neuter ; @@ -126,8 +127,8 @@ lin love_V2 = dirV2 (regV "lieben") ; man_N = reg2N "Mann" "Männer" masculine ; married_A2 = mkA2 (regA "verheiratet") (mkPrep "mit" dative) ; - meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- infl - milk_N = reg2N "Milch" "Milche" feminine ; ---- infl + meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- sg t + milk_N = reg2N "Milch" "Milche" feminine ; ---- sg t moon_N = mkN "Mond" ; mother_N2 = mkN2 (reg2N "Mutter" "Mütter" feminine) von_Prep ; mountain_N = mkN "Berg" ; @@ -144,9 +145,10 @@ lin paper_N = reg2N "Papier" "Papiere" neuter ; paris_PN = mkPN "Paris" neuter ; peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ; - pen_N = mkN "Bleistift" ; ---- + pen_N = mkN "Bleistift" ; planet_N = reg2N "Planet" "Planeten" masculine ; - plastic_N = reg2N "Plastik" "Plastiken" feminine ; ---- + -- plastic_N = reg2N "Plastik" "Plastiken" feminine ; ---- + plastic_N = regN "Kunststoff" ; play_V2 = dirV2 (regV "spielen") ; policeman_N = reg2N "Polizist" "Polizisten" masculine ; priest_N = mkN "Priester" ; @@ -160,7 +162,8 @@ lin religion_N = mkN "Religion" ; restaurant_N = reg2N "Restaurant" "Restaurants" neuter ; river_N = reg2N "Fluß" "Flüsse" masculine ; - rock_N = mkN "Stein" ; + -- rock_N = mkN "Stein" ; -- cf. stone_N = mkN "Stein" ; + rock_N = mkN "Felsen" ; -- "Felsbrocken"; infl "Fels" ; HL 6/17 roof_N = reg2N "Dach" "Dächer" neuter ; rubber_N = reg2N "Gummi" "Gummis" neuter ; run_V = seinV Irreg.laufen_V ; @@ -174,11 +177,11 @@ lin send_V3 = mkV3 (regV "schicken") ; -- Ger mkV3 v = Ger: mkV3 v accPrep datPrep sheep_N = reg2N "Schaf" "Schafe" neuter ; ship_N = reg2N "Schiff" "Schiffe" neuter ; - shirt_N = reg2N "Hemd" "Hemden" neuter ; ---- infl + shirt_N = mkN "Hemd" "Hemd" "Hemd" "Hemds" "Hemden" "Hemden" neuter ; shoe_N = mkN "Schuh" ; shop_N = reg2N "Laden" "Läden" masculine ; short_A = mk3A "kurz" "kürzer" "kürzeste" ; - silver_N = reg2N "Silber" "Silber" neuter ; ---- infl + silver_N = reg2N "Silber" "Silber" neuter ; ---- sg t sister_N = reg2N "Schwester" "Schwestern" feminine ; sleep_V = Irreg.schlafen_V ; small_A = regA "klein" ; @@ -200,7 +203,7 @@ lin talk_V3 = mkV3 (regV "reden") (mkPrep "mit" dative) (mkPrep "über" accusative) ; -- 6/2019 teacher_N = reg2N "Lehrer" "Lehrer" masculine ; teach_V2 = dirV2 (no_geV (regV "unterrichten")) ; - television_N = reg2N "Fernsehen" "Fernsehen" neuter; + television_N = reg2N "Fernsehen" "Fernsehen" neuter; ---- sg t thick_A = regA "dick" ; thin_A = regA "dünn" ; train_N = reg2N "Zug" "Züge" masculine ; @@ -251,7 +254,7 @@ lin back_N = reg2N "Rücken" "Rücken" masculine ; bark_N = mkN "Rinde" ; belly_N = reg2N "Bauch" "Bäuche" masculine ; - blood_N = mkN "Blut" "Blute" neuter ; + blood_N = mkN "Blut" "Blute" neuter ; ---- sg t bone_N = reg2N "Knochen" "Knochen" masculine ; breast_N = reg2N "Brust" "Brüste" feminine ; cloud_N = mkN "Wolke" ; @@ -261,7 +264,7 @@ lin earth_N = mkN "Erde" ; egg_N = mkN "Ei" "Eier" neuter ; eye_N = mkN "Auge" "Augen" neuter; - fat_N = mkN "Fett" "Fetter" neuter ; + fat_N = mkN "Fett" "Fette" neuter ; feather_N = mkN "Feder" "Federn" feminine ; fingernail_N = reg2N "Fingernagel" "Fingernägel" masculine ; fire_N = mkN "Feuer" "Feuer" neuter ; @@ -270,7 +273,7 @@ lin foot_N = reg2N "Fuß" "Füße" masculine ; forest_N = reg2N "Wald" "Wälder" masculine ; grass_N = mkN "Gras" "Gräser" neuter ; - guts_N = mkN "Eingeweide" ; + guts_N = mkN "Eingeweide" "Eingeweide" neuter ; ---- pl t ? hair_N = mkN "Haar" "Haare" neuter ; hand_N = mkN "Hand" "Hände" feminine ; head_N = mkN "Kopf" "Köpfe" masculine ; @@ -295,11 +298,11 @@ lin rope_N = mkN "Seil" "Seile" neuter ; salt_N = mkN "Salz" "Salze" neuter ; sand_N = mkN "Sand" ; - seed_N = mkN "Same" ; + seed_N = mkN "Same" "Samen" masculine ; skin_N = mkN "Haut" "Häute" feminine ; sky_N = mkN "Himmel" ; smoke_N = mkN "Rauch" ; - snow_N = mkN "Schnee" "Schneen" masculine ; ---- pl + snow_N = mkN "Schnee" "Schneen" masculine ; ---- sg t stick_N = mkN "Stock" "Stöcke" masculine ; tail_N = mkN "Schwanz" "Schwänze" masculine ; tongue_N = mkN "Zunge" ; diff --git a/src/german/MakeStructuralGer.gf b/src/german/MakeStructuralGer.gf index 07a13afb..1b306da5 100644 --- a/src/german/MakeStructuralGer.gf +++ b/src/german/MakeStructuralGer.gf @@ -8,7 +8,7 @@ oper mkSubj : Str -> Subj = \x -> {s = x ; lock_Subj = <>} ; mkIQuant : Str -> IQuant = \s -> - {s = \\_,_ => s ; lock_IQuant = <>} ; + {s = \\_,_ => s ; a = Strong ; lock_IQuant = <>} ; mkPredet = overload { mkPredet : A -> Predet = \a -> diff --git a/src/german/MorphoGer.gf b/src/german/MorphoGer.gf index 4b4fa667..1dd5ab3a 100644 --- a/src/german/MorphoGer.gf +++ b/src/german/MorphoGer.gf @@ -77,6 +77,18 @@ oper _ => Predef.tk 2 v } ; + stemVerbImpSg : Str -> Str -> Str = \inf,pres3Sg -> + let stem = stemVerb inf ; -- vergeb.en, piss.en + stemI = init pres3Sg -- vergib.t , piß.t + in case of { + <_ + ("e"|"i") + #nonvowels, + _ + ("i"|"ie") + #nonvowels> => stemI ; -- vergib , piß + _ => stem } ; -- HL 7/17 (always the final vowel?) + + nonvowels : pattern Str = + #(("p"|"b"|"f"|"t"|"d"|"v"|"k"|"g"|"c"|"h"|"j" + |"l"|"r"|"m"|"n"|"s"|"x"|"q"|"z"|"s"|"ß")*) ; + -- For $Numeral$. LinDigit = {s : DForm => CardOrd => Str} ; diff --git a/src/german/NamesGer.gf b/src/german/NamesGer.gf index 43c17cda..6ad21c84 100644 --- a/src/german/NamesGer.gf +++ b/src/german/NamesGer.gf @@ -37,7 +37,7 @@ lin FullName gn sn = { -- UseLN : LN -> NP ; lin UseLN ln = { - s = \\b,c => case ln.hasArt of { + s = \\b,c => case ln.hasDefArt of { True => case b of { True => [] ; -- defart dropped False => artDef ! (gennum ln.g ln.n) ! c @@ -61,7 +61,7 @@ lin PlainLN ln = { -- InLN : LN -> Adv ; lin InLN ln = { s = appPrepNP P.inDat_Prep { - s = \\b,c => case ln.hasArt of { + s = \\b,c => case ln.hasDefArt of { True => case b of { True => [] ; -- defart dropped False => artDef ! (gennum ln.g ln.n) ! c diff --git a/src/german/ParadigmsGer.gf b/src/german/ParadigmsGer.gf index 7493d326..5e50ad18 100644 --- a/src/german/ParadigmsGer.gf +++ b/src/german/ParadigmsGer.gf @@ -1,4 +1,4 @@ ---# -path=.:../common:../abstract:../../prelude +--# -path=.:../common:../abstract:../prelude: --1 German Lexical Paradigms -- @@ -174,15 +174,15 @@ mkN : overload { mkLN : (nom,acc,dat,gen : Str) -> Gender -> LN = \nom,acc,dat,gen,g -> lin LN {s = \\a => table {Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen} ; g = g ; n = Sg ; - hasArt = False} + hasDefArt = False} } ; - defLN : LN -> LN = \n -> n ** {hasArt = True} ; + defLN : LN -> LN = \n -> n ** {hasDefArt = True} ; mk2LN : (karolus, karoli : Str) -> Gender -> LN = \karolus, karoli, g -> lin LN {s = \\a => table {Gen => karoli ; _ => karolus} ; g = g ; n = Sg ; - hasArt = False} ; + hasDefArt = False} ; regLN : (horst : Str) -> Gender -> LN = \horst, g -> mk2LN horst (ifTok Tok (Predef.dp 1 horst) "s" horst (horst + "s")) g ; @@ -224,7 +224,7 @@ mkN : overload { -- Adverbs are formed from strings. mkAdv : Str -> Adv ; -- adverbs have just one form anyway - + mkIAdv : Str -> IAdv ; --2 Prepositions @@ -576,6 +576,7 @@ mkV2 : overload { mkA2 = \a,p -> a ** {c2 = p ; lock_A2 = <>} ; mkAdv s = {s = s ; lock_Adv = <>} ; + mkIAdv s = {s = s ; lock_IAdv = <>} ; mkPrep = overload { mkPrep : Str -> Case -> Prep = \s,c -> @@ -633,7 +634,7 @@ mkV2 : overload { irregV singen singt sang saenge gesungen = let - sing = stemVerb singen ; + sing = stemVerbImpSg singen singt -- geben gibt => gib, HL 7/17 in mk6V singen singt sing sang saenge gesungen ; diff --git a/src/german/QuestionGer.gf b/src/german/QuestionGer.gf index 942a59ec..41bd48df 100644 --- a/src/german/QuestionGer.gf +++ b/src/german/QuestionGer.gf @@ -1,4 +1,4 @@ -concrete QuestionGer of Question = CatGer ** open ResGer in { +concrete QuestionGer of Question = CatGer ** open ResGer, Prelude in { flags optimize=all_subs ; @@ -17,7 +17,7 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { s = \\m,t,a,p => let who = appPrep vp.c1 ip.s ; - cl = (mkClause who (agrP3 ip.n) vp).s ! m ! t ! a ! p + cl = (mkClause who (agrGenNum ip.a) vp).s ! m ! t ! a ! p in table { QDir => cl ! Main ; QIndir => cl ! Sub @@ -36,8 +36,8 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { } ; QuestIAdv iadv cl = { - s = \\m,t,a,p => - let + s = \\m,t,a,p => + let cls = cl.s ! m ! t ! a ! p ; why = iadv.s in table { @@ -47,8 +47,8 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { } ; QuestIComp icomp np = { - s = \\m,t,a,p => - let + s = \\m,t,a,p => + let vp = predV sein_V ** {ext = icomp.ext}; subj = mkSubject np vp.c1 ; cls = (mkClause subj.s subj.a vp).s ! m ! t ! a ! p ; @@ -60,12 +60,13 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { } ; PrepIP p ip = { - s = appPrep p ip.s ; + s = appPrep p ip.s -- todo: mit was => womit ; an was => woran etc. } ; AdvIP ip adv = { s = \\c => ip.s ! c ++ adv.s ; - n = ip.n + a = ip.a ; + isPron = False } ; IdetCN idet cn = @@ -73,8 +74,9 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { g = cn.g ; n = idet.n in { - s = \\c => idet.s ! g ! c ++ cn.s ! Weak ! n ! c ; - n = n + s = \\c => idet.s ! g ! c ++ cn.s ! idet.a ! n ! c ++ cn.adv ++ cn.rc ! n ++ cn.ext ; + a = case n of {Sg => GSg g ; _ => GPl} ; + isPron = False } ; IdetIP idet = @@ -82,16 +84,19 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { g = Neutr ; ---- n = idet.n in { - s = idet.s ! g ; - n = n + s = idet.s ! g ; + a = case n of {Sg => GSg g ; _ => GPl} ; + isPron = False ; } ; - IdetQuant idet num = + IdetQuant iquant num = let - n = num.n + n = num.n ; + a = iquant.a in { - s = \\g,c => idet.s ! (gennum g n) ! c ++ num.s ! AMod (gennum g n) c ; - n = n + s = \\g,c => let gn = gennum g n in iquant.s ! gn ! c ++ num.s ! agrAdj a gn c ; + n = n ; + a = a } ; AdvIAdv i a = {s = i.s ++ a.s} ; diff --git a/src/german/ResGer.gf b/src/german/ResGer.gf index 8336d0c6..22f5c143 100644 --- a/src/german/ResGer.gf +++ b/src/german/ResGer.gf @@ -181,6 +181,9 @@ resource ResGer = ParamX ** open Prelude in { genGenNum : GenNum -> Gender = \gn -> case gn of {GSg g => g ; GPl => Masc} ; + agrGenNum : GenNum -> Agr = \gn -> + case gn of {GSg g => AgSgP3 g ; _ => AgPl P3} ; + -- Used in $NounGer$. agrAdj : Adjf -> GenNum -> Case -> AForm = \a,gn,c -> diff --git a/src/german/StructuralGer.gf b/src/german/StructuralGer.gf index e54a65dd..75ac69eb 100644 --- a/src/german/StructuralGer.gf +++ b/src/german/StructuralGer.gf @@ -50,7 +50,7 @@ concrete StructuralGer of Structural = CatGer ** here_Adv = ss "hier" ; how_IAdv = ss "wie" ; how8much_IAdv = ss "wieviel" ; - how8many_IDet = {s = \\g,c => "wie viel" + detEnding ! (gennum g Pl) ! c ; n = Pl} ; + how8many_IDet = {s = \\g,c => "wie viel" + detEnding ! (gennum g Pl) ! c ; n = Pl ; a = Strong} ; if_Subj = ss "wenn" ; --- no variants in the RGL! | ss "falls" ; in8front_Prep = mkPrep "vor" P.dative ; i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ; @@ -74,8 +74,8 @@ concrete StructuralGer of Structural = CatGer ** sp = \\_,g,c => "viel" + detEnding ! (gennum g Sg) ! c ; ---- (GSg _ Sg) ! Gen ? n = Sg ; a = Strong ; isDef = False ; hasDefArt = False} ; must_VV = auxVV - (mkV - "müssen" "muss" "musst" "muss" "müsst" "müss" + (mkV -- modal verb, has no imperative forms "müsse,müsst" HL 12/2024 + "müssen" "muss" "musst" "muss" "müsst" "müsse" "musste" "musstest" "mussten" "musstet" "müsste" "gemusst" [] VHaben) ; @@ -123,22 +123,26 @@ concrete StructuralGer of Structural = CatGer ** under_Prep = mkPrep "unter" P.dative ; very_AdA = ss "sehr" ; want_VV = auxVV - (mkV - "wollen" "will" "willst" "will" "wollt" "woll" + (mkV -- modal verb, has no imperative forms "wolle,woll(e)t" HL 12/2024 + "wollen" "will" "willst" "will" "wollt" "wolle" "wollte" "wolltest" "wollten" "wolltet" "wollte" "gewollt" [] VHaben) ; we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Fem Pl P1 ; - whatSg_IP = {s = caselist "was" "was" "was" "wessen" ; n = Sg} ; ---- - whatPl_IP = {s = caselist "was" "was" "was" "wessen" ; n = Pl} ; -- HL 6/2016 + whatSg_IP = {s = caselist "was" "was" "was" "wessen" ; + a = GSg Neutr ; isPron = True} ; -- todo: mit was => womit + whatPl_IP = {s = caselist "was alles" "was alles" "was allem" "wessen allem" ; + a = GSg Neutr ; isPron = True} ; -- Duden 563 when_IAdv = ss "wann" ; when_Subj = ss "wenn" ; where_IAdv = ss "wo" ; - which_IQuant = {s = \\gn,c => "welch" + detEnding ! gn ! c} ; - whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; - whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; -- HL 6/2016 + which_IQuant = {s = \\gn,c => "welch" + detEnding ! gn ! c ; a = Weak} ; + whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; + a = GSg Masc ; isPron = True} ; -- Duden 563 + whoPl_IP = {s = caselist "wer alles" "wen alles" "wem alles" "wessen alles" ; + a = GSg Masc ; isPron = True} ; -- Duden 563 why_IAdv = ss "warum" ; without_Prep = mkPrep "ohne" P.accusative ; with_Prep = mkPrep "mit" P.dative ; @@ -153,7 +157,7 @@ concrete StructuralGer of Structural = CatGer ** GPl => \\c => "kein" + detEnding ! GPl ! c} ; sp = \\gn,c => "kein" + detEnding ! gn ! c ; a = Mixed ; isDefArt = False ; delCardOne = True} ; -- HL kein+ein(er) => kein(er) - if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ; + if_then_Conj = {s1 = "wenn" ; s2 = bindComma ++ "dann" ; n = Sg} ; nobody_NP = nameNounPhrase Masc {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ; nothing_NP = @@ -166,7 +170,7 @@ concrete StructuralGer of Structural = CatGer ** have_V2 = P.dirV2 IrregGer.haben_V ; that_Subj = ss "dass" ; - lin language_title_Utt = ss "Deutsch" ; + language_title_Utt = ss "Deutsch" ; oper asNum : (Gender => Case => Str) -> (Gender => Case => {quant,num:Str}) = From 7d4e40bac197ff0361fca3186132518819ad65a8 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 25 Sep 2025 13:02:21 +0200 Subject: [PATCH 059/169] added Ukrainian --- languages.csv | 1 + src/ukrainian/AdjectiveUkr.gf | 4 + src/ukrainian/AllUkr.gf | 4 + src/ukrainian/AllUkrAbs.gf | 3 + src/ukrainian/CatUkr.gf | 21 + src/ukrainian/DocumentationUkr.gf | 85 + src/ukrainian/GrammarUkr.gf | 6 + src/ukrainian/LangUkr.gf | 10 + src/ukrainian/LexiconUkr.gf | 2 + src/ukrainian/MorphoUkr.gf | 33464 ++++++++++++++++++++++++++++ src/ukrainian/NounUkr.gf | 4 + src/ukrainian/ParadigmsUkr.gf | 1331 ++ src/ukrainian/PhraseUkr.gf | 11 + src/ukrainian/ResUkr.gf | 166 + 14 files changed, 35112 insertions(+) create mode 100644 src/ukrainian/AdjectiveUkr.gf create mode 100644 src/ukrainian/AllUkr.gf create mode 100644 src/ukrainian/AllUkrAbs.gf create mode 100644 src/ukrainian/CatUkr.gf create mode 100644 src/ukrainian/DocumentationUkr.gf create mode 100644 src/ukrainian/GrammarUkr.gf create mode 100644 src/ukrainian/LangUkr.gf create mode 100644 src/ukrainian/LexiconUkr.gf create mode 100644 src/ukrainian/MorphoUkr.gf create mode 100644 src/ukrainian/NounUkr.gf create mode 100644 src/ukrainian/ParadigmsUkr.gf create mode 100644 src/ukrainian/PhraseUkr.gf create mode 100644 src/ukrainian/ResUkr.gf diff --git a/languages.csv b/languages.csv index d26ab33a..3e6b8451 100644 --- a/languages.csv +++ b/languages.csv @@ -55,6 +55,7 @@ Tam,Tamil,tamil,n,n,n,n,n,n,n,n,n Tel,Telugu,telugu,,,y,n,n,n,,n,n Tha,Thai,thai,,to_thai,,,,,,y,n Tur,Turkish,turkish,,,y,,,n,,n,n +Ukr,Ukrainian,ukrainian,,,,y,n,n,n,y,n Urd,Urdu,urdu,Hindustani,,,,,,,y,n Som,Somali,somali,,,,,n,n,,n,n Zul,Zulu,zulu,,,,,n,n,,n,n diff --git a/src/ukrainian/AdjectiveUkr.gf b/src/ukrainian/AdjectiveUkr.gf new file mode 100644 index 00000000..efad4049 --- /dev/null +++ b/src/ukrainian/AdjectiveUkr.gf @@ -0,0 +1,4 @@ +concrete AdjectiveUkr of Adjective = CatUkr ** { +--lin +-- PositA a = a ; +} diff --git a/src/ukrainian/AllUkr.gf b/src/ukrainian/AllUkr.gf new file mode 100644 index 00000000..cdc10d0b --- /dev/null +++ b/src/ukrainian/AllUkr.gf @@ -0,0 +1,4 @@ +concrete AllUkr of AllUkrAbs = + LangUkr + ** + {} ; diff --git a/src/ukrainian/AllUkrAbs.gf b/src/ukrainian/AllUkrAbs.gf new file mode 100644 index 00000000..3249e20d --- /dev/null +++ b/src/ukrainian/AllUkrAbs.gf @@ -0,0 +1,3 @@ +abstract AllUkrAbs = + Lang + ** {} \ No newline at end of file diff --git a/src/ukrainian/CatUkr.gf b/src/ukrainian/CatUkr.gf new file mode 100644 index 00000000..f233e219 --- /dev/null +++ b/src/ukrainian/CatUkr.gf @@ -0,0 +1,21 @@ +concrete CatUkr of Cat = CommonX ** open ResUkr in { + +lincat N = N ; +lincat N2 = N ** {c2 : Compl} ; +lincat N3 = N ** {c2,c3 : Compl} ; +lincat V = V ; +lincat VV,VS,VQ,VA = V ; +lincat V2 = V ** {c2 : Compl} ; +lincat V3,V2A,V2S,V2Q,V2V = V ** {c2,c3 : Compl} ; +lincat A = A ; +lincat A2 = A ** {c2 : Compl} ; +lincat Prep = Compl ; +lincat CN = CommonNoun ; +lincat AP = AdjPhrase ; +lincat S = {s : Str} ; + +lincat LN,SN,GN,PN = {s : Str} ; + +linref V,VV,V2,V3,V2A,V2S,V2Q,V2V = \v -> v.infinitive ; + +} diff --git a/src/ukrainian/DocumentationUkr.gf b/src/ukrainian/DocumentationUkr.gf new file mode 100644 index 00000000..8250f6f2 --- /dev/null +++ b/src/ukrainian/DocumentationUkr.gf @@ -0,0 +1,85 @@ +concrete DocumentationUkr of Documentation = CatUkr ** open + ResUkr, Prelude, HTML in { + +lincat + Inflection = {t : Str; s1,s2,s3 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin + InflectionN,InflectionN2,InflectionN3 = \x -> { + t="n" ; + s1="" ; + s2=frameTable ( + tr (intagAttr "th" "rowspan=\"2\"" "Nom" ++ th "Sg" ++ td (x.s ! Nom ! Sg)) ++ + tr (th "Pl" ++ td (x.s ! Nom ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Acc" ++ th "Sg" ++ td (x.s ! Acc ! Sg)) ++ + tr (th "Pl" ++ td (x.s ! Acc ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Dat" ++ th "Sg" ++ td (x.s ! Dat ! Sg)) ++ + tr (th "Pl" ++ td (x.s ! Dat ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Gen" ++ th "Sg" ++ td (x.s ! Gen ! Sg)) ++ + tr (th "Pl" ++ td (x.s ! Gen ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Loc" ++ th "Sg" ++ td (x.s ! Loc ! Sg)) ++ + tr (th "Pl" ++ td (x.s ! Loc ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Instr" ++ th "Sg" ++ td (x.s ! Instr ! Sg)) ++ + tr (th "Pl" ++ td (x.s ! Instr ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Voc" ++ th "Sg" ++ td (x.Voc ! Sg)) ++ + tr (th "Pl" ++ td (x.Voc ! Pl))) ; + s3=[] + } ; +lin + InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> { + t="v" ; + s1="" ; + s2=heading1 "Infinitive" ++ + paragraph (x.infinitive) ++ + heading1 "Present" ++ + frameTable ( + tr (intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P1 ! Sg)) ++ + tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P2 ! Sg)) ++ + tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P2 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P3 ! Sg)) ++ + tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P3 ! Pl))) ++ + heading1 "Imperative" ++ + paragraph (x.imperative1) ++ + frameTable ( + tr (th "Sg" ++ td (x.imperative2 ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative2 ! Pl))) ++ + heading1 "participle" ++ + frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Masc" ++ td (x.participle ! Masc ! Sg) ++ td (x.participle ! Masc ! Pl)) ++ + tr (th "Fem" ++ td (x.participle ! Fem ! Sg) ++ td (x.participle ! Fem ! Pl)) ++ + tr (th "Neuter" ++ td (x.participle ! Neuter ! Sg) ++ td (x.participle ! Neuter ! Pl))) ; + s3=[] + } ; +lin + InflectionA,InflectionA2 = \x -> { + t="a" ; + s1="" ; + s2=frameTable ( + tr (th "" ++ th "Masc" ++ th "Fem" ++ th "Neuter" ++ th "Pl") ++ + tr (th "Nom" ++ td (x.s ! Nom ! GSg Masc) ++ td (x.s ! Nom ! GSg Fem) ++ td (x.s ! Nom ! GSg Neuter) ++ td (x.s ! Nom ! GPl)) ++ + tr (th "Acc" ++ td (x.s ! Acc ! GSg Masc) ++ td (x.s ! Acc ! GSg Fem) ++ td (x.s ! Acc ! GSg Neuter) ++ td (x.s ! Acc ! GPl)) ++ + tr (th "Dat" ++ td (x.s ! Dat ! GSg Masc) ++ td (x.s ! Dat ! GSg Fem) ++ td (x.s ! Dat ! GSg Neuter) ++ td (x.s ! Dat ! GPl)) ++ + tr (th "Gen" ++ td (x.s ! Gen ! GSg Masc) ++ td (x.s ! Gen ! GSg Fem) ++ td (x.s ! Gen ! GSg Neuter) ++ td (x.s ! Gen ! GPl)) ++ + tr (th "Loc" ++ td (x.s ! Loc ! GSg Masc) ++ td (x.s ! Loc ! GSg Fem) ++ td (x.s ! Loc ! GSg Neuter) ++ td (x.s ! Loc ! GPl)) ++ + tr (th "Instr"++td (x.s ! Instr ! GSg Masc)++td (x.s ! Instr ! GSg Fem)++td (x.s ! Instr ! GSg Neuter)++td (x.s ! Instr ! GPl))) ; + s3=[] + } ; +lin + InflectionAdA,InflectionAdN,InflectionAdV,InflectionAdv = \x -> {t="adv"; s1=""; s2=x.s; s3=""} ; + + InflectionPrep = \x -> {t="prep"; s1=""; s2=x.s; s3=""} ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

Definition:"++t.s++d.s++"

Example:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ; + MkTag i = {s = i.t} ; +} diff --git a/src/ukrainian/GrammarUkr.gf b/src/ukrainian/GrammarUkr.gf new file mode 100644 index 00000000..a7d6ff4d --- /dev/null +++ b/src/ukrainian/GrammarUkr.gf @@ -0,0 +1,6 @@ +concrete GrammarUkr of Grammar = + TenseX, + PhraseUkr, + NounUkr, + AdjectiveUkr ** { +} \ No newline at end of file diff --git a/src/ukrainian/LangUkr.gf b/src/ukrainian/LangUkr.gf new file mode 100644 index 00000000..14d8e1ee --- /dev/null +++ b/src/ukrainian/LangUkr.gf @@ -0,0 +1,10 @@ +--# -path=.:../abstract +concrete LangUkr of Lang = + GrammarUkr, + LexiconUkr + ,DocumentationUkr --# notpresent + ** { + +flags startcat = Phr ; + +} \ No newline at end of file diff --git a/src/ukrainian/LexiconUkr.gf b/src/ukrainian/LexiconUkr.gf new file mode 100644 index 00000000..137242ba --- /dev/null +++ b/src/ukrainian/LexiconUkr.gf @@ -0,0 +1,2 @@ +concrete LexiconUkr of Lexicon = CatUkr ** open ParadigmsUkr in { +} \ No newline at end of file diff --git a/src/ukrainian/MorphoUkr.gf b/src/ukrainian/MorphoUkr.gf new file mode 100644 index 00000000..1632ee8a --- /dev/null +++ b/src/ukrainian/MorphoUkr.gf @@ -0,0 +1,33464 @@ +resource MorphoUkr = open CatUkr, ResUkr, Predef in { + +oper + +mkN001 : Str -> N ; +mkN001 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"к" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN001" + } ; + +mkN002 : Str -> N ; +mkN002 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"к" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"к" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN002" + } ; + +mkN003 : Str -> N ; +mkN003 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN003" + } ; + +mkN004 : Str -> N ; +mkN004 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN004" + } ; + +mkN005 : Str -> N ; +mkN005 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN005" + } ; + +mkN006 : Str -> N ; +mkN006 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN006" + } ; + +mkN007 : Str -> N ; +mkN007 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"ок" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN007" + } ; + +mkN008 : Str -> N ; +mkN008 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN008" + } ; + +mkN009 : Str -> N ; +mkN009 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN009" + } ; + +mkN010 : Str -> N ; +mkN010 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"сю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN010" + } ; + +mkN011 : Str -> N ; +mkN011 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN011" + } ; + +mkN012 : Str -> N ; +mkN012 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN012" + } ; + +mkN013 : Str -> N ; +mkN013 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN013" + } ; + +mkN014 : Str -> N ; +mkN014 base = + case base of { + base_1+"ко" => lin N + { s = table { + Nom => table { + Sg => base_1+"ко" ; + Pl => base_1+"чі" + } ; + Acc => table { + Sg => base_1+"ко" ; + Pl => base_1+"чі" + } ; + Dat => table { + Sg => base_1+"ку" ; + Pl => base_1+"чам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"чей" + } ; + Loc => table { + Sg => base_1+"ку" ; + Pl => base_1+"чах" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"чима" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"чі" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN014" + } ; + +mkN015 : Str -> N ; +mkN015 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN015" + } ; + +mkN016 : Str -> N ; +mkN016 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN016" + } ; + +mkN017 : Str -> N ; +mkN017 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN017" + } ; + +mkN018 : Str -> N ; +mkN018 base = + case base of { + base_1+"к" => lin N + { s = table { + Nom => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"кові" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN018" + } ; + +mkN019 : Str -> N ; +mkN019 base = + case base of { + base_1+"к" => lin N + { s = table { + Nom => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"кові" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN019" + } ; + +mkN020 : Str -> N ; +mkN020 base = + case base of { + base_1+"о"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"и" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ою" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN020" + } ; + +mkN021 : Str -> N ; +mkN021 base = + case base of { + base_1+"о"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"і"+base_2 + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"и" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ою" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN021" + } ; + +mkN022 : Str -> N ; +mkN022 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"к" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN022" + } ; + +mkN023 : Str -> N ; +mkN023 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN023" + } ; + +mkN024 : Str -> N ; +mkN024 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN024" + } ; + +mkN025 : Str -> N ; +mkN025 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN025" + } ; + +mkN026 : Str -> N ; +mkN026 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN026" + } ; + +mkN027 : Str -> N ; +mkN027 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN027" + } ; + +mkN028 : Str -> N ; +mkN028 base = + case base of { + base_1+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+"и" ; + Pl => base_1+"ері" + } ; + Acc => table { + Sg => base_1+"ір" ; + Pl => base_1+"ерів" + } ; + Dat => table { + Sg => base_1+"ері" ; + Pl => base_1+"ерям" + } ; + Gen => table { + Sg => base_1+"ері" ; + Pl => base_1+"ерів" + } ; + Loc => table { + Sg => base_1+"ері" ; + Pl => base_1+"ерях" + } ; + Instr => table { + Sg => base_1+"ір'ю" ; + Pl => base_1+"ерями" + } + } ; + Voc = table { + Sg => base_1+"и" ; + Pl => base_1+"ері" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN028" + } ; + +mkN029 : Str -> N ; +mkN029 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN029" + } ; + +mkN030 : Str -> N ; +mkN030 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN030" + } ; + +mkN031 : Str -> N ; +mkN031 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN031" + } ; + +mkN032 : Str -> N ; +mkN032 base = + case base of { + base_1+"ко" => lin N + { s = table { + Nom => table { + Sg => base_1+"ко" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ко" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ку" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN032" + } ; + +mkN033 : Str -> N ; +mkN033 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"ги" + } ; + Dat => table { + Sg => base_1+"зі" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"ги" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гою" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"го" ; + Pl => base_1+"ги" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN033" + } ; + +mkN034 : Str -> N ; +mkN034 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN034" + } ; + +mkN035 : Str -> N ; +mkN035 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN035" + } ; + +mkN036 : Str -> N ; +mkN036 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN036" + } ; + +mkN037 : Str -> N ; +mkN037 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN037" + } ; + +mkN038 : Str -> N ; +mkN038 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ок" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"ок" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN038" + } ; + +mkN039 : Str -> N ; +mkN039 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ею" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN039" + } ; + +mkN040 : Str -> N ; +mkN040 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"тю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN040" + } ; + +mkN041 : Str -> N ; +mkN041 base = + case base of { + base_1+"о"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"а" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"а" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN041" + } ; + +mkN042 : Str -> N ; +mkN042 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"и" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ою" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN042" + } ; + +mkN043 : Str -> N ; +mkN043 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"га" ; + Pl => base_1+"гів" + } ; + Dat => table { + Sg => base_1+"гові" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"гів" + } ; + Loc => table { + Sg => base_1+"гові" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гом" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"же" ; + Pl => base_1+"ги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN043" + } ; + +mkN044 : Str -> N ; +mkN044 base = + case base of { + base_1+"ога" => lin N + { s = table { + Nom => table { + Sg => base_1+"ога" ; + Pl => base_1+"оги" + } ; + Acc => table { + Sg => base_1+"огу" ; + Pl => base_1+"оги" + } ; + Dat => table { + Sg => base_1+"озі" ; + Pl => base_1+"огам" + } ; + Gen => table { + Sg => base_1+"оги" ; + Pl => base_1+"іг" + } ; + Loc => table { + Sg => base_1+"озі" ; + Pl => base_1+"огах" + } ; + Instr => table { + Sg => base_1+"огою" ; + Pl => base_1+"огами" + } + } ; + Voc = table { + Sg => base_1+"ого" ; + Pl => base_1+"оги" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN044" + } ; + +mkN045 : Str -> N ; +mkN045 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN045" + } ; + +mkN046 : Str -> N ; +mkN046 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN046" + } ; + +mkN047 : Str -> N ; +mkN047 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ій" ; + Pl => base_1+"им" + } ; + Gen => table { + Sg => base_1+"ої" ; + Pl => base_1+"их" + } ; + Loc => table { + Sg => base_1+"ій" ; + Pl => base_1+"их" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ими" + } + } ; + Voc = table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN047" + } ; + +mkN048 : Str -> N ; +mkN048 base = + case base of { + base_1+"о"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"и" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ою" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN048" + } ; + +mkN049 : Str -> N ; +mkN049 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"'ю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN049" + } ; + +mkN050 : Str -> N ; +mkN050 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN050" + } ; + +mkN051 : Str -> N ; +mkN051 base = + case base of { + base_1+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+"и" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ей" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ьми" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN051" + } ; + +mkN052 : Str -> N ; +mkN052 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN052" + } ; + +mkN053 : Str -> N ; +mkN053 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"зі" + } ; + Acc => table { + Sg => base_1+"га" ; + Pl => base_1+"зів" + } ; + Dat => table { + Sg => base_1+"гові" ; + Pl => base_1+"зям" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"зів" + } ; + Loc => table { + Sg => base_1+"гові" ; + Pl => base_1+"зях" + } ; + Instr => table { + Sg => base_1+"гом" ; + Pl => base_1+"зями" + } + } ; + Voc = table { + Sg => base_1+"же" ; + Pl => base_1+"зі" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN053" + } ; + +mkN054 : Str -> N ; +mkN054 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"г" ; + Pl => base_1+"ги" + } ; + Dat => table { + Sg => base_1+"гові" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"гів" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гом" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"гу" ; + Pl => base_1+"ги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN054" + } ; + +mkN055 : Str -> N ; +mkN055 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"та" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"т" + } ; + Dat => table { + Sg => base_1+"ті" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ти" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"ті" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"м" ; + Pl => base_1+"тами" + } + } ; + Voc = table { + Sg => base_1 ; + Pl => base_1+"та" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN055" + } ; + +mkN056 : Str -> N ; +mkN056 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN056" + } ; + +mkN057 : Str -> N ; +mkN057 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN057" + } ; + +mkN058 : Str -> N ; +mkN058 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN058" + } ; + +mkN059 : Str -> N ; +mkN059 base = + case base of { + base_1+"х" => lin N + { s = table { + Nom => table { + Sg => base_1+"х" ; + Pl => base_1+"хи" + } ; + Acc => table { + Sg => base_1+"х" ; + Pl => base_1+"хи" + } ; + Dat => table { + Sg => base_1+"хові" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"ху" ; + Pl => base_1+"хів" + } ; + Loc => table { + Sg => base_1+"сі" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хом" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"ху" ; + Pl => base_1+"хи" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN059" + } ; + +mkN060 : Str -> N ; +mkN060 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN060" + } ; + +mkN061 : Str -> N ; +mkN061 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN061" + } ; + +mkN062 : Str -> N ; +mkN062 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"хи" + } ; + Acc => table { + Sg => base_1+"ху" ; + Pl => base_1+"хи" + } ; + Dat => table { + Sg => base_1+"сі" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"хи" ; + Pl => base_1+"х" + } ; + Loc => table { + Sg => base_1+"сі" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хою" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"хо" ; + Pl => base_1+"хи" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN062" + } ; + +mkN063 : Str -> N ; +mkN063 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" --guessed + } ; + Acc => table { + Sg => base_1 ; --guessed + Pl => base_1+"и" --guessed + } ; + Dat => table { + Sg => base_1+"ові" ; --guessed + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"у" ; --guessed + Pl => base_1+"ів" --guessed + } ; + Loc => table { + Sg => base_1+"і" ; --guessed + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ом" ; --guessed + Pl => base_1+"ами" --guessed + } + } ; + Voc = table { + Sg => base_1+"е" ; --guessed + Pl => base_1+"и" --guessed + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN063" + } ; + +mkN064 : Str -> N ; +mkN064 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+"е"+base_2+"а" + } ; + Acc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN064" + } ; + +mkN065 : Str -> N ; +mkN065 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN065" + } ; + +mkN066 : Str -> N ; +mkN066 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN066" + } ; + +mkN067 : Str -> N ; +mkN067 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN067" + } ; + +mkN068 : Str -> N ; +mkN068 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN068" + } ; + +mkN069 : Str -> N ; +mkN069 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN069" + } ; + +mkN070 : Str -> N ; +mkN070 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN070" + } ; + +mkN071 : Str -> N ; +mkN071 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ги" + } ; + Dat => table { + Sg => base_1+"гові" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"гів" + } ; + Loc => table { + Sg => base_1+"гу" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гом" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"гу" ; + Pl => base_1+"ги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN071" + } ; + +mkN072 : Str -> N ; +mkN072 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN072" + } ; + +mkN073 : Str -> N ; +mkN073 base = + case base of { + base_1+"ь"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ь"+base_2+"і" ; + Pl => base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ь"+base_2+"и" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+"ь"+base_2+"і" ; + Pl => base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ь"+base_2+"ою" ; + Pl => base_1+"ь"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ь"+base_2+"о" ; + Pl => base_1+"ь"+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN073" + } ; + +mkN074 : Str -> N ; +mkN074 base = + case base of { + base_1+"к" => lin N + { s = table { + Nom => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ку" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN074" + } ; + +mkN075 : Str -> N ; +mkN075 base = + case base of { + base_1+"к" => lin N + { s = table { + Nom => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ку" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ку" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN075" + } ; + +mkN076 : Str -> N ; +mkN076 base = + case base of { + base_1+base_2@?+"ня" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"ня" ; + Pl => base_1+base_2+"ні" + } ; + Acc => table { + Sg => base_1+base_2+"ню" ; + Pl => base_1+base_2+"ні" + } ; + Dat => table { + Sg => base_1+base_2+"ні" ; + Pl => base_1+base_2+"ням" + } ; + Gen => table { + Sg => base_1+base_2+"ні" ; + Pl => base_1+"ен"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"ні" ; + Pl => base_1+base_2+"нях" + } ; + Instr => table { + Sg => base_1+base_2+"нею" ; + Pl => base_1+base_2+"нями" + } + } ; + Voc = table { + Sg => base_1+base_2+"не" ; + Pl => base_1+base_2+"ні" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN076" + } ; + +mkN077 : Str -> N ; +mkN077 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+"о"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ею" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN077" + } ; + +mkN078 : Str -> N ; +mkN078 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN078" + } ; + +mkN079 : Str -> N ; +mkN079 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN079" + } ; + +mkN080 : Str -> N ; +mkN080 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1+"іх" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN080" + } ; + +mkN081 : Str -> N ; +mkN081 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN081" + } ; + +mkN082 : Str -> N ; +mkN082 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN082" + } ; + +mkN083 : Str -> N ; +mkN083 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ь" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN083" + } ; + +mkN084 : Str -> N ; +mkN084 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN084" + } ; + +mkN085 : Str -> N ; +mkN085 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN085" + } ; + +mkN086 : Str -> N ; +mkN086 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ь" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN086" + } ; + +mkN087 : Str -> N ; +mkN087 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN087" + } ; + +mkN088 : Str -> N ; +mkN088 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN088" + } ; + +mkN089 : Str -> N ; +mkN089 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN089" + } ; + +mkN090 : Str -> N ; +mkN090 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN090" + } ; + +mkN091 : Str -> N ; +mkN091 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN091" + } ; + +mkN092 : Str -> N ; +mkN092 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN092" + } ; + +mkN093 : Str -> N ; +mkN093 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"лю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN093" + } ; + +mkN094 : Str -> N ; +mkN094 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"г" ; + Pl => base_1+"ги" + } ; + Dat => table { + Sg => base_1+"гові" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"гу" ; + Pl => base_1+"гів" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гом" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"гу" ; + Pl => base_1+"ги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN094" + } ; + +mkN095 : Str -> N ; +mkN095 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN095" + } ; + +mkN096 : Str -> N ; +mkN096 base = + case base of { + base_1+"ей" => lin N + { s = table { + Nom => table { + Sg => base_1+"ей" ; + Pl => base_1+"'ї" + } ; + Acc => table { + Sg => base_1+"'я" ; + Pl => base_1+"'ї" + } ; + Dat => table { + Sg => base_1+"'ю" ; + Pl => base_1+"'ям" + } ; + Gen => table { + Sg => base_1+"'я" ; + Pl => base_1+"'їв" + } ; + Loc => table { + Sg => base_1+"'ю" ; + Pl => base_1+"'ях" + } ; + Instr => table { + Sg => base_1+"'єм" ; + Pl => base_1+"'ями" + } + } ; + Voc = table { + Sg => base_1+"'ю" ; + Pl => base_1+"'ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN096" + } ; + +mkN097 : Str -> N ; +mkN097 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"ї" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ї" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => base_1+"ї" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"є" ; + Pl => base_1+"ї" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN097" + } ; + +mkN098 : Str -> N ; +mkN098 base = + case base of { + base_1+"оха" => lin N + { s = table { + Nom => table { + Sg => base_1+"оха" ; + Pl => base_1+"охи" + } ; + Acc => table { + Sg => base_1+"оху" ; + Pl => base_1+"охи" + } ; + Dat => table { + Sg => base_1+"осі" ; + Pl => base_1+"охам" + } ; + Gen => table { + Sg => base_1+"охи" ; + Pl => base_1+"іх" + } ; + Loc => table { + Sg => base_1+"осі" ; + Pl => base_1+"охах" + } ; + Instr => table { + Sg => base_1+"охою" ; + Pl => base_1+"охами" + } + } ; + Voc = table { + Sg => base_1+"охо" ; + Pl => base_1+"охи" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN098" + } ; + +mkN099 : Str -> N ; +mkN099 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN099" + } ; + +mkN100 : Str -> N ; +mkN100 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN100" + } ; + +mkN101 : Str -> N ; +mkN101 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"г" + } ; + Dat => table { + Sg => base_1+"зі" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"ги" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гою" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"го" ; + Pl => base_1+"ги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN101" + } ; + +mkN102 : Str -> N ; +mkN102 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"г" ; + Pl => base_1+"ги" + } ; + Dat => table { + Sg => base_1+"гові" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"гу" ; + Pl => base_1+"гів" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гом" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"же" ; + Pl => base_1+"ги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN102" + } ; + +mkN103 : Str -> N ; +mkN103 base = + case base of { + base_1+"і"+base_2@("ст"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN103" + } ; + +mkN104 : Str -> N ; +mkN104 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ьми" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN104" + } ; + +mkN105 : Str -> N ; +mkN105 base = + case base of { + base_1+"це" => lin N + { s = table { + Nom => table { + Sg => base_1+"це" ; + Pl => base_1+"ця" + } ; + Acc => table { + Sg => base_1+"це" ; + Pl => base_1+"ця" + } ; + Dat => table { + Sg => base_1+"цю" ; + Pl => base_1+"цям" + } ; + Gen => table { + Sg => base_1+"ця" ; + Pl => base_1+"ець" + } ; + Loc => table { + Sg => base_1+"цю" ; + Pl => base_1+"цях" + } ; + Instr => table { + Sg => base_1+"цем" ; + Pl => base_1+"цями" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ця" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN105" + } ; + +mkN106 : Str -> N ; +mkN106 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"дю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN106" + } ; + +mkN107 : Str -> N ; +mkN107 base = + case base of { + "о"+base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => "о"+base_1+"е"+base_2 ; + Pl => "ві"+base_1+base_2+"а" + } ; + Acc => table { + Sg => "о"+base_1+"е"+base_2 ; + Pl => "ві"+base_1+base_2+"а" + } ; + Dat => table { + Sg => "ві"+base_1+base_2+"ові" ; + Pl => "ві"+base_1+base_2+"ам" + } ; + Gen => table { + Sg => "ві"+base_1+base_2+"а" ; + Pl => "ві"+base_1+base_2+"ів" + } ; + Loc => table { + Sg => "ві"+base_1+base_2+"і" ; + Pl => "ві"+base_1+base_2+"ах" + } ; + Instr => table { + Sg => "ві"+base_1+base_2+"ом" ; + Pl => "ві"+base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => "ві"+base_1+base_2+"е" ; + Pl => "ві"+base_1+base_2+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN107" + } ; + +mkN108 : Str -> N ; +mkN108 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"ги" + } ; + Dat => table { + Sg => base_1+"зі" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"ги" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гою" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"го" ; + Pl => base_1+"ги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN108" + } ; + +mkN109 : Str -> N ; +mkN109 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"дю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN109" + } ; + +mkN110 : Str -> N ; +mkN110 base = + case base of { + base_1+"о"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"а" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"о"+base_2+"а" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"о"+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN110" + } ; + +mkN111 : Str -> N ; +mkN111 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"чю" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN111" + } ; + +mkN112 : Str -> N ; +mkN112 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"чю" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN112" + } ; + +mkN113 : Str -> N ; +mkN113 base = + case base of { + base_1+"е"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"о" ; + Pl => base_1+"е"+base_2+"а" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"о" ; + Pl => base_1+"е"+base_2+"а" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"о" ; + Pl => base_1+"е"+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN113" + } ; + +mkN114 : Str -> N ; +mkN114 base = + case base of { + base_1+"к" => lin N + { s = table { + Nom => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN114" + } ; + +mkN115 : Str -> N ; +mkN115 base = + case base of { + base_1+"'я" => lin N + { s = table { + Nom => table { + Sg => base_1+"'я" ; + Pl => base_1+"ена" + } ; + Acc => table { + Sg => base_1+"'я" ; + Pl => base_1+"ена" + } ; + Dat => table { + Sg => base_1+"ені" ; + Pl => base_1+"енам" + } ; + Gen => table { + Sg => base_1+"ені" ; + Pl => base_1+"ен" + } ; + Loc => table { + Sg => base_1+"ені" ; + Pl => base_1+"енах" + } ; + Instr => table { + Sg => base_1+"енем" ; + Pl => base_1+"енами" + } + } ; + Voc = table { + Sg => base_1+"'я" ; + Pl => base_1+"ена" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN115" + } ; + +mkN116 : Str -> N ; +mkN116 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN116" + } ; + +mkN117 : Str -> N ; +mkN117 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" --guessed + } ; + Acc => table { + Sg => base_1 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" --guessed + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN117" + } ; + +mkN118 : Str -> N ; +mkN118 base = + case base of { + base_1+"о"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"і"+base_2 + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"и" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ою" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN118" + } ; + +mkN119 : Str -> N ; +mkN119 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN119" + } ; + +mkN120 : Str -> N ; +mkN120 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN120" + } ; + +mkN121 : Str -> N ; +mkN121 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"шю" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN121" + } ; + +mkN122 : Str -> N ; +mkN122 base = + case base of { + base_1+"е"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"и" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ою" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"о" ; + Pl => base_1+"е"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN122" + } ; + +mkN123 : Str -> N ; +mkN123 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN123" + } ; + +mkN124 : Str -> N ; +mkN124 base = + case base of { + base_1+"ъ" => lin N + { s = table { + Nom => table { + Sg => base_1+"ъ" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN124" + } ; + +mkN125 : Str -> N ; +mkN125 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"еса" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"еса" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"есам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ес" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"есах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"есами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"еса" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN125" + } ; + +mkN126 : Str -> N ; +mkN126 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+"е"+base_2 + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"и" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ою" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN126" + } ; + +mkN127 : Str -> N ; +mkN127 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN127" + } ; + +mkN128 : Str -> N ; +mkN128 base = + case base of { + base_1+"о"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"а" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"а" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"о" ; + Pl => base_1+"о"+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN128" + } ; + +mkN129 : Str -> N ; +mkN129 base = + case base of { + base_1+"це" => lin N + { s = table { + Nom => table { + Sg => base_1+"це" ; + Pl => base_1+"ця" + } ; + Acc => table { + Sg => base_1+"це" ; + Pl => base_1+"ця" + } ; + Dat => table { + Sg => base_1+"цю" ; + Pl => base_1+"цям" + } ; + Gen => table { + Sg => base_1+"ця" ; + Pl => base_1+"ць" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"цях" + } ; + Instr => table { + Sg => base_1+"цем" ; + Pl => base_1+"цями" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ця" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN129" + } ; + +mkN130 : Str -> N ; +mkN130 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"и" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ою" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN130" + } ; + +mkN131 : Str -> N ; +mkN131 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN131" + } ; + +mkN132 : Str -> N ; +mkN132 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN132" + } ; + +mkN133 : Str -> N ; +mkN133 base = + case base of { + base_1+"х" => lin N + { s = table { + Nom => table { + Sg => base_1+"х" ; + Pl => base_1+"хи" + } ; + Acc => table { + Sg => base_1+"ха" ; + Pl => base_1+"хів" + } ; + Dat => table { + Sg => base_1+"хові" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"ха" ; + Pl => base_1+"хів" + } ; + Loc => table { + Sg => base_1+"хові" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хом" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"ше" ; + Pl => base_1+"хи" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN133" + } ; + +mkN134 : Str -> N ; +mkN134 base = + case base of { + base_1+"х" => lin N + { s = table { + Nom => table { + Sg => base_1+"х" ; + Pl => base_1+"хи" + } ; + Acc => table { + Sg => base_1+"х" ; + Pl => base_1+"хи" + } ; + Dat => table { + Sg => base_1+"хові" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"ха" ; + Pl => base_1+"хів" + } ; + Loc => table { + Sg => base_1+"сі" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хом" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"ху" ; + Pl => base_1+"хи" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN134" + } ; + +mkN135 : Str -> N ; +mkN135 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ь" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN135" + } ; + +mkN136 : Str -> N ; +mkN136 base = + case base of { + base_1+"ин" => lin N + { s = table { + Nom => table { + Sg => base_1+"ин" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"ина" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"инові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ина" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"инові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ином" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"ине" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN136" + } ; + +mkN137 : Str -> N ; +mkN137 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN137" + } ; + +mkN138 : Str -> N ; +mkN138 base = + case base of { + base_1+"ий" => lin N + { s = table { + Nom => table { + Sg => base_1+"ий" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ий" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ому" ; + Pl => base_1+"им" + } ; + Gen => table { + Sg => base_1+"ого" ; + Pl => base_1+"их" + } ; + Loc => table { + Sg => base_1+"ому" ; + Pl => base_1+"их" + } ; + Instr => table { + Sg => base_1+"им" ; + Pl => base_1+"ими" + } + } ; + Voc = table { + Sg => base_1+"ий" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN138" + } ; + +mkN139 : Str -> N ; +mkN139 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN139" + } ; + +mkN140 : Str -> N ; +mkN140 base = + case base of { + base_1+"ец"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ец"+base_2 ; + Pl => base_1+base_2+"ці" + } ; + Acc => table { + Sg => base_1+"ец"+base_2 ; + Pl => base_1+base_2+"ці" + } ; + Dat => table { + Sg => base_1+base_2+"цеві" ; + Pl => base_1+base_2+"цям" + } ; + Gen => table { + Sg => base_1+base_2+"ця" ; + Pl => base_1+base_2+"ців" + } ; + Loc => table { + Sg => base_1+base_2+"цю" ; + Pl => base_1+base_2+"цях" + } ; + Instr => table { + Sg => base_1+base_2+"цем" ; + Pl => base_1+base_2+"цями" + } + } ; + Voc = table { + Sg => base_1+base_2+"цю" ; + Pl => base_1+base_2+"ці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN140" + } ; + +mkN141 : Str -> N ; +mkN141 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"зю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN141" + } ; + +mkN142 : Str -> N ; +mkN142 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ню" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN142" + } ; + +mkN143 : Str -> N ; +mkN143 base = + case base of { + base_1+"іг" => lin N + { s = table { + Nom => table { + Sg => base_1+"іг" ; + Pl => base_1+"оги" + } ; + Acc => table { + Sg => base_1+"іг" ; + Pl => base_1+"оги" + } ; + Dat => table { + Sg => base_1+"огові" ; + Pl => base_1+"огам" + } ; + Gen => table { + Sg => base_1+"ога" ; + Pl => base_1+"огів" + } ; + Loc => table { + Sg => base_1+"озі" ; + Pl => base_1+"огах" + } ; + Instr => table { + Sg => base_1+"огом" ; + Pl => base_1+"огами" + } + } ; + Voc = table { + Sg => base_1+"огу" ; + Pl => base_1+"оги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN143" + } ; + +mkN144 : Str -> N ; +mkN144 base = + case base of { + base_1+"іг" => lin N + { s = table { + Nom => table { + Sg => base_1+"іг" ; + Pl => base_1+"оги" + } ; + Acc => table { + Sg => base_1+"іг" ; + Pl => base_1+"оги" + } ; + Dat => table { + Sg => base_1+"огові" ; + Pl => base_1+"огам" + } ; + Gen => table { + Sg => base_1+"огу" ; + Pl => base_1+"огів" + } ; + Loc => table { + Sg => base_1+"озі" ; + Pl => base_1+"огах" + } ; + Instr => table { + Sg => base_1+"огом" ; + Pl => base_1+"огами" + } + } ; + Voc = table { + Sg => base_1+"огу" ; + Pl => base_1+"оги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN144" + } ; + +mkN145 : Str -> N ; +mkN145 base = + case base of { + base_1+base_2@?+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"я" + } ; + Acc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"я" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+"де"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN145" + } ; + +mkN146 : Str -> N ; +mkN146 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ей" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"има" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN146" + } ; + +mkN147 : Str -> N ; +mkN147 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN147" + } ; + +mkN148 : Str -> N ; +mkN148 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" --guessed + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" --guessed + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" --guessed + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" --guessed + } ; + Loc => table { + Sg => base_1+"ї" ; + Pl => base_1+"ях" --guessed + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" --guessed + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" --guessed + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN148" + } ; + +mkN149 : Str -> N ; +mkN149 base = + case base of { + base_1+"'я" => lin N + { s = table { + Nom => table { + Sg => base_1+"'я" ; + Pl => base_1+"'ї" + } ; + Acc => table { + Sg => base_1+"'ю" ; + Pl => base_1+"'ї" + } ; + Dat => table { + Sg => base_1+"'ї" ; + Pl => base_1+"'ям" + } ; + Gen => table { + Sg => base_1+"'ї" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"'ї" ; + Pl => base_1+"'ях" + } ; + Instr => table { + Sg => base_1+"'єю" ; + Pl => base_1+"'ями" + } + } ; + Voc = table { + Sg => base_1+"'є" ; + Pl => base_1+"'ї" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN149" + } ; + +mkN150 : Str -> N ; +mkN150 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"е"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN150" + } ; + +mkN151 : Str -> N ; +mkN151 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"та" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"та" + } ; + Dat => table { + Sg => base_1+"ті" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ти" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"ті" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"м" ; + Pl => base_1+"тами" + } + } ; + Voc = table { + Sg => base_1 ; + Pl => base_1+"та" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN151" + } ; + +mkN152 : Str -> N ; +mkN152 base = + case base of { + base_1+"й"+base_2@?+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"й"+base_2+"е" ; + Pl => base_1+"й"+base_2+"я" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"е" ; + Pl => base_1+"й"+base_2+"я" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"ю" ; + Pl => base_1+"й"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"я" ; + Pl => base_1+"є"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"ю" ; + Pl => base_1+"й"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ем" ; + Pl => base_1+"й"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"й"+base_2+"е" ; + Pl => base_1+"й"+base_2+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN152" + } ; + +mkN153 : Str -> N ; +mkN153 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+"о"+base_2 + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN153" + } ; + +mkN154 : Str -> N ; +mkN154 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN154" + } ; + +mkN155 : Str -> N ; +mkN155 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN155" + } ; + +mkN156 : Str -> N ; +mkN156 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN156" + } ; + +mkN157 : Str -> N ; +mkN157 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN157" + } ; + +mkN158 : Str -> N ; +mkN158 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN158" + } ; + +mkN159 : Str -> N ; +mkN159 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN159" + } ; + +mkN160 : Str -> N ; +mkN160 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN160" + } ; + +mkN161 : Str -> N ; +mkN161 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"г" + } ; + Dat => table { + Sg => base_1+"зі" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"ги" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гою" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"го" ; + Pl => base_1+"ги" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN161" + } ; + +mkN162 : Str -> N ; +mkN162 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"к" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"к" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN162" + } ; + +mkN163 : Str -> N ; +mkN163 base = + case base of { + base_1+"ець" => lin N + { s = table { + Nom => table { + Sg => base_1+"ець" ; + Pl => base_1+"ці" + } ; + Acc => table { + Sg => base_1+"ця" ; + Pl => base_1+"ці" + } ; + Dat => table { + Sg => base_1+"цеві" ; + Pl => base_1+"цям" + } ; + Gen => table { + Sg => base_1+"ця" ; + Pl => base_1+"ців" + } ; + Loc => table { + Sg => base_1+"цеві" ; + Pl => base_1+"цях" + } ; + Instr => table { + Sg => base_1+"цем" ; + Pl => base_1+"цями" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN163" + } ; + +mkN164 : Str -> N ; +mkN164 base = + case base of { + base_1+"є"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"є"+base_2+"ь" ; + Pl => base_1+"й"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"я" ; + Pl => base_1+"й"+base_2+"ів" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"еві" ; + Pl => base_1+"й"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"я" ; + Pl => base_1+"й"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"еві" ; + Pl => base_1+"й"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ем" ; + Pl => base_1+"й"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"й"+base_2+"ю" ; + Pl => base_1+"й"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN164" + } ; + +mkN165 : Str -> N ; +mkN165 base = + case base of { + base_1+"чя" => lin N + { s = table { + Nom => table { + Sg => base_1+"чя" ; + Pl => base_1+"чя" + } ; + Acc => table { + Sg => base_1+"чя" ; + Pl => base_1+"чя" + } ; + Dat => table { + Sg => base_1+"чю" ; + Pl => base_1+"чям" + } ; + Gen => table { + Sg => base_1+"чя" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"чі" ; + Pl => base_1+"чях" + } ; + Instr => table { + Sg => base_1+"чям" ; + Pl => base_1+"чями" + } + } ; + Voc = table { + Sg => base_1+"чя" ; + Pl => base_1+"чя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN165" + } ; + +mkN166 : Str -> N ; +mkN166 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN166" + } ; + +mkN167 : Str -> N ; +mkN167 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN167" + } ; + +mkN168 : Str -> N ; +mkN168 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"'ю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN168" + } ; + +mkN169 : Str -> N ; +mkN169 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN169" + } ; + +mkN170 : Str -> N ; +mkN170 base = + case base of { + base_1+"ина" => lin N + { s = table { + Nom => table { + Sg => base_1+"ина" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"ину" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"ині" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ини" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"ині" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"иною" ; + Pl => base_1+"ьми" + } + } ; + Voc = table { + Sg => base_1+"ино" ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN170" + } ; + +mkN171 : Str -> N ; +mkN171 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN171" + } ; + +mkN172 : Str -> N ; +mkN172 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN172" + } ; + +mkN173 : Str -> N ; +mkN173 base = + case base of { + base_1+"і"+base_2@("ск"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN173" + } ; + +mkN174 : Str -> N ; +mkN174 base = + case base of { + "ві"+base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => "ві"+base_1+base_2+"я" ; + Pl => "ві"+base_1+base_2+"і" + } ; + Acc => table { + Sg => "ві"+base_1+base_2+"ю" ; + Pl => "ві"+base_1+base_2+"і" + } ; + Dat => table { + Sg => "ві"+base_1+base_2+"і" ; + Pl => "ві"+base_1+base_2+"ям" + } ; + Gen => table { + Sg => "ві"+base_1+base_2+"і" ; + Pl => "о"+base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => "ві"+base_1+base_2+"і" ; + Pl => "ві"+base_1+base_2+"ях" + } ; + Instr => table { + Sg => "ві"+base_1+base_2+"ею" ; + Pl => "ві"+base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => "ві"+base_1+base_2+"е" ; + Pl => "ві"+base_1+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN174" + } ; + +mkN175 : Str -> N ; +mkN175 base = + case base of { + base_1+"де"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"де"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"де"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN175" + } ; + +mkN176 : Str -> N ; +mkN176 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN176" + } ; + +mkN177 : Str -> N ; +mkN177 base = + case base of { + base_1+"о"+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ею" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN177" + } ; + +mkN178 : Str -> N ; +mkN178 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN178" + } ; + +mkN179 : Str -> N ; +mkN179 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"єві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN179" + } ; + +mkN180 : Str -> N ; +mkN180 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN180" + } ; + +mkN181 : Str -> N ; +mkN181 base = + case base of { + base_1+"і"+base_2@("зд"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN181" + } ; + +mkN182 : Str -> N ; +mkN182 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ьми" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN182" + } ; + +mkN183 : Str -> N ; +mkN183 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ьми" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN183" + } ; + +mkN184 : Str -> N ; +mkN184 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN184" + } ; + +mkN185 : Str -> N ; +mkN185 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN185" + } ; + +mkN186 : Str -> N ; +mkN186 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ї" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN186" + } ; + +mkN187 : Str -> N ; +mkN187 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN187" + } ; + +mkN188 : Str -> N ; +mkN188 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"е"+base_2+"лю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN188" + } ; + +mkN189 : Str -> N ; +mkN189 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ей" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"лю" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN189" + } ; + +mkN190 : Str -> N ; +mkN190 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ов" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN190" + } ; + +mkN191 : Str -> N ; +mkN191 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN191" + } ; + +mkN192 : Str -> N ; +mkN192 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN192" + } ; + +mkN193 : Str -> N ; +mkN193 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN193" + } ; + +mkN194 : Str -> N ; +mkN194 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN194" + } ; + +mkN195 : Str -> N ; +mkN195 base = + case base of { + base_1+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+"и" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN195" + } ; + +mkN196 : Str -> N ; +mkN196 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN196" + } ; + +mkN197 : Str -> N ; +mkN197 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN197" + } ; + +mkN198 : Str -> N ; +mkN198 base = + case base of { + base_1+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+"и" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN198" + } ; + +mkN199 : Str -> N ; +mkN199 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN199" + } ; + +mkN200 : Str -> N ; +mkN200 base = + case base of { + base_1+base_2@?+base_3@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+base_3+"о" ; + Pl => base_1+"те"+base_2+base_3+"а" + } ; + Acc => table { + Sg => base_1+base_2+base_3+"о" ; + Pl => base_1+"те"+base_2+base_3+"а" + } ; + Dat => table { + Sg => base_1+base_2+base_3+"у" ; + Pl => base_1+"те"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+base_2+base_3+"а" ; + Pl => base_1+"те"+base_2+"о"+base_3 + } ; + Loc => table { + Sg => base_1+base_2+base_3+"у" ; + Pl => base_1+"те"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+base_2+base_3+"ом" ; + Pl => base_1+"те"+base_2+base_3+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+base_3+"о" ; + Pl => base_1+"те"+base_2+base_3+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN200" + } ; + +mkN201 : Str -> N ; +mkN201 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ові" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN201" + } ; + +mkN202 : Str -> N ; +mkN202 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN202" + } ; + +mkN203 : Str -> N ; +mkN203 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN203" + } ; + +mkN204 : Str -> N ; +mkN204 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN204" + } ; + +mkN205 : Str -> N ; +mkN205 base = + case base of { + base_1+"ня" => lin N + { s = table { + Nom => table { + Sg => base_1+"ня" ; + Pl => base_1+"ня" + } ; + Acc => table { + Sg => base_1+"ня" ; + Pl => base_1+"ня" + } ; + Dat => table { + Sg => base_1+"ню" ; + Pl => base_1+"ням" + } ; + Gen => table { + Sg => base_1+"ня" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"ні" ; + Pl => base_1+"нях" + } ; + Instr => table { + Sg => base_1+"ням" ; + Pl => base_1+"нями" + } + } ; + Voc = table { + Sg => base_1+"ня" ; + Pl => base_1+"ня" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN205" + } ; + +mkN206 : Str -> N ; +mkN206 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" --guessed + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" --guessed + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" --guessed + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" --guessed + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" --guessed + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" --guessed + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" --guessed + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN206" + } ; + +mkN207 : Str -> N ; +mkN207 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN207" + } ; + +mkN208 : Str -> N ; +mkN208 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN208" + } ; + +mkN209 : Str -> N ; +mkN209 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN209" + } ; + +mkN210 : Str -> N ; +mkN210 base = + case base of { + base_1+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN210" + } ; + +mkN211 : Str -> N ; +mkN211 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN211" + } ; + +mkN212 : Str -> N ; +mkN212 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN212" + } ; + +mkN213 : Str -> N ; +mkN213 base = + case base of { + base_1+"и"+base_2@?+"ина" => lin N + { s = table { + Nom => table { + Sg => base_1+"и"+base_2+"ина" ; + Pl => base_1+"і"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"и"+base_2+"ину" ; + Pl => base_1+"і"+base_2+"ей" + } ; + Dat => table { + Sg => base_1+"и"+base_2+"ині" ; + Pl => base_1+"і"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"и"+base_2+"ини" ; + Pl => base_1+"і"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"и"+base_2+"ині" ; + Pl => base_1+"і"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"и"+base_2+"иною" ; + Pl => base_1+"і"+base_2+"ьми" + } + } ; + Voc = table { + Sg => base_1+"и"+base_2+"ино" ; + Pl => base_1+"і"+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN213" + } ; + +mkN214 : Str -> N ; +mkN214 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN214" + } ; + +mkN215 : Str -> N ; +mkN215 base = + case base of { + base_1+"ий" => lin N + { s = table { + Nom => table { + Sg => base_1+"ий" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ого" ; + Pl => base_1+"их" + } ; + Dat => table { + Sg => base_1+"ому" ; + Pl => base_1+"им" + } ; + Gen => table { + Sg => base_1+"ого" ; + Pl => base_1+"их" + } ; + Loc => table { + Sg => base_1+"ому" ; + Pl => base_1+"их" + } ; + Instr => table { + Sg => base_1+"им" ; + Pl => base_1+"ими" + } + } ; + Voc = table { + Sg => base_1+"ий" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN215" + } ; + +mkN216 : Str -> N ; +mkN216 base = + case base of { + base_1+"є"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"є"+base_2+"ь" ; + Pl => base_1+"й"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"я" ; + Pl => base_1+"й"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"еві" ; + Pl => base_1+"й"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"я" ; + Pl => base_1+"й"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"еві" ; + Pl => base_1+"й"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ем" ; + Pl => base_1+"й"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"й"+base_2+"ю" ; + Pl => base_1+"й"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN216" + } ; + +mkN217 : Str -> N ; +mkN217 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"хи" + } ; + Acc => table { + Sg => base_1+"ху" ; + Pl => base_1+"х" + } ; + Dat => table { + Sg => base_1+"сі" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"хи" ; + Pl => base_1+"х" + } ; + Loc => table { + Sg => base_1+"сі" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хою" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"хо" ; + Pl => base_1+"хи" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN217" + } ; + +mkN218 : Str -> N ; +mkN218 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"е"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN218" + } ; + +mkN219 : Str -> N ; +mkN219 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"е"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN219" + } ; + +mkN220 : Str -> N ; +mkN220 base = + case base of { + base_1+"ья" => lin N + { s = table { + Nom => table { + Sg => base_1+"ья" ; + Pl => base_1+"ьї" + } ; + Acc => table { + Sg => base_1+"ью" ; + Pl => base_1+"ьї" + } ; + Dat => table { + Sg => base_1+"ьї" ; + Pl => base_1+"ьям" + } ; + Gen => table { + Sg => base_1+"ьї" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"ьї" ; + Pl => base_1+"ьях" + } ; + Instr => table { + Sg => base_1+"ьєю" ; + Pl => base_1+"ьями" + } + } ; + Voc = table { + Sg => base_1+"ьє" ; + Pl => base_1+"ьї" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN220" + } ; + +mkN221 : Str -> N ; +mkN221 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN221" + } ; + +mkN222 : Str -> N ; +mkN222 base = + case base of { + base_1+"о"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN222" + } ; + +mkN223 : Str -> N ; +mkN223 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"ню" ; + Pl => base_1+"е"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN223" + } ; + +mkN224 : Str -> N ; +mkN224 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"і"+base_2+"ьми" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN224" + } ; + +mkN225 : Str -> N ; +mkN225 base = + case base of { + base_1+"ина" => lin N + { s = table { + Nom => table { + Sg => base_1+"ина" ; + Pl => base_1+"ата" + } ; + Acc => table { + Sg => base_1+"ину" ; + Pl => base_1+"ат" + } ; + Dat => table { + Sg => base_1+"ині" ; + Pl => base_1+"атам" + } ; + Gen => table { + Sg => base_1+"ини" ; + Pl => base_1+"ат" + } ; + Loc => table { + Sg => base_1+"ині" ; + Pl => base_1+"атах" + } ; + Instr => table { + Sg => base_1+"иною" ; + Pl => base_1+"атами" + } + } ; + Voc = table { + Sg => base_1+"ино" ; + Pl => base_1+"ата" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN225" + } ; + +mkN226 : Str -> N ; +mkN226 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"кю" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN226" + } ; + +mkN227 : Str -> N ; +mkN227 base = + case base of { + base_1+"ій"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"ій"+base_2+"а" ; + Pl => base_1+"ій"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"ій"+base_2+"у" ; + Pl => base_1+"ій"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ій"+base_2+"і" ; + Pl => base_1+"ій"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ій"+base_2+"и" ; + Pl => base_1+"оє"+base_2 + } ; + Loc => table { + Sg => base_1+"ій"+base_2+"і" ; + Pl => base_1+"ій"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ій"+base_2+"ою" ; + Pl => base_1+"ій"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ій"+base_2+"о" ; + Pl => base_1+"ій"+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN227" + } ; + +mkN228 : Str -> N ; +mkN228 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" --guessed + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"і"+base_2+"тю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN228" + } ; + +mkN229 : Str -> N ; +mkN229 base = + case base of { + base_1+"і"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN229" + } ; + +mkN230 : Str -> N ; +mkN230 base = + case base of { + base_1+"ій" => lin N + { s = table { + Nom => table { + Sg => base_1+"ій" ; + Pl => base_1+"ої" + } ; + Acc => table { + Sg => base_1+"ій" ; + Pl => base_1+"ої" + } ; + Dat => table { + Sg => base_1+"ою" ; + Pl => base_1+"оям" + } ; + Gen => table { + Sg => base_1+"ою" ; + Pl => base_1+"оїв" + } ; + Loc => table { + Sg => base_1+"ою" ; + Pl => base_1+"оях" + } ; + Instr => table { + Sg => base_1+"оєм" ; + Pl => base_1+"оями" + } + } ; + Voc = table { + Sg => base_1+"ою" ; + Pl => base_1+"ої" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN230" + } ; + +mkN231 : Str -> N ; +mkN231 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ю" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN231" + } ; + +mkN232 : Str -> N ; +mkN232 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"лю" ; + Pl => base_1+"е"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN232" + } ; + +mkN233 : Str -> N ; +mkN233 base = + case base of { + base_1+"іць" => lin N + { s = table { + Nom => table { + Sg => base_1+"іць" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"іць" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"оці" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"оці" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"оці" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"іццю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"оче" ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN233" + } ; + +mkN234 : Str -> N ; +mkN234 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN234" + } ; + +mkN235 : Str -> N ; +mkN235 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN235" + } ; + +mkN236 : Str -> N ; +mkN236 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ї" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN236" + } ; + +mkN237 : Str -> N ; +mkN237 base = + case base of { + base_1+"хо" => lin N + { s = table { + Nom => table { + Sg => base_1+"хо" ; + Pl => base_1+"ха" + } ; + Acc => table { + Sg => base_1+"хо" ; + Pl => base_1+"ха" + } ; + Dat => table { + Sg => base_1+"хові" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"ха" ; + Pl => base_1+"х" + } ; + Loc => table { + Sg => base_1+"сі" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хом" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"хо" ; + Pl => base_1+"ха" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN237" + } ; + +mkN238 : Str -> N ; +mkN238 base = + case base of { + base_1+"і"+base_2@("ст"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN238" + } ; + +mkN239 : Str -> N ; +mkN239 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ь" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN239" + } ; + +mkN240 : Str -> N ; +mkN240 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN240" + } ; + +mkN241 : Str -> N ; +mkN241 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ь" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN241" + } ; + +mkN242 : Str -> N ; +mkN242 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ок" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"ок" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN242" + } ; + +mkN243 : Str -> N ; +mkN243 base = + case base of { + base_1+"о"+base_2@?+"о"+base_3@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"о"+base_3 ; + Pl => base_1+"і"+base_2+base_3+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"о"+base_3 ; + Pl => base_1+"і"+base_2+base_3+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+base_3+"ові" ; + Pl => base_1+"і"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+base_3+"у" ; + Pl => base_1+"і"+base_2+base_3+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+base_3+"у" ; + Pl => base_1+"і"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+base_3+"ом" ; + Pl => base_1+"і"+base_2+base_3+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+base_3+"у" ; + Pl => base_1+"і"+base_2+base_3+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN243" + } ; + +mkN244 : Str -> N ; +mkN244 base = + case base of { + base_1+"тя" => lin N + { s = table { + Nom => table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + Acc => table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + Dat => table { + Sg => base_1+"тю" ; + Pl => base_1+"тям" + } ; + Gen => table { + Sg => base_1+"тя" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"ті" ; + Pl => base_1+"тях" + } ; + Instr => table { + Sg => base_1+"тям" ; + Pl => base_1+"тями" + } + } ; + Voc = table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN244" + } ; + +mkN245 : Str -> N ; +mkN245 base = + case base of { + "о"+base_1+"ець" => lin N + { s = table { + Nom => table { + Sg => "о"+base_1+"ець" ; + Pl => "ві"+base_1+"ці" + } ; + Acc => table { + Sg => "ві"+base_1+"ця" ; + Pl => "ві"+base_1+"ців" + } ; + Dat => table { + Sg => "ві"+base_1+"цеві" ; + Pl => "ві"+base_1+"цям" + } ; + Gen => table { + Sg => "ві"+base_1+"ця" ; + Pl => "ві"+base_1+"ців" + } ; + Loc => table { + Sg => "ві"+base_1+"цеві" ; + Pl => "ві"+base_1+"цях" + } ; + Instr => table { + Sg => "ві"+base_1+"цем" ; + Pl => "ві"+base_1+"цями" + } + } ; + Voc = table { + Sg => "о"+base_1+"че" ; + Pl => "ві"+base_1+"ці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN245" + } ; + +mkN246 : Str -> N ; +mkN246 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN246" + } ; + +mkN247 : Str -> N ; +mkN247 base = + case base of { + base_1+"і"+base_2@?+base_3@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+base_3+"я" ; + Pl => base_1+"е"+base_2+base_3+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+base_3+"ю" ; + Pl => base_1+"е"+base_2+base_3+"і" + } ; + Dat => table { + Sg => base_1+"і"+base_2+base_3+"і" ; + Pl => base_1+"е"+base_2+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"і"+base_2+base_3+"і" ; + Pl => base_1+"е"+base_2+"е"+base_3+"ь" + } ; + Loc => table { + Sg => base_1+"і"+base_2+base_3+"і" ; + Pl => base_1+"е"+base_2+base_3+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+base_3+"ею" ; + Pl => base_1+"е"+base_2+base_3+"ями" + } + } ; + Voc = table { + Sg => base_1+"і"+base_2+base_3+"е" ; + Pl => base_1+"е"+base_2+base_3+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN247" + } ; + +mkN248 : Str -> N ; +mkN248 base = + case base of { + base_1+"о"+base_2@?+"е"+base_3@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"е"+base_3+"ь" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+base_3+"я" ; + Pl => base_1+"і"+base_2+base_3+"ів" + } ; + Dat => table { + Sg => base_1+"і"+base_2+base_3+"еві" ; + Pl => base_1+"і"+base_2+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"і"+base_2+base_3+"я" ; + Pl => base_1+"і"+base_2+base_3+"ів" + } ; + Loc => table { + Sg => base_1+"і"+base_2+base_3+"еві" ; + Pl => base_1+"і"+base_2+base_3+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+base_3+"ем" ; + Pl => base_1+"і"+base_2+base_3+"ями" + } + } ; + Voc = table { + Sg => base_1+"і"+base_2+base_3+"ю" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN248" + } ; + +mkN249 : Str -> N ; +mkN249 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN249" + } ; + +mkN250 : Str -> N ; +mkN250 base = + case base of { + base_1+base_2@?+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN250" + } ; + +mkN251 : Str -> N ; +mkN251 base = + case base of { + base_1+"ець" => lin N + { s = table { + Nom => table { + Sg => base_1+"ець" ; + Pl => base_1+"ці" + } ; + Acc => table { + Sg => base_1+"ця" ; + Pl => base_1+"ців" + } ; + Dat => table { + Sg => base_1+"цеві" ; + Pl => base_1+"цям" + } ; + Gen => table { + Sg => base_1+"ця" ; + Pl => base_1+"ців" + } ; + Loc => table { + Sg => base_1+"цеві" ; + Pl => base_1+"цях" + } ; + Instr => table { + Sg => base_1+"цем" ; + Pl => base_1+"цями" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN251" + } ; + +mkN252 : Str -> N ; +mkN252 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"лю" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN252" + } ; + +mkN253 : Str -> N ; +mkN253 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN253" + } ; + +mkN254 : Str -> N ; +mkN254 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"жю" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN254" + } ; + +mkN255 : Str -> N ; +mkN255 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ьо"+base_2+"ові" ; + Pl => base_1+"ьо"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ьо"+base_2+"у" ; + Pl => base_1+"ьо"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"ьо"+base_2+"і" ; + Pl => base_1+"ьо"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ьо"+base_2+"ом" ; + Pl => base_1+"ьо"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ьо"+base_2+"е" ; + Pl => base_1+"ьо"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN255" + } ; + +mkN256 : Str -> N ; +mkN256 base = + case base of { + base_1+base_2@?+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"и" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN256" + } ; + +mkN257 : Str -> N ; +mkN257 base = + case base of { + base_1+"ік" => lin N + { s = table { + Nom => table { + Sg => base_1+"ік" ; + Pl => base_1+"оки" + } ; + Acc => table { + Sg => base_1+"ік" ; + Pl => base_1+"оки" + } ; + Dat => table { + Sg => base_1+"окові" ; + Pl => base_1+"окам" + } ; + Gen => table { + Sg => base_1+"оку" ; + Pl => base_1+"оків" + } ; + Loc => table { + Sg => base_1+"оці" ; + Pl => base_1+"оках" + } ; + Instr => table { + Sg => base_1+"оком" ; + Pl => base_1+"оками" + } + } ; + Voc = table { + Sg => base_1+"оку" ; + Pl => base_1+"оки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN257" + } ; + +mkN258 : Str -> N ; +mkN258 base = + case base of { + base_1+"тя" => lin N + { s = table { + Nom => table { + Sg => base_1+"тя" ; + Pl => base_1+"ті" + } ; + Acc => table { + Sg => base_1+"тю" ; + Pl => base_1+"ті" + } ; + Dat => table { + Sg => base_1+"ті" ; + Pl => base_1+"тям" + } ; + Gen => table { + Sg => base_1+"ті" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"ті" ; + Pl => base_1+"тях" + } ; + Instr => table { + Sg => base_1+"тею" ; + Pl => base_1+"тями" + } + } ; + Voc = table { + Sg => base_1+"те" ; + Pl => base_1+"ті" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN258" + } ; + +mkN259 : Str -> N ; +mkN259 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"чю" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN259" + } ; + +mkN260 : Str -> N ; +mkN260 base = + case base of { + base_1+"ня" => lin N + { s = table { + Nom => table { + Sg => base_1+"ня" ; + Pl => base_1+"ня" + } ; + Acc => table { + Sg => base_1+"ня" ; + Pl => base_1+"ня" + } ; + Dat => table { + Sg => base_1+"ню" ; + Pl => base_1+"ням" + } ; + Gen => table { + Sg => base_1+"ня" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"ню" ; + Pl => base_1+"нях" + } ; + Instr => table { + Sg => base_1+"ням" ; + Pl => base_1+"нями" + } + } ; + Voc = table { + Sg => base_1+"ня" ; + Pl => base_1+"ня" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN260" + } ; + +mkN261 : Str -> N ; +mkN261 base = + case base of { + base_1+"тя" => lin N + { s = table { + Nom => table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + Acc => table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + Dat => table { + Sg => base_1+"тю" ; + Pl => base_1+"тям" + } ; + Gen => table { + Sg => base_1+"тя" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"тю" ; + Pl => base_1+"тях" + } ; + Instr => table { + Sg => base_1+"тям" ; + Pl => base_1+"тями" + } + } ; + Voc = table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN261" + } ; + +mkN262 : Str -> N ; +mkN262 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => "і"+base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => "і"+base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => "і"+base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"и" ; + Pl => "і"+base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => "і"+base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ою" ; + Pl => "і"+base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => "і"+base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN262" + } ; + +mkN263 : Str -> N ; +mkN263 base = + case base of { + base_1+"ля" => lin N + { s = table { + Nom => table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + Acc => table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + Dat => table { + Sg => base_1+"лю" ; + Pl => base_1+"лям" + } ; + Gen => table { + Sg => base_1+"ля" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"лі" ; + Pl => base_1+"лях" + } ; + Instr => table { + Sg => base_1+"лям" ; + Pl => base_1+"лями" + } + } ; + Voc = table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN263" + } ; + +mkN264 : Str -> N ; +mkN264 base = + case base of { + base_1+"й"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"й"+base_2+"о" ; + Pl => base_1+"й"+base_2+"а" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"о" ; + Pl => base_1+"ї"+base_2 + } ; + Dat => table { + Sg => base_1+"й"+base_2+"ові" ; + Pl => base_1+"й"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"ї"+base_2 + } ; + Loc => table { + Sg => base_1+"й"+base_2+"ові" ; + Pl => base_1+"й"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ом" ; + Pl => base_1+"й"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"й"+base_2+"о" ; + Pl => base_1+"й"+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN264" + } ; + +mkN265 : Str -> N ; +mkN265 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN265" + } ; + +mkN266 : Str -> N ; +mkN266 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ові" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN266" + } ; + +mkN267 : Str -> N ; +mkN267 base = + case base of { + base_1+"те"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"те"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"те"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN267" + } ; + +mkN268 : Str -> N ; +mkN268 base = + case base of { + base_1+"ьце" => lin N + { s = table { + Nom => table { + Sg => base_1+"ьце" ; + Pl => base_1+"ьца" + } ; + Acc => table { + Sg => base_1+"ьце" ; + Pl => base_1+"ьца" + } ; + Dat => table { + Sg => base_1+"ьцю" ; + Pl => base_1+"ьцям" + } ; + Gen => table { + Sg => base_1+"ьця" ; + Pl => base_1+"ец" + } ; + Loc => table { + Sg => base_1+"ьцю" ; + Pl => base_1+"ьцях" + } ; + Instr => table { + Sg => base_1+"ьцем" ; + Pl => base_1+"ьцями" + } + } ; + Voc = table { + Sg => base_1+"ьче" ; + Pl => base_1+"ьца" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN268" + } ; + +mkN269 : Str -> N ; +mkN269 base = + case base of { + base_1+"ьо" => lin N + { s = table { + Nom => table { + Sg => base_1+"ьо" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN269" + } ; + +mkN270 : Str -> N ; +mkN270 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ею" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN270" + } ; + +mkN271 : Str -> N ; +mkN271 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ьо"+base_2+"ові" ; + Pl => base_1+"ьо"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ьо"+base_2+"у" ; + Pl => base_1+"ьо"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"ьо"+base_2+"у" ; + Pl => base_1+"ьо"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ьо"+base_2+"ом" ; + Pl => base_1+"ьо"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ьо"+base_2+"е" ; + Pl => base_1+"ьо"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN271" + } ; + +mkN272 : Str -> N ; +mkN272 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN272" + } ; + +mkN273 : Str -> N ; +mkN273 base = + case base of { + base_1+"іг" => lin N + { s = table { + Nom => table { + Sg => base_1+"іг" ; + Pl => base_1+"оги" + } ; + Acc => table { + Sg => base_1+"ога" ; + Pl => base_1+"оги" + } ; + Dat => table { + Sg => base_1+"огові" ; + Pl => base_1+"огам" + } ; + Gen => table { + Sg => base_1+"ога" ; + Pl => base_1+"огів" + } ; + Loc => table { + Sg => base_1+"огові" ; + Pl => base_1+"огах" + } ; + Instr => table { + Sg => base_1+"огом" ; + Pl => base_1+"огами" + } + } ; + Voc = table { + Sg => base_1+"оже" ; + Pl => base_1+"оги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN273" + } ; + +mkN274 : Str -> N ; +mkN274 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN274" + } ; + +mkN275 : Str -> N ; +mkN275 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ьо"+base_2+"ові" ; + Pl => base_1+"ьо"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ьо"+base_2+"а" ; + Pl => base_1+"ьо"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"ьо"+base_2+"і" ; + Pl => base_1+"ьо"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ьо"+base_2+"ом" ; + Pl => base_1+"ьо"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ьо"+base_2+"е" ; + Pl => base_1+"ьо"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN275" + } ; + +mkN276 : Str -> N ; +mkN276 base = + case base of { + base_1+"ин" => lin N + { s = table { + Nom => table { + Sg => base_1+"ин" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"ин" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"инові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ина" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ині" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ином" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"ине" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN276" + } ; + +mkN277 : Str -> N ; +mkN277 base = + case base of { + base_1+"ий" => lin N + { s = table { + Nom => table { + Sg => base_1+"ий" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ого" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ому" ; + Pl => base_1+"им" + } ; + Gen => table { + Sg => base_1+"ого" ; + Pl => base_1+"их" + } ; + Loc => table { + Sg => base_1+"ому" ; + Pl => base_1+"их" + } ; + Instr => table { + Sg => base_1+"им" ; + Pl => base_1+"ими" + } + } ; + Voc = table { + Sg => base_1+"ий" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN277" + } ; + +mkN278 : Str -> N ; +mkN278 base = + case base of { + base_1+"ок" => lin N + { s = table { + Nom => table { + Sg => base_1+"ок" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"кові" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN278" + } ; + +mkN279 : Str -> N ; +mkN279 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN279" + } ; + +mkN280 : Str -> N ; +mkN280 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"ї" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ї" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => base_1+"ї" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"є" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN280" + } ; + +mkN281 : Str -> N ; +mkN281 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"их" + } ; + Dat => table { + Sg => base_1+"ій" ; + Pl => base_1+"им" + } ; + Gen => table { + Sg => base_1+"ої" ; + Pl => base_1+"их" + } ; + Loc => table { + Sg => base_1+"ій" ; + Pl => base_1+"их" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ими" + } + } ; + Voc = table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN281" + } ; + +mkN282 : Str -> N ; +mkN282 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN282" + } ; + +mkN283 : Str -> N ; +mkN283 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN283" + } ; + +mkN284 : Str -> N ; +mkN284 base = + case base of { + base_1+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+"и" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ей" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ми" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN284" + } ; + +mkN285 : Str -> N ; +mkN285 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN285" + } ; + +mkN286 : Str -> N ; +mkN286 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"има" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN286" + } ; + +mkN287 : Str -> N ; +mkN287 base = + case base of { + base_1+"що" => lin N + { s = table { + Nom => table { + Sg => base_1+"що" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"що" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"чому" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"чого" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+" на чому" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+" з чим" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN287" + } ; + +mkN288 : Str -> N ; +mkN288 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"й" + } ; + Dat => table { + Sg => base_1+"ї" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ї" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => base_1+"ї" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"є" ; + Pl => base_1+"ї" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN288" + } ; + +mkN289 : Str -> N ; +mkN289 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"и" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ою" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN289" + } ; + +mkN290 : Str -> N ; +mkN290 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"сю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN290" + } ; + +mkN291 : Str -> N ; +mkN291 base = + case base of { + base_1+"шка" => lin N + { s = table { + Nom => table { + Sg => base_1+"шка" ; + Pl => base_1+"шки" + } ; + Acc => table { + Sg => base_1+"шку" ; + Pl => base_1+"шки" + } ; + Dat => table { + Sg => base_1+"шці" ; + Pl => base_1+"шкам" + } ; + Gen => table { + Sg => base_1+"шки" ; + Pl => base_1+"щок" + } ; + Loc => table { + Sg => base_1+"шці" ; + Pl => base_1+"шках" + } ; + Instr => table { + Sg => base_1+"шкою" ; + Pl => base_1+"шками" + } + } ; + Voc = table { + Sg => base_1+"шко" ; + Pl => base_1+"шки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN291" + } ; + +mkN292 : Str -> N ; +mkN292 base = + case base of { + base_1+"ока" => lin N + { s = table { + Nom => table { + Sg => base_1+"ока" ; + Pl => base_1+"оки" + } ; + Acc => table { + Sg => base_1+"оку" ; + Pl => base_1+"оки" + } ; + Dat => table { + Sg => base_1+"оці" ; + Pl => base_1+"окам" + } ; + Gen => table { + Sg => base_1+"оки" ; + Pl => base_1+"ік" + } ; + Loc => table { + Sg => base_1+"оці" ; + Pl => base_1+"оках" + } ; + Instr => table { + Sg => base_1+"окою" ; + Pl => base_1+"оками" + } + } ; + Voc = table { + Sg => base_1+"око" ; + Pl => base_1+"оки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN292" + } ; + +mkN293 : Str -> N ; +mkN293 base = + case base of { + base_1+base_2@?+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"я" + } ; + Acc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"я" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN293" + } ; + +mkN294 : Str -> N ; +mkN294 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN294" + } ; + +mkN295 : Str -> N ; +mkN295 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN295" + } ; + +mkN296 : Str -> N ; +mkN296 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN296" + } ; + +mkN297 : Str -> N ; +mkN297 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN297" + } ; + +mkN298 : Str -> N ; +mkN298 base = + case base of { + base_1+"ом" => lin N + { s = table { + Nom => table { + Sg => base_1+"ом" ; + Pl => nonExist + } ; + Acc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN298" + } ; + +mkN299 : Str -> N ; +mkN299 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" --guessed + } ; + Acc => table { + Sg => base_1 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" --guessed + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN299" + } ; + +mkN300 : Str -> N ; +mkN300 base = + case base of { + base_1+"і"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN300" + } ; + +mkN301 : Str -> N ; +mkN301 base = + case base of { + base_1+"і"+base_2@(?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN301" + } ; + +mkN302 : Str -> N ; +mkN302 base = + case base of { + base_1+"о"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN302" + } ; + +mkN303 : Str -> N ; +mkN303 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN303" + } ; + +mkN304 : Str -> N ; +mkN304 base = + case base of { + "ві"+base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => "ві"+base_1+"ь" ; + Pl => "о"+base_1+"і" + } ; + Acc => table { + Sg => "ві"+base_1+"ь" ; + Pl => "о"+base_1+"і" + } ; + Dat => table { + Sg => "о"+base_1+"і" ; + Pl => "о"+base_1+"ям" + } ; + Gen => table { + Sg => "о"+base_1+"і" ; + Pl => "о"+base_1+"ей" + } ; + Loc => table { + Sg => "о"+base_1+"і" ; + Pl => "о"+base_1+"ях" + } ; + Instr => table { + Sg => "ві"+base_1+"сю" ; + Pl => "о"+base_1+"ями" + } + } ; + Voc = table { + Sg => "о"+base_1+"е" ; + Pl => "о"+base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN304" + } ; + +mkN305 : Str -> N ; +mkN305 base = + case base of { + base_1+base_2@?+"це" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"це" ; + Pl => base_1+base_2+"ця" + } ; + Acc => table { + Sg => base_1+base_2+"це" ; + Pl => base_1+base_2+"ця" + } ; + Dat => table { + Sg => base_1+base_2+"цю" ; + Pl => base_1+base_2+"цям" + } ; + Gen => table { + Sg => base_1+base_2+"ця" ; + Pl => base_1+"ец"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"цю" ; + Pl => base_1+base_2+"цях" + } ; + Instr => table { + Sg => base_1+base_2+"цем" ; + Pl => base_1+base_2+"цями" + } + } ; + Voc = table { + Sg => base_1+base_2+"че" ; + Pl => base_1+base_2+"ця" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN305" + } ; + +mkN306 : Str -> N ; +mkN306 base = + case base of { + base_1+"'я" => lin N + { s = table { + Nom => table { + Sg => base_1+"'я" ; + Pl => base_1+"'я" + } ; + Acc => table { + Sg => base_1+"'я" ; + Pl => base_1+"'я" + } ; + Dat => table { + Sg => base_1+"'ю" ; + Pl => base_1+"'ям" + } ; + Gen => table { + Sg => base_1+"ені" ; + Pl => base_1+"'їв" + } ; + Loc => table { + Sg => base_1+"'ї" ; + Pl => base_1+"'ях" + } ; + Instr => table { + Sg => base_1+"'ям" ; + Pl => base_1+"'ями" + } + } ; + Voc = table { + Sg => base_1+"'я" ; + Pl => base_1+"'я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN306" + } ; + +mkN307 : Str -> N ; +mkN307 base = + case base of { + base_1+"ьо"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"ьо"+base_2+"а" ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"ьо"+base_2+"у" ; + Pl => base_1+"ьо"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ьо"+base_2+"і" ; + Pl => base_1+"ьо"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ьо"+base_2+"и" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"ьо"+base_2+"і" ; + Pl => base_1+"ьо"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ьо"+base_2+"ою" ; + Pl => base_1+"ьо"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ьо"+base_2+"о" ; + Pl => base_1+"ьо"+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN307" + } ; + +mkN308 : Str -> N ; +mkN308 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN308" + } ; + +mkN309 : Str -> N ; +mkN309 base = + case base of { + base_1+"р"+base_2@?+"ець" => lin N + { s = table { + Nom => table { + Sg => base_1+"р"+base_2+"ець" ; + Pl => base_1+base_2+"ці" + } ; + Acc => table { + Sg => base_1+base_2+"ця" ; + Pl => base_1+base_2+"ців" + } ; + Dat => table { + Sg => base_1+base_2+"цеві" ; + Pl => base_1+base_2+"цям" + } ; + Gen => table { + Sg => base_1+base_2+"ця" ; + Pl => base_1+base_2+"ців" + } ; + Loc => table { + Sg => base_1+base_2+"цеві" ; + Pl => base_1+base_2+"цях" + } ; + Instr => table { + Sg => base_1+base_2+"цем" ; + Pl => base_1+base_2+"цями" + } + } ; + Voc = table { + Sg => base_1+base_2+"че" ; + Pl => base_1+base_2+"ці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN309" + } ; + +mkN310 : Str -> N ; +mkN310 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ові" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN310" + } ; + +mkN311 : Str -> N ; +mkN311 base = + case base of { + base_1+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+"и" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN311" + } ; + +mkN312 : Str -> N ; +mkN312 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN312" + } ; + +mkN313 : Str -> N ; +mkN313 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN313" + } ; + +mkN314 : Str -> N ; +mkN314 base = + case base of { + base_1+"оє"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"оє"+base_2+"ь" ; + Pl => base_1+"ій"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ій"+base_2+"я" ; + Pl => base_1+"ій"+base_2+"ів" + } ; + Dat => table { + Sg => base_1+"ій"+base_2+"еві" ; + Pl => base_1+"ій"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"ій"+base_2+"я" ; + Pl => base_1+"ій"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"ій"+base_2+"еві" ; + Pl => base_1+"ій"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"ій"+base_2+"ем" ; + Pl => base_1+"ій"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"ій"+base_2+"ю" ; + Pl => base_1+"ій"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN314" + } ; + +mkN315 : Str -> N ; +mkN315 base = + case base of { + base_1+"ец"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ец"+base_2 ; + Pl => base_1+base_2+"ці" + } ; + Acc => table { + Sg => base_1+base_2+"ця" ; + Pl => base_1+base_2+"ців" + } ; + Dat => table { + Sg => base_1+base_2+"цеві" ; + Pl => base_1+base_2+"цям" + } ; + Gen => table { + Sg => base_1+base_2+"ця" ; + Pl => base_1+base_2+"ців" + } ; + Loc => table { + Sg => base_1+base_2+"цеві" ; + Pl => base_1+base_2+"цях" + } ; + Instr => table { + Sg => base_1+base_2+"цем" ; + Pl => base_1+base_2+"цями" + } + } ; + Voc = table { + Sg => base_1+base_2+"цю" ; + Pl => base_1+base_2+"ці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN315" + } ; + +mkN316 : Str -> N ; +mkN316 base = + case base of { + base_1+"е"+base_2@?+"е"+base_3@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"е"+base_3+"ь" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"е"+base_3+"ь" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + Dat => table { + Sg => base_1+"і"+base_2+base_3+"еві" ; + Pl => base_1+"і"+base_2+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"і"+base_2+base_3+"я" ; + Pl => base_1+"і"+base_2+base_3+"ів" + } ; + Loc => table { + Sg => base_1+"і"+base_2+base_3+"ю" ; + Pl => base_1+"і"+base_2+base_3+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+base_3+"ем" ; + Pl => base_1+"і"+base_2+base_3+"ями" + } + } ; + Voc = table { + Sg => base_1+"і"+base_2+base_3+"ю" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN316" + } ; + +mkN317 : Str -> N ; +mkN317 base = + case base of { + base_1+"к" => lin N + { s = table { + Nom => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"к" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ку" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN317" + } ; + +mkN318 : Str -> N ; +mkN318 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN318" + } ; + +mkN319 : Str -> N ; +mkN319 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN319" + } ; + +mkN320 : Str -> N ; +mkN320 base = + case base of { + base_1+"в"+base_2@?+"ць" => lin N + { s = table { + Nom => table { + Sg => base_1+"в"+base_2+"ць" ; + Pl => base_1+base_2+"вці" + } ; + Acc => table { + Sg => base_1+base_2+"вця" ; + Pl => base_1+base_2+"вців" + } ; + Dat => table { + Sg => base_1+base_2+"вцеві" ; + Pl => base_1+base_2+"вцям" + } ; + Gen => table { + Sg => base_1+base_2+"вця" ; + Pl => base_1+base_2+"вців" + } ; + Loc => table { + Sg => base_1+base_2+"вцеві" ; + Pl => base_1+base_2+"вцях" + } ; + Instr => table { + Sg => base_1+base_2+"вцем" ; + Pl => base_1+base_2+"вцями" + } + } ; + Voc = table { + Sg => base_1+base_2+"вче" ; + Pl => base_1+base_2+"вці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN320" + } ; + +mkN321 : Str -> N ; +mkN321 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN321" + } ; + +mkN322 : Str -> N ; +mkN322 base = + case base of { + base_1+"і"+base_2@("вш"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN322" + } ; + +mkN323 : Str -> N ; +mkN323 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN323" + } ; + +mkN324 : Str -> N ; +mkN324 base = + case base of { + base_1+"н"+base_2@?+"ць" => lin N + { s = table { + Nom => table { + Sg => base_1+"н"+base_2+"ць" ; + Pl => base_1+base_2+"нці" + } ; + Acc => table { + Sg => base_1+base_2+"нця" ; + Pl => base_1+base_2+"нців" + } ; + Dat => table { + Sg => base_1+base_2+"нцеві" ; + Pl => base_1+base_2+"нцям" + } ; + Gen => table { + Sg => base_1+base_2+"нця" ; + Pl => base_1+base_2+"нців" + } ; + Loc => table { + Sg => base_1+base_2+"нцеві" ; + Pl => base_1+base_2+"нцях" + } ; + Instr => table { + Sg => base_1+base_2+"нцем" ; + Pl => base_1+base_2+"нцями" + } + } ; + Voc = table { + Sg => base_1+base_2+"нче" ; + Pl => base_1+base_2+"нці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN324" + } ; + +mkN325 : Str -> N ; +mkN325 base = + case base of { + base_1+"їн" => lin N + { s = table { + Nom => table { + Sg => base_1+"їн" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"їна" ; + Pl => base_1+"їв" + } ; + Dat => table { + Sg => base_1+"їнові" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"їна" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"їнові" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"їном" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"їне" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN325" + } ; + +mkN326 : Str -> N ; +mkN326 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1 + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN326" + } ; + +mkN327 : Str -> N ; +mkN327 base = + case base of { + base_1+"є" => lin N + { s = table { + Nom => table { + Sg => base_1+"є" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"є" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"є" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN327" + } ; + +mkN328 : Str -> N ; +mkN328 base = + case base of { + base_1+"ьо" => lin N + { s = table { + Nom => table { + Sg => base_1+"ьо" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ьо" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN328" + } ; + +mkN329 : Str -> N ; +mkN329 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN329" + } ; + +mkN330 : Str -> N ; +mkN330 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => base_1+"їй" ; + Pl => base_1+"їм" + } ; + Gen => table { + Sg => base_1+"єї" ; + Pl => base_1+"їх" + } ; + Loc => table { + Sg => base_1+"їй" ; + Pl => base_1+"їх" + } ; + Instr => table { + Sg => base_1+"єю" ; + Pl => base_1+"їми" + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"ї" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN330" + } ; + +mkN331 : Str -> N ; +mkN331 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"шю" ; + Pl => base_1+"о"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN331" + } ; + +mkN332 : Str -> N ; +mkN332 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN332" + } ; + +mkN333 : Str -> N ; +mkN333 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN333" + } ; + +mkN334 : Str -> N ; +mkN334 base = + case base of { + base_1+"ля" => lin N + { s = table { + Nom => table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + Acc => table { + Sg => base_1+"ля" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"лю" ; + Pl => base_1+"лям" + } ; + Gen => table { + Sg => base_1+"ля" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"лі" ; + Pl => base_1+"лях" + } ; + Instr => table { + Sg => base_1+"лям" ; + Pl => base_1+"лями" + } + } ; + Voc = table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN334" + } ; + +mkN335 : Str -> N ; +mkN335 base = + case base of { + "по"+base_1+"ля" => lin N + { s = table { + Nom => table { + Sg => "по"+base_1+"ля" ; + Pl => "по"+base_1+"ля" + } ; + Acc => table { + Sg => "по"+base_1+"ля" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => "по"+base_1+"лю" ; + Pl => "по"+base_1+"лям" + } ; + Gen => table { + Sg => "по"+base_1+"ля" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => "по"+base_1+"лі" ; + Pl => "по"+base_1+"лях" + } ; + Instr => table { + Sg => "по"+base_1+"лям" ; + Pl => "по"+base_1+"лями" + } + } ; + Voc = table { + Sg => "по"+base_1+"ля" ; + Pl => "по"+base_1+"ля" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN335" + } ; + +mkN336 : Str -> N ; +mkN336 base = + case base of { + base_1+"дя" => lin N + { s = table { + Nom => table { + Sg => base_1+"дя" ; + Pl => base_1+"ді" + } ; + Acc => table { + Sg => base_1+"дю" ; + Pl => base_1+"ді" + } ; + Dat => table { + Sg => base_1+"ді" ; + Pl => base_1+"дям" + } ; + Gen => table { + Sg => base_1+"ді" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"ді" ; + Pl => base_1+"дях" + } ; + Instr => table { + Sg => base_1+"дею" ; + Pl => base_1+"дями" + } + } ; + Voc = table { + Sg => base_1+"де" ; + Pl => base_1+"ді" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN336" + } ; + +mkN337 : Str -> N ; +mkN337 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN337" + } ; + +mkN338 : Str -> N ; +mkN338 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN338" + } ; + +mkN339 : Str -> N ; +mkN339 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ей" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN339" + } ; + +mkN340 : Str -> N ; +mkN340 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN340" + } ; + +mkN341 : Str -> N ; +mkN341 base = + case base of { + base_1+"ї" => lin N + { s = table { + Nom => table { + Sg => base_1+"ї" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"й" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"ї" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN341" + } ; + +mkN342 : Str -> N ; +mkN342 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN342" + } ; + +mkN343 : Str -> N ; +mkN343 base = + case base of { + base_1+base_2@?+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN343" + } ; + +mkN344 : Str -> N ; +mkN344 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ей" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN344" + } ; + +mkN345 : Str -> N ; +mkN345 base = + case base of { + base_1+base_2@?+"и" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"и" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"о"+base_2 + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN345" + } ; + +mkN346 : Str -> N ; +mkN346 base = + case base of { + base_1+"і"+base_2@?+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ка" ; + Pl => base_1+"і"+base_2+"ки" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ку" ; + Pl => base_1+"і"+base_2+"ки" + } ; + Dat => table { + Sg => base_1+"і"+base_2+"ці" ; + Pl => base_1+"і"+base_2+"кам" + } ; + Gen => table { + Sg => base_1+"і"+base_2+"ки" ; + Pl => base_1+"о"+base_2+"ок" + } ; + Loc => table { + Sg => base_1+"і"+base_2+"ці" ; + Pl => base_1+"і"+base_2+"ках" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"кою" ; + Pl => base_1+"і"+base_2+"ками" + } + } ; + Voc = table { + Sg => base_1+"і"+base_2+"ко" ; + Pl => base_1+"і"+base_2+"ки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN346" + } ; + +mkN347 : Str -> N ; +mkN347 base = + case base of { + base_1+"і"+base_2@?+base_3@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+base_3+"я" ; + Pl => base_1+"і"+base_2+base_3+"я" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і"+base_2+base_3+"я" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"і"+base_2+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"е"+base_3+"ь" ; + Pl => base_1+"о"+base_2+"е"+base_3+"ь" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"і"+base_2+base_3+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"і"+base_2+base_3+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і"+base_2+base_3+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN347" + } ; + +mkN348 : Str -> N ; +mkN348 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"я" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+base_2+"я" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+base_2+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN348" + } ; + +mkN349 : Str -> N ; +mkN349 base = + case base of { + base_1+"ья" => lin N + { s = table { + Nom => table { + Sg => base_1+"ья" ; + Pl => base_1+"ьї" + } ; + Acc => table { + Sg => base_1+"ью" ; + Pl => base_1+"ьї" + } ; + Dat => table { + Sg => base_1+"ьї" ; + Pl => base_1+"ьям" + } ; + Gen => table { + Sg => base_1+"ьї" ; + Pl => base_1+"ій" + } ; + Loc => table { + Sg => base_1+"ьї" ; + Pl => base_1+"ьях" + } ; + Instr => table { + Sg => base_1+"ьєю" ; + Pl => base_1+"ьями" + } + } ; + Voc = table { + Sg => base_1+"ьє" ; + Pl => base_1+"ьї" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN349" + } ; + +mkN350 : Str -> N ; +mkN350 base = + case base of { + base_1+"ї" => lin N + { s = table { + Nom => table { + Sg => base_1+"ї" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ї" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"й" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN350" + } ; + +mkN351 : Str -> N ; +mkN351 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"дю" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN351" + } ; + +mkN352 : Str -> N ; +mkN352 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"им" ; + Pl => base_1+"им" + } ; + Gen => table { + Sg => base_1+"их" ; + Pl => base_1+"их" + } ; + Loc => table { + Sg => base_1+"их" ; + Pl => base_1+"их" + } ; + Instr => table { + Sg => base_1+"ими" ; + Pl => base_1+"ими" + } + } ; + Voc = table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN352" + } ; + +mkN353 : Str -> N ; +mkN353 base = + case base of { + base_1+"о"+base_2@?+"е"+base_3@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"е"+base_3+"ь" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+base_3+"я" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + Dat => table { + Sg => base_1+"і"+base_2+base_3+"еві" ; + Pl => base_1+"і"+base_2+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"і"+base_2+base_3+"я" ; + Pl => base_1+"і"+base_2+base_3+"ів" + } ; + Loc => table { + Sg => base_1+"і"+base_2+base_3+"еві" ; + Pl => base_1+"і"+base_2+base_3+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+base_3+"ем" ; + Pl => base_1+"і"+base_2+base_3+"ями" + } + } ; + Voc = table { + Sg => base_1+"і"+base_2+base_3+"ю" ; + Pl => base_1+"і"+base_2+base_3+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN353" + } ; + +mkN354 : Str -> N ; +mkN354 base = + case base of { + base_1+"ї"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ї"+base_2+"ь" ; + Pl => base_1+"йо"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ї"+base_2+"ь" ; + Pl => base_1+"йо"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"йо"+base_2+"і" ; + Pl => base_1+"йо"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"йо"+base_2+"і" ; + Pl => base_1+"йо"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"йо"+base_2+"і" ; + Pl => base_1+"йо"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"ї"+base_2+"ю" ; + Pl => base_1+"йо"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"йо"+base_2+"е" ; + Pl => base_1+"йо"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN354" + } ; + +mkN355 : Str -> N ; +mkN355 base = + case base of { + base_1+base_2@?+base_3@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+base_3+"а" ; + Pl => base_1+"і"+base_2+base_3+"и" + } ; + Acc => table { + Sg => base_1+base_2+base_3+"у" ; + Pl => base_1+"і"+base_2+base_3+"и" + } ; + Dat => table { + Sg => base_1+base_2+base_3+"і" ; + Pl => base_1+"і"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+base_2+base_3+"и" ; + Pl => base_1+"і"+base_2+"о"+base_3 + } ; + Loc => table { + Sg => base_1+base_2+base_3+"і" ; + Pl => base_1+"і"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+base_2+base_3+"ою" ; + Pl => base_1+"і"+base_2+base_3+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+base_3+"о" ; + Pl => base_1+"і"+base_2+base_3+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN355" + } ; + +mkN356 : Str -> N ; +mkN356 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"а" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+base_2+"а" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+base_2+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN356" + } ; + +mkN357 : Str -> N ; +mkN357 base = + case base of { + base_1+"й"+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"й"+base_2+"я" ; + Pl => base_1+"й"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"ю" ; + Pl => base_1+"й"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"і" ; + Pl => base_1+"й"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"і" ; + Pl => base_1+"є"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"і" ; + Pl => base_1+"й"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ею" ; + Pl => base_1+"й"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"й"+base_2+"е" ; + Pl => base_1+"й"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN357" + } ; + +mkN358 : Str -> N ; +mkN358 base = + case base of { + base_1+"ґа" => lin N + { s = table { + Nom => table { + Sg => base_1+"ґа" ; + Pl => base_1+"ґи" + } ; + Acc => table { + Sg => base_1+"ґу" ; + Pl => base_1+"ґи" + } ; + Dat => table { + Sg => base_1+"зі" ; + Pl => base_1+"ґам" + } ; + Gen => table { + Sg => base_1+"ґи" ; + Pl => base_1+"ґ" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"ґах" + } ; + Instr => table { + Sg => base_1+"ґою" ; + Pl => base_1+"ґами" + } + } ; + Voc = table { + Sg => base_1+"ґо" ; + Pl => base_1+"ґи" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN358" + } ; + +mkN359 : Str -> N ; +mkN359 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN359" + } ; + +mkN360 : Str -> N ; +mkN360 base = + case base of { + base_1+"ся" => lin N + { s = table { + Nom => table { + Sg => base_1+"ся" ; + Pl => base_1+"ся" + } ; + Acc => table { + Sg => base_1+"ся" ; + Pl => base_1+"ся" + } ; + Dat => table { + Sg => base_1+"сю" ; + Pl => base_1+"сям" + } ; + Gen => table { + Sg => base_1+"ся" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"сі" ; + Pl => base_1+"сях" + } ; + Instr => table { + Sg => base_1+"сям" ; + Pl => base_1+"сями" + } + } ; + Voc = table { + Sg => base_1+"ся" ; + Pl => base_1+"ся" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN360" + } ; + +mkN361 : Str -> N ; +mkN361 base = + case base of { + base_1+"зя" => lin N + { s = table { + Nom => table { + Sg => base_1+"зя" ; + Pl => base_1+"зя" + } ; + Acc => table { + Sg => base_1+"зя" ; + Pl => base_1+"зя" + } ; + Dat => table { + Sg => base_1+"зю" ; + Pl => base_1+"зям" + } ; + Gen => table { + Sg => base_1+"зя" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"зях" + } ; + Instr => table { + Sg => base_1+"зям" ; + Pl => base_1+"зями" + } + } ; + Voc = table { + Sg => base_1+"зя" ; + Pl => base_1+"зя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN361" + } ; + +mkN362 : Str -> N ; +mkN362 base = + case base of { + base_1+"дя" => lin N + { s = table { + Nom => table { + Sg => base_1+"дя" ; + Pl => base_1+"дя" + } ; + Acc => table { + Sg => base_1+"дя" ; + Pl => base_1+"дя" + } ; + Dat => table { + Sg => base_1+"дю" ; + Pl => base_1+"дям" + } ; + Gen => table { + Sg => base_1+"дя" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"ді" ; + Pl => base_1+"дях" + } ; + Instr => table { + Sg => base_1+"дям" ; + Pl => base_1+"дями" + } + } ; + Voc = table { + Sg => base_1+"дя" ; + Pl => base_1+"дя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN362" + } ; + +mkN363 : Str -> N ; +mkN363 base = + case base of { + base_1+"жя" => lin N + { s = table { + Nom => table { + Sg => base_1+"жя" ; + Pl => base_1+"жя" + } ; + Acc => table { + Sg => base_1+"жя" ; + Pl => base_1+"жя" + } ; + Dat => table { + Sg => base_1+"жю" ; + Pl => base_1+"жям" + } ; + Gen => table { + Sg => base_1+"жя" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"жі" ; + Pl => base_1+"жях" + } ; + Instr => table { + Sg => base_1+"жям" ; + Pl => base_1+"жями" + } + } ; + Voc = table { + Sg => base_1+"жя" ; + Pl => base_1+"жя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN363" + } ; + +mkN364 : Str -> N ; +mkN364 base = + case base of { + base_1+base_2@?+"е"+base_3@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"е"+base_3+"ь" ; + Pl => base_1+"о"+base_2+base_3+"і" + } ; + Acc => table { + Sg => base_1+base_2+"е"+base_3+"ь" ; + Pl => base_1+"о"+base_2+base_3+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+base_3+"еві" ; + Pl => base_1+"о"+base_2+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+base_3+"я" ; + Pl => base_1+"о"+base_2+base_3+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+base_3+"ю" ; + Pl => base_1+"о"+base_2+base_3+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+base_3+"ем" ; + Pl => base_1+"о"+base_2+base_3+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+base_3+"ю" ; + Pl => base_1+"о"+base_2+base_3+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN364" + } ; + +mkN365 : Str -> N ; +mkN365 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN365" + } ; + +mkN366 : Str -> N ; +mkN366 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN366" + } ; + +mkN367 : Str -> N ; +mkN367 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN367" + } ; + +mkN368 : Str -> N ; +mkN368 base = + case base of { + base_1+"шя" => lin N + { s = table { + Nom => table { + Sg => base_1+"шя" ; + Pl => base_1+"шя" + } ; + Acc => table { + Sg => base_1+"шя" ; + Pl => base_1+"шя" + } ; + Dat => table { + Sg => base_1+"шю" ; + Pl => base_1+"шям" + } ; + Gen => table { + Sg => base_1+"шя" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"шю" ; + Pl => base_1+"шях" + } ; + Instr => table { + Sg => base_1+"шям" ; + Pl => base_1+"шями" + } + } ; + Voc = table { + Sg => base_1+"шя" ; + Pl => base_1+"шя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN368" + } ; + +mkN369 : Str -> N ; +mkN369 base = + case base of { + base_1+"ій" => lin N + { s = table { + Nom => table { + Sg => base_1+"ій" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ій" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ою" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ою" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ої" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"оєм" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"ою" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN369" + } ; + +mkN370 : Str -> N ; +mkN370 base = + case base of { + base_1+"'я" => lin N + { s = table { + Nom => table { + Sg => base_1+"'я" ; + Pl => base_1+"ена" + } ; + Acc => table { + Sg => base_1+"'я" ; + Pl => base_1+"ена" + } ; + Dat => table { + Sg => base_1+"'ю" ; + Pl => base_1+"енам" + } ; + Gen => table { + Sg => base_1+"'я" ; + Pl => base_1+"ен" + } ; + Loc => table { + Sg => base_1+"'ю" ; + Pl => base_1+"енах" + } ; + Instr => table { + Sg => base_1+"'ям" ; + Pl => base_1+"енами" + } + } ; + Voc = table { + Sg => base_1+"'я" ; + Pl => base_1+"ена" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN370" + } ; + +mkN371 : Str -> N ; +mkN371 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN371" + } ; + +mkN372 : Str -> N ; +mkN372 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN372" + } ; + +mkN373 : Str -> N ; +mkN373 base = + case base of { + base_1+"ец"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ец"+base_2 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ец"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"цеві" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+base_2+"цю" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"цю" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"цем" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+base_2+"цю" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN373" + } ; + +mkN374 : Str -> N ; +mkN374 base = + case base of { + base_1+"іг" => lin N + { s = table { + Nom => table { + Sg => base_1+"іг" ; + Pl => base_1+"оги" + } ; + Acc => table { + Sg => base_1+"ога" ; + Pl => base_1+"огів" + } ; + Dat => table { + Sg => base_1+"огові" ; + Pl => base_1+"огам" + } ; + Gen => table { + Sg => base_1+"ога" ; + Pl => base_1+"огів" + } ; + Loc => table { + Sg => base_1+"огові" ; + Pl => base_1+"огах" + } ; + Instr => table { + Sg => base_1+"огом" ; + Pl => base_1+"огами" + } + } ; + Voc = table { + Sg => base_1+"оже" ; + Pl => base_1+"оги" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN374" + } ; + +mkN375 : Str -> N ; +mkN375 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"ги" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"ги" + } ; + Dat => table { + Sg => base_1+"зі" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"ги" ; + Pl => base_1+"ог" + } ; + Loc => table { + Sg => base_1+"зі" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гою" ; + Pl => base_1+"гами" + } + } ; + Voc = table { + Sg => base_1+"го" ; + Pl => base_1+"ги" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN375" + } ; + +mkN376 : Str -> N ; +mkN376 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ям" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN376" + } ; + +mkN377 : Str -> N ; +mkN377 base = + case base of { + base_1+"ля" => lin N + { s = table { + Nom => table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + Acc => table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + Dat => table { + Sg => base_1+"лю" ; + Pl => base_1+"лям" + } ; + Gen => table { + Sg => base_1+"ля" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"лю" ; + Pl => base_1+"лях" + } ; + Instr => table { + Sg => base_1+"лям" ; + Pl => base_1+"лями" + } + } ; + Voc = table { + Sg => base_1+"ля" ; + Pl => base_1+"ля" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN377" + } ; + +mkN378 : Str -> N ; +mkN378 base = + case base of { + base_1+"ь"+base_2@(?+?+?+?+?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь"+base_2+"ь" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ь"+base_2+"ь" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ю"+base_2+"ю" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ю"+base_2+"ю" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ю"+base_2+"ю" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ем"+base_2+"ем" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"ю"+base_2+"ю" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN378" + } ; + +mkN379 : Str -> N ; +mkN379 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"і"+base_2+"'ю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN379" + } ; + +mkN380 : Str -> N ; +mkN380 base = + case base of { + base_1+"тя" => lin N + { s = table { + Nom => table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + Acc => table { + Sg => base_1+"тя" ; + Pl => base_1+"ь" + } ; + Dat => table { + Sg => base_1+"тю" ; + Pl => base_1+"тям" + } ; + Gen => table { + Sg => base_1+"тя" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"ті" ; + Pl => base_1+"тях" + } ; + Instr => table { + Sg => base_1+"тям" ; + Pl => base_1+"тями" + } + } ; + Voc = table { + Sg => base_1+"тя" ; + Pl => base_1+"тя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN380" + } ; + +mkN381 : Str -> N ; +mkN381 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ові" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN381" + } ; + +mkN382 : Str -> N ; +mkN382 base = + case base of { + base_1+"і"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN382" + } ; + +mkN383 : Str -> N ; +mkN383 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN383" + } ; + +mkN384 : Str -> N ; +mkN384 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"е"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN384" + } ; + +mkN385 : Str -> N ; +mkN385 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"дю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN385" + } ; + +mkN386 : Str -> N ; +mkN386 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN386" + } ; + +mkN387 : Str -> N ; +mkN387 base = + case base of { + base_1+"и"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"и"+base_2 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"и"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"и"+base_2+"ові" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"і"+base_2+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"и"+base_2+"у" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"и"+base_2+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"и"+base_2+"е" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN387" + } ; + +mkN388 : Str -> N ; +mkN388 base = + case base of { + base_1+"у"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"у"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN388" + } ; + +mkN389 : Str -> N ; +mkN389 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" --guessed + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"і" --guessed + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ей" --guessed + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"і"+base_2+"чю" ; + Pl => base_1+"о"+base_2+"ами" --guessed + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"і" --guessed + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN389" + } ; + +mkN390 : Str -> N ; +mkN390 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"еві" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN390" + } ; + +mkN391 : Str -> N ; +mkN391 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"й" + } ; + Dat => table { + Sg => base_1+"ї" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ї" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => base_1+"ї" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єю" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"є" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN391" + } ; + +mkN392 : Str -> N ; +mkN392 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"еві" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN392" + } ; + +mkN393 : Str -> N ; +mkN393 base = + case base of { + base_1+"р"+base_2@?+"ць" => lin N + { s = table { + Nom => table { + Sg => base_1+"р"+base_2+"ць" ; + Pl => base_1+base_2+"рці" + } ; + Acc => table { + Sg => base_1+base_2+"рця" ; + Pl => base_1+base_2+"рців" + } ; + Dat => table { + Sg => base_1+base_2+"рцеві" ; + Pl => base_1+base_2+"рцям" + } ; + Gen => table { + Sg => base_1+base_2+"рця" ; + Pl => base_1+base_2+"рців" + } ; + Loc => table { + Sg => base_1+base_2+"рцеві" ; + Pl => base_1+base_2+"рцях" + } ; + Instr => table { + Sg => base_1+base_2+"рцем" ; + Pl => base_1+base_2+"рцями" + } + } ; + Voc = table { + Sg => base_1+base_2+"рче" ; + Pl => base_1+base_2+"рці" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN393" + } ; + +mkN394 : Str -> N ; +mkN394 base = + case base of { + base_1+"ій"+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"ій"+base_2+"я" ; + Pl => base_1+"ій"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ій"+base_2+"ю" ; + Pl => base_1+"ій"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"ій"+base_2+"і" ; + Pl => base_1+"ій"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"ій"+base_2+"і" ; + Pl => base_1+"оє"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+"ій"+base_2+"і" ; + Pl => base_1+"ій"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"ій"+base_2+"ею" ; + Pl => base_1+"ій"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"ій"+base_2+"е" ; + Pl => base_1+"ій"+base_2+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN394" + } ; + +mkN395 : Str -> N ; +mkN395 base = + case base of { + base_1+"ок" => lin N + { s = table { + Nom => table { + Sg => base_1+"ок" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"кові" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"кові" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"че" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN395" + } ; + +mkN396 : Str -> N ; +mkN396 base = + case base of { + base_1+"є"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"є"+base_2+"ь" ; + Pl => base_1+"й"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"є"+base_2+"ь" ; + Pl => base_1+"й"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"еві" ; + Pl => base_1+"й"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"я" ; + Pl => base_1+"й"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"ю" ; + Pl => base_1+"й"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ем" ; + Pl => base_1+"й"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"й"+base_2+"ю" ; + Pl => base_1+"й"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN396" + } ; + +mkN397 : Str -> N ; +mkN397 base = + case base of { + base_1+"ій" => lin N + { s = table { + Nom => table { + Sg => base_1+"ій" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ього" ; + Pl => base_1+"іх" + } ; + Dat => table { + Sg => base_1+"ьому" ; + Pl => base_1+"ім" + } ; + Gen => table { + Sg => base_1+"ього" ; + Pl => base_1+"іх" + } ; + Loc => table { + Sg => base_1+"ьому" ; + Pl => base_1+"іх" + } ; + Instr => table { + Sg => base_1+"ім" ; + Pl => base_1+"іми" + } + } ; + Voc = table { + Sg => base_1+"ій" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN397" + } ; + +mkN398 : Str -> N ; +mkN398 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+"о"+base_2 + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"и" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ою" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN398" + } ; + +mkN399 : Str -> N ; +mkN399 base = + case base of { + base_1+"і"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"еві" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"о"+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN399" + } ; + +mkN400 : Str -> N ; +mkN400 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"і" ; --guessed + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"им" ; --guessed + Pl => base_1+"им" + } ; + Gen => table { + Sg => base_1+"их" ; + Pl => base_1+"их" + } ; + Loc => table { + Sg => base_1+"их" ; --guessed + Pl => base_1+"их" + } ; + Instr => table { + Sg => base_1+"ими" ; --guessed + Pl => base_1+"ими" + } + } ; + Voc = table { + Sg => base_1+"і" ; --guessed + Pl => base_1+"і" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN400" + } ; + +mkN401 : Str -> N ; +mkN401 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN401" + } ; + +mkN402 : Str -> N ; +mkN402 base = + case base of { + base_1+"і"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; --guessed + Pl => base_1+"о"+base_2+"і" --guessed + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; --guessed + Pl => base_1+"о"+base_2+"ям" --guessed + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ей" --guessed + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; --guessed + Pl => base_1+"о"+base_2+"ях" --guessed + } ; + Instr => table { + Sg => base_1+"і"+base_2+"тю" ; --guessed + Pl => base_1+"о"+base_2+"ями" --guessed + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; --guessed + Pl => base_1+"о"+base_2+"і" --guessed + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN402" + } ; + +mkN403 : Str -> N ; +mkN403 base = + case base of { + base_1+"є" => lin N + { s = table { + Nom => table { + Sg => base_1+"є" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => base_1+"є" ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"є" ; + Pl => base_1+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN403" + } ; + +mkN404 : Str -> N ; +mkN404 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+base_2 ; + Pl => base_1+"и"+base_2 + } ; + Acc => table { + Sg => base_1+base_2 ; + Pl => base_1+"и"+base_2 + } ; + Dat => table { + Sg => base_1+"ові"+base_2 ; + Pl => base_1+"ам"+base_2 + } ; + Gen => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+"ів"+base_2 + } ; + Loc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"ах"+base_2 + } ; + Instr => table { + Sg => base_1+"ом"+base_2 ; + Pl => base_1+"ами"+base_2 + } + } ; + Voc = table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"и"+base_2 + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN404" + } ; + +mkN405 : Str -> N ; +mkN405 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN405" + } ; + +mkN406 : Str -> N ; +mkN406 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN406" + } ; + +mkN407 : Str -> N ; +mkN407 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+base_2 ; + Pl => base_1+"и"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"ів"+base_2+"ів" + } ; + Dat => table { + Sg => base_1+"ові"+base_2+"ові" ; + Pl => base_1+"ам"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"ів"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"ові"+base_2+"ові" ; + Pl => base_1+"ах"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ом"+base_2+"ом" ; + Pl => base_1+"ами"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"и"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN407" + } ; + +mkN408 : Str -> N ; +mkN408 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ою" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN408" + } ; + +mkN409 : Str -> N ; +mkN409 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN409" + } ; + +mkN410 : Str -> N ; +mkN410 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ею" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN410" + } ; + +mkN411 : Str -> N ; +mkN411 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"я" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"я" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ів" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"я" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN411" + } ; + +mkN412 : Str -> N ; +mkN412 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ові" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ові" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN412" + } ; + +mkN413 : Str -> N ; +mkN413 base = + case base of { + base_1+"ама" => lin N + { s = table { + Nom => table { + Sg => base_1+"ама" ; + Pl => base_1+"ами" + } ; + Acc => table { + Sg => base_1+"аму" ; + Pl => base_1+"ам" + } ; + Dat => table { + Sg => base_1+"амі" ; + Pl => base_1+"амам" + } ; + Gen => table { + Sg => "ози"+base_1+"ини" ; + Pl => base_1+"ам" + } ; + Loc => table { + Sg => base_1+"амі" ; + Pl => base_1+"амах" + } ; + Instr => table { + Sg => base_1+"амою" ; + Pl => base_1+"амами" + } + } ; + Voc = table { + Sg => base_1+"амо" ; + Pl => base_1+"ами" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN413" + } ; + +mkN414 : Str -> N ; +mkN414 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"я" + } ; + Acc => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"я" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ям" ; + Pl => base_1+base_2+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"я" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN414" + } ; + +mkN415 : Str -> N ; +mkN415 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+"е"+base_2 + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"и" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ою" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"о" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN415" + } ; + +mkN416 : Str -> N ; +mkN416 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ків" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"ків" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN416" + } ; + +mkN417 : Str -> N ; +mkN417 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"очки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"очки" ; + Pl => base_1+"очок" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN417" + } ; + +mkN418 : Str -> N ; +mkN418 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"хи" + } ; + Acc => table { + Sg => base_1+"ху" ; + Pl => base_1+"х" + } ; + Dat => table { + Sg => base_1+"сі" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"хи" ; + Pl => base_1+"х" + } ; + Loc => table { + Sg => base_1+"сі" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хою" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"хо" ; + Pl => base_1+"хи" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN418" + } ; + +mkN419 : Str -> N ; +mkN419 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"еві" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN419" + } ; + +mkN420 : Str -> N ; +mkN420 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN420" + } ; + +mkN421 : Str -> N ; +mkN421 base = + case base of { + base_1+"і"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ові" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN421" + } ; + +mkN422 : Str -> N ; +mkN422 base = + case base of { + base_1+"чя" => lin N + { s = table { + Nom => table { + Sg => base_1+"чя" ; + Pl => base_1+"чя" + } ; + Acc => table { + Sg => base_1+"чя" ; + Pl => base_1+"чя" + } ; + Dat => table { + Sg => base_1+"чю" ; + Pl => base_1+"чям" + } ; + Gen => table { + Sg => base_1+"чя" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"чю" ; + Pl => base_1+"чях" + } ; + Instr => table { + Sg => base_1+"чям" ; + Pl => base_1+"чями" + } + } ; + Voc = table { + Sg => base_1+"чя" ; + Pl => base_1+"чя" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN422" + } ; + +mkN423 : Str -> N ; +mkN423 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"еві" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"а" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN423" + } ; + +mkN424 : Str -> N ; +mkN424 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"ї" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"їв" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"єм" ; + Pl => base_1+"ями" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"ї" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN424" + } ; + +mkN425 : Str -> N ; +mkN425 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"чю" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN425" + } ; + +mkN426 : Str -> N ; +mkN426 base = + case base of { + base_1+"ій" => lin N + { s = table { + Nom => table { + Sg => base_1+"ій" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ій" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ею" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ею" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ею" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"еєм" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"ею" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN426" + } ; + +mkN427 : Str -> N ; +mkN427 base = + case base of { + base_1+"що"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"що"+base_2 ; + Pl => base_1+"ш"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"що"+base_2 ; + Pl => base_1+"ш"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ш"+base_2+"ові" ; + Pl => base_1+"ш"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ш"+base_2+"а" ; + Pl => base_1+"ш"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"ш"+base_2+"ові" ; + Pl => base_1+"ш"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ш"+base_2+"ом" ; + Pl => base_1+"ш"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ш"+base_2+"у" ; + Pl => base_1+"ш"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN427" + } ; + +mkN428 : Str -> N ; +mkN428 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"ки" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ки" + } ; + Dat => table { + Sg => base_1+"ці" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ки" ; + Pl => base_1+"ок" + } ; + Loc => table { + Sg => base_1+"ці" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кою" ; + Pl => base_1+"ками" + } + } ; + Voc = table { + Sg => base_1+"ко" ; + Pl => base_1+"ки" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN428" + } ; + +mkN429 : Str -> N ; +mkN429 base = + case base of { + base_1+"ка"+base_2@(?+?+?+?+?+?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ка"+base_2 ; + Pl => base_1+"ки"+base_2+"и" + } ; + Acc => table { + Sg => base_1+"ку"+base_2 ; + Pl => base_1+"ки"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"ці"+base_2+"ові" ; + Pl => base_1+"кам"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ки"+base_2+"а" ; + Pl => base_1+"ок"+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"ці"+base_2+"у" ; + Pl => base_1+"ках"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"кою"+base_2+"ом" ; + Pl => base_1+"ками"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"ко"+base_2+"у" ; + Pl => base_1+"ки"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN429" + } ; + +mkN430 : Str -> N ; +mkN430 base = + case base of { + base_1+"ція" => lin N + { s = table { + Nom => table { + Sg => base_1+"ція" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"цію" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ції" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"тору" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ції" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"цією" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"ціє" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN430" + } ; + +mkN431 : Str -> N ; +mkN431 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+base_2 ; + Pl => base_1+"и"+base_2+"и" + } ; + Dat => table { + Sg => base_1+"у"+base_2+"ові" ; + Pl => base_1+"ам"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+"і"+base_2+"і" ; + Pl => base_1+"ах"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ом"+base_2+"ом" ; + Pl => base_1+"ами"+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"и"+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN431" + } ; + +mkN432 : Str -> N ; +mkN432 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => base_1+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN432" + } ; + +mkN433 : Str -> N ; +mkN433 base = + case base of { + base_1+"ня" => lin N + { s = table { + Nom => table { + Sg => base_1+"ня" ; + Pl => base_1+"ня" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ня" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ням" + } ; + Gen => table { + Sg => base_1+"ь" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"нях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"нями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+"ня" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN433" + } ; + +mkN434 : Str -> N ; +mkN434 base = + case base of { + "причина" => lin N + { s = table { + Nom => table { + Sg => "причина" ; + Pl => "сволоти" + } ; + Acc => table { + Sg => "причину" ; + Pl => "причини" + } ; + Dat => table { + Sg => "причині" ; + Pl => "причинам" + } ; + Gen => table { + Sg => "сволоти" ; + Pl => "сволот" + } ; + Loc => table { + Sg => "причині" ; + Pl => "причинах" + } ; + Instr => table { + Sg => "причиною" ; + Pl => "причинами" + } + } ; + Voc = table { + Sg => "причино" ; + Pl => "причини" + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN434" + } ; + +mkN435 : Str -> N ; +mkN435 base = + case base of { + base_1+"ьо"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ьо"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"ьо"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN435" + } ; + +mkN436 : Str -> N ; +mkN436 base = + case base of { + base_1+"х" => lin N + { s = table { + Nom => table { + Sg => base_1+"х" ; + Pl => base_1+"хи" + } ; + Acc => table { + Sg => base_1+"ха" ; + Pl => base_1+"хи" + } ; + Dat => table { + Sg => base_1+"хові" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"ха" ; + Pl => base_1+"хів" + } ; + Loc => table { + Sg => base_1+"хові" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хом" ; + Pl => base_1+"хами" + } + } ; + Voc = table { + Sg => base_1+"ше" ; + Pl => base_1+"хи" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN436" + } ; + +mkN437 : Str -> N ; +mkN437 base = + case base of { + base_1+base_2@?+"ця" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"ця" ; + Pl => base_1+base_2+"ця" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ця" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"цям" + } ; + Gen => table { + Sg => base_1+"ец"+base_2 ; + Pl => base_1+"ец"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"цях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"цями" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => base_1+base_2+"ця" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN437" + } ; + +mkN438 : Str -> N ; +mkN438 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"и" + } ; + Dat => table { + Sg => base_1+base_2+"ові" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"ами" + } + } ; + Voc = table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"и" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN438" + } ; + +mkN439 : Str -> N ; +mkN439 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"ів" + } ; + Dat => table { + Sg => base_1+"ові" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ів" + } ; + Loc => table { + Sg => base_1+"ові" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"ами" + } + } ; + Voc = table { + Sg => base_1+"о" ; + Pl => base_1+"и" + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN439" + } ; + +mkN440 : Str -> N ; +mkN440 base = + case base of { + base_1+"р"+base_2@?+base_3@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"р"+base_2+base_3+"ь" ; + Pl => base_1+base_2+"р"+base_3+"і" + } ; + Acc => table { + Sg => base_1+"р"+base_2+base_3+"ь" ; + Pl => base_1+base_2+"р"+base_3+"і" + } ; + Dat => table { + Sg => base_1+base_2+"р"+base_3+"еві" ; + Pl => base_1+base_2+"р"+base_3+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"р"+base_3+"я" ; + Pl => base_1+base_2+"р"+base_3+"ів" + } ; + Loc => table { + Sg => base_1+base_2+"р"+base_3+"ю" ; + Pl => base_1+base_2+"р"+base_3+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"р"+base_3+"ем" ; + Pl => base_1+base_2+"р"+base_3+"ями" + } + } ; + Voc = table { + Sg => base_1+base_2+"р"+base_3+"ю" ; + Pl => base_1+base_2+"р"+base_3+"і" + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN440" + } ; + +mkN441 : Str -> N ; +mkN441 base = + case base of { + base_1+"і"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"і"+base_2+"ь" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"о"+base_2+"и" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"і"+base_2+"ю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"о"+base_2+"е" ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN441" + } ; + +mkN442 : Str -> N ; +mkN442 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ї" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ї" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"єю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => base_1+"є" ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN442" + } ; + +mkV001 : Str -> V ; +mkV001 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"єм" + } ; + P2 => table { + Sg => base_1+"єш" ; + Pl => base_1+"єте" + } ; + P3 => table { + Sg => base_1+"є" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"тий" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ний" + } + } + }; + _ => error "Can't apply paradigm mkV001" + } ; + +mkV002 : Str -> V ; +mkV002 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; + imperative2 = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьте" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV002" + } ; + +mkV003 : Str -> V ; +mkV003 base = + case base of { + base_1+"вати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; + Pl => base_1+"єм" + } ; + P2 => table { + Sg => base_1+"єш" ; + Pl => base_1+"єте" + } ; + P3 => table { + Sg => base_1+"є" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ваймо" ; + imperative2 = table { + Sg => base_1+"вай" ; + Pl => base_1+"вайте" + } ; + infinitive = base_1+"вати" ; + participle = table { + Masc => table { + Sg => base_1+"вав" ; + Pl => base_1+"вали" + } ; + Fem => table { + Sg => base_1+"вала" ; + Pl => base_1+"вали" + } ; + Neuter => table { + Sg => base_1+"вало" ; + Pl => base_1+"вали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ваний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV003" + } ; + +mkV004 : Str -> V ; +mkV004 base = + case base of { + base_1+"с"+base_2@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"с"+base_2+"ати" ; + Pl => base_1+"ш"+base_2+"ем" + } ; + P2 => table { + Sg => base_1+"ш"+base_2+"еш" ; + Pl => base_1+"ш"+base_2+"ете" + } ; + P3 => table { + Sg => base_1+"ш"+base_2+"е" ; + Pl => base_1+"ш"+base_2+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"с"+base_2+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ш"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"ш"+base_2+"и" ; + Pl => base_1+"ш"+base_2+"іть" + } ; + infinitive = base_1+"с"+base_2+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"с"+base_2+"ав" ; + Pl => base_1+"с"+base_2+"али" + } ; + Fem => table { + Sg => base_1+"с"+base_2+"ала" ; + Pl => base_1+"с"+base_2+"али" + } ; + Neuter => table { + Sg => base_1+"с"+base_2+"ало" ; + Pl => base_1+"с"+base_2+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"с"+base_2+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV004" + } ; + +mkV005 : Str -> V ; +mkV005 base = + case base of { + base_1+base_2@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ати" ; + Pl => base_1+"те"+base_2+"ем" + } ; + P2 => table { + Sg => base_1+"те"+base_2+"еш" ; + Pl => base_1+"те"+base_2+"ете" + } ; + P3 => table { + Sg => base_1+"те"+base_2+"е" ; + Pl => base_1+"те"+base_2+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"те"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"те"+base_2+"и" ; + Pl => base_1+"те"+base_2+"іть" + } ; + infinitive = base_1+base_2+"ати" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ав" ; + Pl => base_1+base_2+"али" + } ; + Fem => table { + Sg => base_1+base_2+"ала" ; + Pl => base_1+base_2+"али" + } ; + Neuter => table { + Sg => base_1+base_2+"ало" ; + Pl => base_1+base_2+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+base_2+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV005" + } ; + +mkV006 : Str -> V ; +mkV006 base = + case base of { + "с"+base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "с"+base_1+"ати" ; + Pl => "ш"+base_1+"ем" + } ; + P2 => table { + Sg => "ш"+base_1+"еш" ; + Pl => "ш"+base_1+"ете" + } ; + P3 => table { + Sg => "ш"+base_1+"е" ; + Pl => "ш"+base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "ш"+base_1+"ім" ; + imperative2 = table { + Sg => "ш"+base_1+"и" ; + Pl => "ш"+base_1+"іть" + } ; + infinitive = "с"+base_1+"ати" ; + participle = table { + Masc => table { + Sg => "с"+base_1+"ав" ; + Pl => "с"+base_1+"али" + } ; + Fem => table { + Sg => "с"+base_1+"ала" ; + Pl => "с"+base_1+"али" + } ; + Neuter => table { + Sg => "с"+base_1+"ало" ; + Pl => "с"+base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV006" + } ; + +mkV007 : Str -> V ; +mkV007 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"лять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо" ; + imperative2 = table { + Sg => base_1 ; + Pl => base_1+"те" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"лений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лений" + } + } + }; + _ => error "Can't apply paradigm mkV007" + } ; + +mkV008 : Str -> V ; +mkV008 base = + case base of { + base_1+"тити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тити" ; + Pl => base_1+"тим" + } ; + P2 => table { + Sg => base_1+"тиш" ; + Pl => base_1+"тите" + } ; + P3 => table { + Sg => base_1+"тить" ; + Pl => base_1+"тять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"тьмо" ; + imperative2 = table { + Sg => base_1+"ть" ; + Pl => base_1+"тьте" + } ; + infinitive = base_1+"тити" ; + participle = table { + Masc => table { + Sg => base_1+"тив" ; + Pl => base_1+"тили" + } ; + Fem => table { + Sg => base_1+"тила" ; + Pl => base_1+"тили" + } ; + Neuter => table { + Sg => base_1+"тило" ; + Pl => base_1+"тили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"чений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"чений" + } + } + }; + _ => error "Can't apply paradigm mkV008" + } ; + +mkV009 : Str -> V ; +mkV009 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"'єм" + } ; + P2 => table { + Sg => base_1+"'єш" ; + Pl => base_1+"'єте" + } ; + P3 => table { + Sg => base_1+"'є" ; + Pl => base_1+"'ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"иймо" ; + imperative2 = table { + Sg => base_1+"ий" ; + Pl => base_1+"ийте" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"итий" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV009" + } ; + +mkV010 : Str -> V ; +mkV010 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лений" + } + } + }; + _ => error "Can't apply paradigm mkV010" + } ; + +mkV011 : Str -> V ; +mkV011 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ать" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV011" + } ; + +mkV012 : Str -> V ; +mkV012 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"лять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"лений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV012" + } ; + +mkV013 : Str -> V ; +mkV013 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"єм" + } ; + P2 => table { + Sg => base_1+"єш" ; + Pl => base_1+"єте" + } ; + P3 => table { + Sg => base_1+"є" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = base_1+"лий" ; --guessed + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV013" + } ; + +mkV014 : Str -> V ; +mkV014 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV014" + } ; + +mkV015 : Str -> V ; +mkV015 base = + case base of { + base_1+"ести" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ести" ; + Pl => base_1+"едем" + } ; + P2 => table { + Sg => base_1+"едеш" ; + Pl => base_1+"едете" + } ; + P3 => table { + Sg => base_1+"еде" ; + Pl => base_1+"едуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ести" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"едім" ; + imperative2 = table { + Sg => base_1+"еди" ; + Pl => base_1+"едіть" + } ; + infinitive = base_1+"ести" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"ели" + } ; + Fem => table { + Sg => base_1+"ела" ; + Pl => base_1+"ели" + } ; + Neuter => table { + Sg => base_1+"ело" ; + Pl => base_1+"ели" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"едений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"едений" + } + } + }; + _ => error "Can't apply paradigm mkV015" + } ; + +mkV016 : Str -> V ; +mkV016 base = + case base of { + base_1+"зати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зати" ; + Pl => base_1+"жем" + } ; + P2 => table { + Sg => base_1+"жеш" ; + Pl => base_1+"жете" + } ; + P3 => table { + Sg => base_1+"же" ; + Pl => base_1+"жуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жім" ; + imperative2 = table { + Sg => base_1+"жи" ; + Pl => base_1+"жіть" + } ; + infinitive = base_1+"зати" ; + participle = table { + Masc => table { + Sg => base_1+"зав" ; + Pl => base_1+"зали" + } ; + Fem => table { + Sg => base_1+"зала" ; + Pl => base_1+"зали" + } ; + Neuter => table { + Sg => base_1+"зало" ; + Pl => base_1+"зали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"заний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"заний" + } + } + }; + _ => error "Can't apply paradigm mkV016" + } ; + +mkV017 : Str -> V ; +mkV017 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ать" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аний" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV017" + } ; + +mkV018 : Str -> V ; +mkV018 base = + case base of { + base_1+"сити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сити" ; + Pl => base_1+"сим" + } ; + P2 => table { + Sg => base_1+"сиш" ; + Pl => base_1+"сите" + } ; + P3 => table { + Sg => base_1+"сить" ; + Pl => base_1+"сять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"сім" ; + imperative2 = table { + Sg => base_1+"си" ; + Pl => base_1+"сіть" + } ; + infinitive = base_1+"сити" ; + participle = table { + Masc => table { + Sg => base_1+"сив" ; + Pl => base_1+"сили" + } ; + Fem => table { + Sg => base_1+"сила" ; + Pl => base_1+"сили" + } ; + Neuter => table { + Sg => base_1+"сило" ; + Pl => base_1+"сили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"шений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"шений" + } + } + }; + _ => error "Can't apply paradigm mkV018" + } ; + +mkV019 : Str -> V ; +mkV019 base = + case base of { + base_1+"сати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сати" ; + Pl => base_1+"шем" + } ; + P2 => table { + Sg => base_1+"шеш" ; + Pl => base_1+"шете" + } ; + P3 => table { + Sg => base_1+"ше" ; + Pl => base_1+"шуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"шім" ; + imperative2 = table { + Sg => base_1+"ши" ; + Pl => base_1+"шіть" + } ; + infinitive = base_1+"сати" ; + participle = table { + Masc => table { + Sg => base_1+"сав" ; + Pl => base_1+"сали" + } ; + Fem => table { + Sg => base_1+"сала" ; + Pl => base_1+"сали" + } ; + Neuter => table { + Sg => base_1+"сало" ; + Pl => base_1+"сали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"саний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"саний" + } + } + }; + _ => error "Can't apply paradigm mkV019" + } ; + +mkV020 : Str -> V ; +mkV020 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"є" ; --guessed + Pl => base_1+"ють" --guessed + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ньмо" ; + imperative2 = table { + Sg => base_1+"нь" ; + Pl => base_1+"ньте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV020" + } ; + +mkV021 : Str -> V ; +mkV021 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV021" + } ; + +mkV022 : Str -> V ; +mkV022 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => "будемо "+base_1+"ити" + } ; + P2 => table { + Sg => "будеш "+base_1+"ити" ; + Pl => "будете "+base_1+"ити" + } ; + P3 => table { + Sg => "буде "+base_1+"ити" ; + Pl => "будуть "+base_1+"ити" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV022" + } ; + +mkV023 : Str -> V ; +mkV023 base = + case base of { + base_1+"зати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зати" ; + Pl => base_1+"жем" + } ; + P2 => table { + Sg => base_1+"жеш" ; + Pl => base_1+"жете" + } ; + P3 => table { + Sg => base_1+"же" ; + Pl => base_1+"жуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жмо" ; + imperative2 = table { + Sg => base_1+"ж" ; + Pl => base_1+"жте" + } ; + infinitive = base_1+"зати" ; + participle = table { + Masc => table { + Sg => base_1+"зав" ; + Pl => base_1+"зали" + } ; + Fem => table { + Sg => base_1+"зала" ; + Pl => base_1+"зали" + } ; + Neuter => table { + Sg => base_1+"зало" ; + Pl => base_1+"зали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"заний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"заний" + } + } + }; + _ => error "Can't apply paradigm mkV023" + } ; + +mkV024 : Str -> V ; +mkV024 base = + case base of { + base_1+"е"+base_2@("рз"|?)+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ти" ; + Pl => base_1+"е"+base_2+"ем" + } ; + P2 => table { + Sg => base_1+"е"+base_2+"еш" ; + Pl => base_1+"е"+base_2+"ете" + } ; + P3 => table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"е"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"е"+base_2+"и" ; + Pl => base_1+"е"+base_2+"іть" + } ; + infinitive = base_1+"е"+base_2+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"е"+base_2+"ли" + } ; + Fem => table { + Sg => base_1+"е"+base_2+"ла" ; + Pl => base_1+"е"+base_2+"ли" + } ; + Neuter => table { + Sg => base_1+"е"+base_2+"ло" ; + Pl => base_1+"е"+base_2+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV024" + } ; + +mkV025 : Str -> V ; +mkV025 base = + case base of { + base_1+"сти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => base_1+"дем" + } ; + P2 => table { + Sg => base_1+"деш" ; + Pl => base_1+"дете" + } ; + P3 => table { + Sg => base_1+"де" ; + Pl => base_1+"дуть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дім" ; + imperative2 = table { + Sg => base_1+"ди" ; + Pl => base_1+"діть" + } ; + infinitive = base_1+"сти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"дений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дений" + } + } + }; + _ => error "Can't apply paradigm mkV025" + } ; + +mkV026 : Str -> V ; +mkV026 base = + case base of { + base_1+"сти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => base_1+"дем" + } ; + P2 => table { + Sg => base_1+"деш" ; + Pl => base_1+"дете" + } ; + P3 => table { + Sg => base_1+"де" ; + Pl => base_1+"дуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дьмо" ; + imperative2 = table { + Sg => base_1+"дь" ; + Pl => base_1+"дьте" + } ; + infinitive = base_1+"сти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"дений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дений" + } + } + }; + _ => error "Can't apply paradigm mkV026" + } ; + +mkV027 : Str -> V ; +mkV027 base = + case base of { + base_1+"стити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"стити" ; + Pl => base_1+"стим" + } ; + P2 => table { + Sg => base_1+"стиш" ; + Pl => base_1+"стите" + } ; + P3 => table { + Sg => base_1+"стить" ; + Pl => base_1+"стять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"стити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"стьмо" ; + imperative2 = table { + Sg => base_1+"сть" ; + Pl => base_1+"стьте" + } ; + infinitive = base_1+"стити" ; + participle = table { + Masc => table { + Sg => base_1+"стив" ; + Pl => base_1+"стили" + } ; + Fem => table { + Sg => base_1+"стила" ; + Pl => base_1+"стили" + } ; + Neuter => table { + Sg => base_1+"стило" ; + Pl => base_1+"стили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"щений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"щений" + } + } + }; + _ => error "Can't apply paradigm mkV027" + } ; + +mkV028 : Str -> V ; +mkV028 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"вем" + } ; + P2 => table { + Sg => base_1+"веш" ; + Pl => base_1+"вете" + } ; + P3 => table { + Sg => base_1+"ве" ; + Pl => base_1+"вуть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"вім" ; + imperative2 = table { + Sg => base_1+"ви" ; + Pl => base_1+"віть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"тий" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV028" + } ; + +mkV029 : Str -> V ; +mkV029 base = + case base of { + base_1+"ести" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ести" ; + Pl => base_1+"етем" + } ; + P2 => table { + Sg => base_1+"етеш" ; + Pl => base_1+"етете" + } ; + P3 => table { + Sg => base_1+"ете" ; + Pl => base_1+"етуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ести" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"етім" ; + imperative2 = table { + Sg => base_1+"ети" ; + Pl => base_1+"етіть" + } ; + infinitive = base_1+"ести" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"ели" + } ; + Fem => table { + Sg => base_1+"ела" ; + Pl => base_1+"ели" + } ; + Neuter => table { + Sg => base_1+"ело" ; + Pl => base_1+"ели" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"етений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"етений" + } + } + }; + _ => error "Can't apply paradigm mkV029" + } ; + +mkV030 : Str -> V ; +mkV030 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"лєм" + } ; + P2 => table { + Sg => base_1+"лєш" ; + Pl => base_1+"лєте" + } ; + P3 => table { + Sg => base_1+"лє" ; + Pl => base_1+"лють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"иймо" ; + imperative2 = table { + Sg => base_1+"ий" ; + Pl => base_1+"ийте" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"итий" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV030" + } ; + +mkV031 : Str -> V ; +mkV031 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ать" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо" ; + imperative2 = table { + Sg => base_1 ; + Pl => base_1+"те" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV031" + } ; + +mkV032 : Str -> V ; +mkV032 base = + case base of { + base_1+"сти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => base_1+"мо" + } ; + P2 => table { + Sg => base_1+"си" ; + Pl => base_1+"сте" + } ; + P3 => table { + Sg => base_1+"сть" ; + Pl => base_1+"дять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жмо" ; + imperative2 = table { + Sg => base_1+"ж" ; + Pl => base_1+"жте" + } ; + infinitive = base_1+"сти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дений" + } + } + }; + _ => error "Can't apply paradigm mkV032" + } ; + +mkV033 : Str -> V ; +mkV033 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"дем" + } ; + P2 => table { + Sg => base_1+"деш" ; + Pl => base_1+"дете" + } ; + P3 => table { + Sg => base_1+"де" ; + Pl => base_1+"дуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дім" ; + imperative2 = table { + Sg => base_1+"ди" ; + Pl => base_1+"діть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"шов" ; + Pl => base_1+"шли" + } ; + Fem => table { + Sg => base_1+"шла" ; + Pl => base_1+"шли" + } ; + Neuter => table { + Sg => base_1+"шло" ; + Pl => base_1+"шли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дений" + } + } + }; + _ => error "Can't apply paradigm mkV033" + } ; + +mkV034 : Str -> V ; +mkV034 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV034" + } ; + +mkV035 : Str -> V ; +mkV035 base = + case base of { + base_1+"увати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"увати" ; + Pl => base_1+"уєм" + } ; + P2 => table { + Sg => base_1+"уєш" ; + Pl => base_1+"уєте" + } ; + P3 => table { + Sg => base_1+"ує" ; + Pl => base_1+"ують" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"увати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"уймо" ; + imperative2 = table { + Sg => base_1+"уй" ; + Pl => base_1+"уйте" + } ; + infinitive = base_1+"увати" ; + participle = table { + Masc => table { + Sg => base_1+"ував" ; + Pl => base_1+"ували" + } ; + Fem => table { + Sg => base_1+"увала" ; + Pl => base_1+"ували" + } ; + Neuter => table { + Sg => base_1+"увало" ; + Pl => base_1+"ували" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ований" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ований" + } + } + }; + _ => error "Can't apply paradigm mkV035" + } ; + +mkV036 : Str -> V ; +mkV036 base = + case base of { + base_1+"вати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; + Pl => base_1+"єм" + } ; + P2 => table { + Sg => base_1+"єш" ; + Pl => base_1+"єте" + } ; + P3 => table { + Sg => base_1+"є" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"вати" ; + participle = table { + Masc => table { + Sg => base_1+"вав" ; + Pl => base_1+"вали" + } ; + Fem => table { + Sg => base_1+"вала" ; + Pl => base_1+"вали" + } ; + Neuter => table { + Sg => base_1+"вало" ; + Pl => base_1+"вали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ваний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ваний" + } + } + }; + _ => error "Can't apply paradigm mkV036" + } ; + +mkV037 : Str -> V ; +mkV037 base = + case base of { + "бути" => lin V + { active = table { + Imperf => { Past = "бувший" ; + Pres = table { + P1 => table { + Sg => "бути" ; + Pl => "є" + } ; + P2 => table { + Sg => "є" ; + Pl => "є" + } ; + P3 => table { + Sg => "є" ; + Pl => "є" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "будьмо" ; + imperative2 = table { + Sg => "будь" ; + Pl => "будьте" + } ; + infinitive = "бути" ; + participle = table { + Masc => table { + Sg => "був" ; + Pl => "були" + } ; + Fem => table { + Sg => "була" ; + Pl => "були" + } ; + Neuter => table { + Sg => "було" ; + Pl => "були" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV037" + } ; + +mkV038 : Str -> V ; +mkV038 base = + case base of { + base_1+"ути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = base_1+"улий" ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ути" ; + participle = table { + Masc => table { + Sg => base_1+"ув" ; + Pl => base_1+"ули" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"ули" + } ; + Neuter => table { + Sg => base_1+"уло" ; + Pl => base_1+"ули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV038" + } ; + +mkV039 : Str -> V ; +mkV039 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" --guessed + } ; + P2 => table { + Sg => base_1+"иш" ; --guessed + Pl => base_1+"ите" --guessed + } ; + P3 => table { + Sg => base_1+"ить" ; --guessed + Pl => base_1+"ать" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV039" + } ; + +mkV040 : Str -> V ; +mkV040 base = + case base of { + base_1+base_2@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ати" ; + Pl => base_1+"е"+base_2+"ем" + } ; + P2 => table { + Sg => base_1+"е"+base_2+"еш" ; + Pl => base_1+"е"+base_2+"ете" + } ; + P3 => table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"е"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"е"+base_2+"и" ; + Pl => base_1+"е"+base_2+"іть" + } ; + infinitive = base_1+base_2+"ати" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ав" ; + Pl => base_1+base_2+"али" + } ; + Fem => table { + Sg => base_1+base_2+"ала" ; + Pl => base_1+base_2+"али" + } ; + Neuter => table { + Sg => base_1+base_2+"ало" ; + Pl => base_1+base_2+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+base_2+"аний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+base_2+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV040" + } ; + +mkV041 : Str -> V ; +mkV041 base = + case base of { + base_1+"нути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"нете" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"нути" ; + participle = table { + Masc => table { + Sg => base_1+"нув" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"нений" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV041" + } ; + +mkV042 : Str -> V ; +mkV042 base = + case base of { + base_1+"нути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"нете" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"нути" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"нений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"нутий" + } + } + }; + _ => error "Can't apply paradigm mkV042" + } ; + +mkV043 : Str -> V ; +mkV043 base = + case base of { + base_1+"стити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"стити" ; + Pl => base_1+"стим" + } ; + P2 => table { + Sg => base_1+"стиш" ; + Pl => base_1+"стите" + } ; + P3 => table { + Sg => base_1+"стить" ; + Pl => base_1+"стять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"стити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"стім" ; + imperative2 = table { + Sg => base_1+"сти" ; + Pl => base_1+"стіть" + } ; + infinitive = base_1+"стити" ; + participle = table { + Masc => table { + Sg => base_1+"стив" ; + Pl => base_1+"стили" + } ; + Fem => table { + Sg => base_1+"стила" ; + Pl => base_1+"стили" + } ; + Neuter => table { + Sg => base_1+"стило" ; + Pl => base_1+"стили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"щений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"щений" + } + } + }; + _ => error "Can't apply paradigm mkV043" + } ; + +mkV044 : Str -> V ; +mkV044 base = + case base of { + base_1 => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = nonExist ; + imperative2 = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = base_1 ; + participle = table { + Masc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Fem => table { + Sg => nonExist ; + Pl => nonExist + } ; + Neuter => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV044" + } ; + +mkV045 : Str -> V ; +mkV045 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" --guessed + } ; + P2 => table { + Sg => base_1+"иш" ; --guessed + Pl => base_1+"ите" --guessed + } ; + P3 => table { + Sg => base_1+"ить" ; --guessed + Pl => base_1+"ать" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" + } + } + }; + _ => error "Can't apply paradigm mkV045" + } ; + +mkV046 : Str -> V ; +mkV046 base = + case base of { + base_1+"ути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; + imperative2 = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьте" + } ; + infinitive = base_1+"ути" ; + participle = table { + Masc => table { + Sg => base_1+"ув" ; + Pl => base_1+"ули" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"ули" + } ; + Neuter => table { + Sg => base_1+"уло" ; + Pl => base_1+"ули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV046" + } ; + +mkV047 : Str -> V ; +mkV047 base = + case base of { + base_1+"тити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тити" ; + Pl => base_1+"тим" + } ; + P2 => table { + Sg => base_1+"тиш" ; + Pl => base_1+"тите" + } ; + P3 => table { + Sg => base_1+"тить" ; + Pl => base_1+"тять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"тім" ; + imperative2 = table { + Sg => base_1+"ти" ; + Pl => base_1+"тіть" + } ; + infinitive = base_1+"тити" ; + participle = table { + Masc => table { + Sg => base_1+"тив" ; + Pl => base_1+"тили" + } ; + Fem => table { + Sg => base_1+"тила" ; + Pl => base_1+"тили" + } ; + Neuter => table { + Sg => base_1+"тило" ; + Pl => base_1+"тили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"чений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"чений" + } + } + }; + _ => error "Can't apply paradigm mkV047" + } ; + +mkV048 : Str -> V ; +mkV048 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо" ; + imperative2 = table { + Sg => base_1 ; + Pl => base_1+"те" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV048" + } ; + +mkV049 : Str -> V ; +mkV049 base = + case base of { + base_1+"кати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"кати" ; + Pl => base_1+"чем" + } ; + P2 => table { + Sg => base_1+"чеш" ; + Pl => base_1+"чете" + } ; + P3 => table { + Sg => base_1+"че" ; + Pl => base_1+"чуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"чім" ; + imperative2 = table { + Sg => base_1+"чи" ; + Pl => base_1+"чіть" + } ; + infinitive = base_1+"кати" ; + participle = table { + Masc => table { + Sg => base_1+"кав" ; + Pl => base_1+"кали" + } ; + Fem => table { + Sg => base_1+"кала" ; + Pl => base_1+"кали" + } ; + Neuter => table { + Sg => base_1+"кало" ; + Pl => base_1+"кали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"каний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV049" + } ; + +mkV050 : Str -> V ; +mkV050 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV050" + } ; + +mkV051 : Str -> V ; +mkV051 base = + case base of { + base_1+"сити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сити" ; + Pl => base_1+"сим" + } ; + P2 => table { + Sg => base_1+"сиш" ; + Pl => base_1+"сите" + } ; + P3 => table { + Sg => base_1+"сить" ; + Pl => base_1+"сять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"сьмо" ; + imperative2 = table { + Sg => base_1+"сь" ; + Pl => base_1+"сьте" + } ; + infinitive = base_1+"сити" ; + participle = table { + Masc => table { + Sg => base_1+"сив" ; + Pl => base_1+"сили" + } ; + Fem => table { + Sg => base_1+"сила" ; + Pl => base_1+"сили" + } ; + Neuter => table { + Sg => base_1+"сило" ; + Pl => base_1+"сили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"шений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"шений" + } + } + }; + _ => error "Can't apply paradigm mkV051" + } ; + +mkV052 : Str -> V ; +mkV052 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"лять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV052" + } ; + +mkV053 : Str -> V ; +mkV053 base = + case base of { + base_1+"г"+base_2@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"г"+base_2+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"г"+base_2+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"же"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"же"+base_2+"и" ; + Pl => base_1+"же"+base_2+"іть" + } ; + infinitive = base_1+"г"+base_2+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"г"+base_2+"ав" ; + Pl => base_1+"г"+base_2+"али" + } ; + Fem => table { + Sg => base_1+"г"+base_2+"ала" ; + Pl => base_1+"г"+base_2+"али" + } ; + Neuter => table { + Sg => base_1+"г"+base_2+"ало" ; + Pl => base_1+"г"+base_2+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"г"+base_2+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV053" + } ; + +mkV054 : Str -> V ; +mkV054 base = + case base of { + base_1+"нути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => base_1+"нем" --guessed + } ; + P2 => table { + Sg => base_1+"неш" ; --guessed + Pl => base_1+"нете" --guessed + } ; + P3 => table { + Sg => base_1+"не" ; --guessed + Pl => base_1+"нуть" --guessed + } + } + } ; + Perf => { Past = base_1+"лий" ; --guessed + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"нути" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"нений" --guessed + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"нений" + } + } + }; + _ => error "Can't apply paradigm mkV054" + } ; + +mkV055 : Str -> V ; +mkV055 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; + imperative2 = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьте" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" + } + } + }; + _ => error "Can't apply paradigm mkV055" + } ; + +mkV056 : Str -> V ; +mkV056 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"лем" + } ; + P2 => table { + Sg => base_1+"леш" ; + Pl => base_1+"лете" + } ; + P3 => table { + Sg => base_1+"ле" ; + Pl => base_1+"лють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо" ; + imperative2 = table { + Sg => base_1 ; + Pl => base_1+"те" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV056" + } ; + +mkV057 : Str -> V ; +mkV057 base = + case base of { + base_1+"хати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хати" ; + Pl => base_1+"дем" + } ; + P2 => table { + Sg => base_1+"деш" ; + Pl => base_1+"дете" + } ; + P3 => table { + Sg => base_1+"де" ; + Pl => base_1+"дуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дьмо" ; + imperative2 = table { + Sg => base_1+"дь" ; + Pl => base_1+"дьте" + } ; + infinitive = base_1+"хати" ; + participle = table { + Masc => table { + Sg => base_1+"хав" ; + Pl => base_1+"хали" + } ; + Fem => table { + Sg => base_1+"хала" ; + Pl => base_1+"хали" + } ; + Neuter => table { + Sg => base_1+"хало" ; + Pl => base_1+"хали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ханий" + } + } + }; + _ => error "Can't apply paradigm mkV057" + } ; + +mkV058 : Str -> V ; +mkV058 base = + case base of { + base_1+"огти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"огти" ; + Pl => base_1+"ожем" + } ; + P2 => table { + Sg => base_1+"ожеш" ; + Pl => base_1+"ожете" + } ; + P3 => table { + Sg => base_1+"оже" ; + Pl => base_1+"ожуть" + } + } + } ; + Perf => { Past = base_1+"ігший" ; + Pres = table { + P1 => table { + Sg => base_1+"огти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ожім" ; + imperative2 = table { + Sg => base_1+"ожи" ; + Pl => base_1+"ожіть" + } ; + infinitive = base_1+"огти" ; + participle = table { + Masc => table { + Sg => base_1+"іг" ; + Pl => base_1+"огли" + } ; + Fem => table { + Sg => base_1+"огла" ; + Pl => base_1+"огли" + } ; + Neuter => table { + Sg => base_1+"огло" ; + Pl => base_1+"огли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ожений" + } + } + }; + _ => error "Can't apply paradigm mkV058" + } ; + +mkV059 : Str -> V ; +mkV059 base = + case base of { + "йти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "jty" ; + Pl => "йдем" + } ; + P2 => table { + Sg => "йдеш" ; + Pl => "йдете" + } ; + P3 => table { + Sg => "йде" ; + Pl => "йдуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "йдім" ; + imperative2 = table { + Sg => "йди" ; + Pl => "йдіть" + } ; + infinitive = "йти" ; + participle = table { + Masc => table { + Sg => "йшов" ; + Pl => "йшли" + } ; + Fem => table { + Sg => "йшла" ; + Pl => "йшли" + } ; + Neuter => table { + Sg => "йшло" ; + Pl => "йшли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV059" + } ; + +mkV060 : Str -> V ; +mkV060 base = + case base of { + base_1+"кати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"кати" ; + Pl => base_1+"чем" + } ; + P2 => table { + Sg => base_1+"чеш" ; + Pl => base_1+"чете" + } ; + P3 => table { + Sg => base_1+"че" ; + Pl => base_1+"чуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"кати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"чмо" ; + imperative2 = table { + Sg => base_1+"ч" ; + Pl => base_1+"чте" + } ; + infinitive = base_1+"кати" ; + participle = table { + Masc => table { + Sg => base_1+"кав" ; + Pl => base_1+"кали" + } ; + Fem => table { + Sg => base_1+"кала" ; + Pl => base_1+"кали" + } ; + Neuter => table { + Sg => base_1+"кало" ; + Pl => base_1+"кали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"каний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"каний" + } + } + }; + _ => error "Can't apply paradigm mkV060" + } ; + +mkV061 : Str -> V ; +mkV061 base = + case base of { + base_1+"о"+base_2@?+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"ти" ; + Pl => base_1+"о"+base_2+"тем" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"теш" ; + Pl => base_1+"о"+base_2+"тете" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"те" ; + Pl => base_1+"о"+base_2+"туть" + } + } + } ; + Perf => { Past = base_1+"о"+base_2+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"о"+base_2+"тім" ; + imperative2 = table { + Sg => base_1+"о"+base_2+"ти" ; + Pl => base_1+"о"+base_2+"тіть" + } ; + infinitive = base_1+"о"+base_2+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2 ; + Pl => base_1+"о"+base_2+"ли" + } ; + Fem => table { + Sg => base_1+"о"+base_2+"ла" ; + Pl => base_1+"о"+base_2+"ли" + } ; + Neuter => table { + Sg => base_1+"о"+base_2+"ло" ; + Pl => base_1+"о"+base_2+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV061" + } ; + +mkV062 : Str -> V ; +mkV062 base = + case base of { + base_1+"іти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = base_1+"ілий" ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"іти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV062" + } ; + +mkV063 : Str -> V ; +mkV063 base = + case base of { + "г"+base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "г"+base_1+"ати" ; + Pl => "же"+base_1+"ем" + } ; + P2 => table { + Sg => "же"+base_1+"еш" ; + Pl => "же"+base_1+"ете" + } ; + P3 => table { + Sg => "же"+base_1+"е" ; + Pl => "же"+base_1+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "же"+base_1+"ім" ; + imperative2 = table { + Sg => "же"+base_1+"и" ; + Pl => "же"+base_1+"іть" + } ; + infinitive = "г"+base_1+"ати" ; + participle = table { + Masc => table { + Sg => "г"+base_1+"ав" ; + Pl => "г"+base_1+"али" + } ; + Fem => table { + Sg => "г"+base_1+"ала" ; + Pl => "г"+base_1+"али" + } ; + Neuter => table { + Sg => "г"+base_1+"ало" ; + Pl => "г"+base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "г"+base_1+"аний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV063" + } ; + +mkV064 : Str -> V ; +mkV064 base = + case base of { + base_1+"тіти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тіти" ; + Pl => base_1+"чем" + } ; + P2 => table { + Sg => base_1+"чеш" ; + Pl => base_1+"чете" + } ; + P3 => table { + Sg => base_1+"че" ; + Pl => base_1+"чуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"тім" ; + imperative2 = table { + Sg => base_1+"ти" ; + Pl => base_1+"тіть" + } ; + infinitive = base_1+"тіти" ; + participle = table { + Masc => table { + Sg => base_1+"тів" ; + Pl => base_1+"тіли" + } ; + Fem => table { + Sg => base_1+"тіла" ; + Pl => base_1+"тіли" + } ; + Neuter => table { + Sg => base_1+"тіло" ; + Pl => base_1+"тіли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV064" + } ; + +mkV065 : Str -> V ; +mkV065 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"им"+base_2 + } ; + P2 => table { + Sg => base_1+"иш"+base_2 ; + Pl => base_1+"ите"+base_2 + } ; + P3 => table { + Sg => base_1+"ить"+base_2 ; + Pl => base_1+"лять"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV065" + } ; + +mkV066 : Str -> V ; +mkV066 base = + case base of { + base_1+"о"+base_2@?+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"е"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"е"+base_2+"и" ; + Pl => base_1+"е"+base_2+"уть" + } ; + infinitive = base_1+"о"+base_2+"ити" ; + participle = table { + Masc => table { + Sg => nonExist ; + Pl => base_1+"о"+base_2+"или" + } ; + Fem => table { + Sg => base_1+"о"+base_2+"ила" ; + Pl => base_1+"о"+base_2+"или" + } ; + Neuter => table { + Sg => base_1+"о"+base_2+"ило" ; + Pl => base_1+"о"+base_2+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV066" + } ; + +mkV067 : Str -> V ; +mkV067 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "-"+base_1+"ти" ; + Pl => "-"+base_1+"єм" + } ; + P2 => table { + Sg => "-"+base_1+"єш" ; + Pl => "-"+base_1+"єте" + } ; + P3 => table { + Sg => "-"+base_1+"є" ; + Pl => "-"+base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "-"+base_1+"ймо" ; + imperative2 = table { + Sg => "-"+base_1+"й" ; + Pl => "-"+base_1+"йте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => "-"+base_1+"в" ; + Pl => "-"+base_1+"ли" + } ; + Fem => table { + Sg => "-"+base_1+"ла" ; + Pl => "-"+base_1+"ли" + } ; + Neuter => table { + Sg => "-"+base_1+"ло" ; + Pl => "-"+base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV067" + } ; + +mkV068 : Str -> V ; +mkV068 base = + case base of { + base_1+base_2@?+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"і"+base_2+"ьмім" ; + imperative2 = table { + Sg => base_1+"і"+base_2+"ьми" ; + Pl => base_1+"і"+base_2+"ьміть" + } ; + infinitive = base_1+base_2+"яти" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"яв" ; + Pl => base_1+base_2+"яли" + } ; + Fem => table { + Sg => base_1+base_2+"яла" ; + Pl => base_1+base_2+"яли" + } ; + Neuter => table { + Sg => base_1+base_2+"яло" ; + Pl => base_1+base_2+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+base_2+"ятий" + } + } + }; + _ => error "Can't apply paradigm mkV068" + } ; + +mkV069 : Str -> V ; +mkV069 base = + case base of { + "у"+base_1+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "у"+base_1+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "у"+base_1+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "ві"+base_1+"ьмім" ; + imperative2 = table { + Sg => "ві"+base_1+"ьми" ; + Pl => "ві"+base_1+"ьміть" + } ; + infinitive = "у"+base_1+"яти" ; + participle = table { + Masc => table { + Sg => "у"+base_1+"яв" ; + Pl => "у"+base_1+"яли" + } ; + Fem => table { + Sg => "у"+base_1+"яла" ; + Pl => "у"+base_1+"яли" + } ; + Neuter => table { + Sg => "у"+base_1+"яло" ; + Pl => "у"+base_1+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "у"+base_1+"ятий" + } + } + }; + _ => error "Can't apply paradigm mkV069" + } ; + +mkV070 : Str -> V ; +mkV070 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"нете" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"нений" + } + } + }; + _ => error "Can't apply paradigm mkV070" + } ; + +mkV071 : Str -> V ; +mkV071 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => base_1+"єм"+base_2 + } ; + P2 => table { + Sg => base_1+"єш"+base_2 ; + Pl => base_1+"єте"+base_2 + } ; + P3 => table { + Sg => base_1+"єть"+base_2 ; + Pl => base_1+"ють"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо"+base_2 ; + imperative2 = table { + Sg => base_1+"й"+base_2 ; + Pl => base_1+"йте"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"в"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV071" + } ; + +mkV072 : Str -> V ; +mkV072 base = + case base of { + base_1+"о"+base_2@?+"оти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"оти" ; + Pl => base_1+"е"+base_2+"ем" + } ; + P2 => table { + Sg => base_1+"е"+base_2+"еш" ; + Pl => base_1+"е"+base_2+"ете" + } ; + P3 => table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"е"+base_2+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"е"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"е"+base_2+"и" ; + Pl => base_1+"е"+base_2+"іть" + } ; + infinitive = base_1+"о"+base_2+"оти" ; + participle = table { + Masc => table { + Sg => base_1+"о"+base_2+"ов" ; + Pl => base_1+"о"+base_2+"оли" + } ; + Fem => table { + Sg => base_1+"о"+base_2+"ола" ; + Pl => base_1+"о"+base_2+"оли" + } ; + Neuter => table { + Sg => base_1+"о"+base_2+"оло" ; + Pl => base_1+"о"+base_2+"оли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV072" + } ; + +mkV073 : Str -> V ; +mkV073 base = + case base of { + base_1+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"нете" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"яти" ; + participle = table { + Masc => table { + Sg => base_1+"яв" ; + Pl => base_1+"яли" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"яли" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ятий" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV073" + } ; + +mkV074 : Str -> V ; +mkV074 base = + case base of { + base_1+"оти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"оти" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"оти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"оти" ; + participle = table { + Masc => table { + Sg => base_1+"ов" ; + Pl => base_1+"оли" + } ; + Fem => table { + Sg => base_1+"ола" ; + Pl => base_1+"оли" + } ; + Neuter => table { + Sg => base_1+"оло" ; + Pl => base_1+"оли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV074" + } ; + +mkV075 : Str -> V ; +mkV075 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => "будемо "+base_1+"ити" + } ; + P2 => table { + Sg => "будеш "+base_1+"ити" ; + Pl => "будете "+base_1+"ити" + } ; + P3 => table { + Sg => "буде "+base_1+"ити" ; + Pl => "будуть "+base_1+"ити" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо" ; + imperative2 = table { + Sg => base_1 ; + Pl => base_1+"те" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"лений" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV075" + } ; + +mkV076 : Str -> V ; +mkV076 base = + case base of { + base_1+"увати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"увати" ; + Pl => "будемо "+base_1+"увати" + } ; + P2 => table { + Sg => "будеш "+base_1+"увати" ; + Pl => "будете "+base_1+"увати" + } ; + P3 => table { + Sg => "буде "+base_1+"увати" ; + Pl => "будуть "+base_1+"увати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"уймо" ; + imperative2 = table { + Sg => base_1+"уй" ; + Pl => base_1+"уйте" + } ; + infinitive = base_1+"увати" ; + participle = table { + Masc => table { + Sg => base_1+"ував" ; + Pl => base_1+"ували" + } ; + Fem => table { + Sg => base_1+"увала" ; + Pl => base_1+"ували" + } ; + Neuter => table { + Sg => base_1+"увало" ; + Pl => base_1+"ували" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ований" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV076" + } ; + +mkV077 : Str -> V ; +mkV077 base = + case base of { + base_1+"е"+base_2@?+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ти" ; + Pl => base_1+base_2+"ем" + } ; + P2 => table { + Sg => base_1+base_2+"еш" ; + Pl => base_1+base_2+"ете" + } ; + P3 => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"уть" + } + } + } ; + Perf => { Past = base_1+"е"+base_2+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+base_2+"ім" ; + imperative2 = table { + Sg => base_1+base_2+"и" ; + Pl => base_1+base_2+"іть" + } ; + infinitive = base_1+"е"+base_2+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"е"+base_2+"ли" + } ; + Fem => table { + Sg => base_1+"е"+base_2+"ла" ; + Pl => base_1+"е"+base_2+"ли" + } ; + Neuter => table { + Sg => base_1+"е"+base_2+"ло" ; + Pl => base_1+"е"+base_2+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"тий" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV077" + } ; + +mkV078 : Str -> V ; +mkV078 base = + case base of { + base_1+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти" ; + Pl => base_1+"яєм" + } ; + P2 => table { + Sg => base_1+"яєш" ; + Pl => base_1+"яєте" + } ; + P3 => table { + Sg => base_1+"яє" ; + Pl => base_1+"яють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"яймо" ; + imperative2 = table { + Sg => base_1+"яй" ; + Pl => base_1+"яйте" + } ; + infinitive = base_1+"яти" ; + participle = table { + Masc => table { + Sg => base_1+"яв" ; + Pl => base_1+"яли" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"яли" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"юваний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV078" + } ; + +mkV079 : Str -> V ; +mkV079 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"є" ; --guessed + Pl => base_1+"ють" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дьмо" ; + imperative2 = table { + Sg => base_1+"дь" ; + Pl => base_1+"дьте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV079" + } ; + +mkV080 : Str -> V ; +mkV080 base = + case base of { + base_1+"вати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати"+base_2 ; + Pl => base_1+"єм"+base_2 + } ; + P2 => table { + Sg => base_1+"єш"+base_2 ; + Pl => base_1+"єте"+base_2 + } ; + P3 => table { + Sg => base_1+"єть"+base_2 ; + Pl => base_1+"ють"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо"+base_2 ; + imperative2 = table { + Sg => base_1+"й"+base_2 ; + Pl => base_1+"йте"+base_2 + } ; + infinitive = base_1+"вати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"вав"+base_2 ; + Pl => base_1+"вали"+base_2 + } ; + Fem => table { + Sg => base_1+"вала"+base_2 ; + Pl => base_1+"вали"+base_2 + } ; + Neuter => table { + Sg => base_1+"вало"+base_2 ; + Pl => base_1+"вали"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV080" + } ; + +mkV081 : Str -> V ; +mkV081 base = + case base of { + base_1+"їти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"їти" ; + Pl => base_1+"їм" + } ; + P2 => table { + Sg => base_1+"їш" ; + Pl => base_1+"їте" + } ; + P3 => table { + Sg => base_1+"їть" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"їти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"їти" ; + participle = table { + Masc => table { + Sg => base_1+"їв" ; + Pl => base_1+"їли" + } ; + Fem => table { + Sg => base_1+"їла" ; + Pl => base_1+"їли" + } ; + Neuter => table { + Sg => base_1+"їло" ; + Pl => base_1+"їли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"єний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"єний" + } + } + }; + _ => error "Can't apply paradigm mkV081" + } ; + +mkV082 : Str -> V ; +mkV082 base = + case base of { + base_1+"їти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"їти" ; + Pl => base_1+"їм" + } ; + P2 => table { + Sg => base_1+"їш" ; + Pl => base_1+"їте" + } ; + P3 => table { + Sg => base_1+"їть" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"їти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"їм" ; + imperative2 = table { + Sg => base_1+"ї" ; + Pl => base_1+"їть" + } ; + infinitive = base_1+"їти" ; + participle = table { + Masc => table { + Sg => base_1+"їв" ; + Pl => base_1+"їли" + } ; + Fem => table { + Sg => base_1+"їла" ; + Pl => base_1+"їли" + } ; + Neuter => table { + Sg => base_1+"їло" ; + Pl => base_1+"їли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"єний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"єний" + } + } + }; + _ => error "Can't apply paradigm mkV082" + } ; + +mkV083 : Str -> V ; +mkV083 base = + case base of { + base_1+"оїти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"оїти" ; + Pl => base_1+"оїм" + } ; + P2 => table { + Sg => base_1+"оїш" ; + Pl => base_1+"оїте" + } ; + P3 => table { + Sg => base_1+"оїть" ; + Pl => base_1+"оять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"оїти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"іймо" ; + imperative2 = table { + Sg => base_1+"ій" ; + Pl => base_1+"ійте" + } ; + infinitive = base_1+"оїти" ; + participle = table { + Masc => table { + Sg => base_1+"оїв" ; + Pl => base_1+"оїли" + } ; + Fem => table { + Sg => base_1+"оїла" ; + Pl => base_1+"оїли" + } ; + Neuter => table { + Sg => base_1+"оїло" ; + Pl => base_1+"оїли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"оєний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"оєний" + } + } + }; + _ => error "Can't apply paradigm mkV083" + } ; + +mkV084 : Str -> V ; +mkV084 base = + case base of { + base_1+base_2@?+"е"+base_3@?+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"е"+base_3+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"е"+base_3+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"і"+base_2+base_3+"ім" ; + imperative2 = table { + Sg => base_1+"і"+base_2+base_3+"и" ; + Pl => base_1+"і"+base_2+base_3+"іть" + } ; + infinitive = base_1+base_2+"е"+base_3+"ти" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"е"+base_3 ; + Pl => base_1+base_2+"е"+base_3+"ли" + } ; + Fem => table { + Sg => base_1+base_2+"е"+base_3+"ла" ; + Pl => base_1+base_2+"е"+base_3+"ли" + } ; + Neuter => table { + Sg => base_1+base_2+"е"+base_3+"ло" ; + Pl => base_1+base_2+"е"+base_3+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+base_2+"е"+base_3+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV084" + } ; + +mkV085 : Str -> V ; +mkV085 base = + case base of { + base_1+"ювати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ювати" ; + Pl => base_1+"юєм" + } ; + P2 => table { + Sg => base_1+"юєш" ; + Pl => base_1+"юєте" + } ; + P3 => table { + Sg => base_1+"ює" ; + Pl => base_1+"юють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ювати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"юймо" ; + imperative2 = table { + Sg => base_1+"юй" ; + Pl => base_1+"юйте" + } ; + infinitive = base_1+"ювати" ; + participle = table { + Masc => table { + Sg => base_1+"ював" ; + Pl => base_1+"ювали" + } ; + Fem => table { + Sg => base_1+"ювала" ; + Pl => base_1+"ювали" + } ; + Neuter => table { + Sg => base_1+"ювало" ; + Pl => base_1+"ювали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ьований" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ьований" + } + } + }; + _ => error "Can't apply paradigm mkV085" + } ; + +mkV086 : Str -> V ; +mkV086 base = + case base of { + base_1+"хати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хати" ; + Pl => base_1+"шем" + } ; + P2 => table { + Sg => base_1+"шеш" ; + Pl => base_1+"шете" + } ; + P3 => table { + Sg => base_1+"ше" ; + Pl => base_1+"шуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"шім" ; + imperative2 = table { + Sg => base_1+"ши" ; + Pl => base_1+"шіть" + } ; + infinitive = base_1+"хати" ; + participle = table { + Masc => table { + Sg => base_1+"хав" ; + Pl => base_1+"хали" + } ; + Fem => table { + Sg => base_1+"хала" ; + Pl => base_1+"хали" + } ; + Neuter => table { + Sg => base_1+"хало" ; + Pl => base_1+"хали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ханий" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV086" + } ; + +mkV087 : Str -> V ; +mkV087 base = + case base of { + base_1+"ктати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ктати" ; + Pl => base_1+"чем" + } ; + P2 => table { + Sg => base_1+"чеш" ; + Pl => base_1+"чете" + } ; + P3 => table { + Sg => base_1+"че" ; + Pl => base_1+"чуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"чім" ; + imperative2 = table { + Sg => base_1+"чи" ; + Pl => base_1+"чіть" + } ; + infinitive = base_1+"ктати" ; + participle = table { + Masc => table { + Sg => base_1+"ктав" ; + Pl => base_1+"ктали" + } ; + Fem => table { + Sg => base_1+"ктала" ; + Pl => base_1+"ктали" + } ; + Neuter => table { + Sg => base_1+"ктало" ; + Pl => base_1+"ктали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV087" + } ; + +mkV088 : Str -> V ; +mkV088 base = + case base of { + base_1+"сти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"джмо" ; + imperative2 = table { + Sg => base_1+"дж" ; + Pl => base_1+"джте" + } ; + infinitive = base_1+"сти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV088" + } ; + +mkV089 : Str -> V ; +mkV089 base = + case base of { + base_1+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти" ; + Pl => base_1+"єм" + } ; + P2 => table { + Sg => base_1+"єш" ; + Pl => base_1+"єте" + } ; + P3 => table { + Sg => base_1+"є" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"яти" ; + participle = table { + Masc => table { + Sg => base_1+"яв" ; + Pl => base_1+"яли" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"яли" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"яний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"яний" + } + } + }; + _ => error "Can't apply paradigm mkV089" + } ; + +mkV090 : Str -> V ; +mkV090 base = + case base of { + base_1+"іти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; + imperative2 = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьте" + } ; + infinitive = base_1+"іти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" + } + } + }; + _ => error "Can't apply paradigm mkV090" + } ; + +mkV091 : Str -> V ; +mkV091 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"им"+base_2 + } ; + P2 => table { + Sg => base_1+"иш"+base_2 ; + Pl => base_1+"ите"+base_2 + } ; + P3 => table { + Sg => base_1+"ить"+base_2 ; + Pl => base_1+"ять"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV091" + } ; + +mkV092 : Str -> V ; +mkV092 base = + case base of { + base_1+"ояти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ояти"+base_2 ; + Pl => base_1+"оїм"+base_2 + } ; + P2 => table { + Sg => base_1+"оїш"+base_2 ; + Pl => base_1+"оїте"+base_2 + } ; + P3 => table { + Sg => base_1+"оїть"+base_2 ; + Pl => base_1+"оять"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"іймо"+base_2 ; + imperative2 = table { + Sg => base_1+"ій"+base_2 ; + Pl => base_1+"ійте"+base_2 + } ; + infinitive = base_1+"ояти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ояв"+base_2 ; + Pl => base_1+"ояли"+base_2 + } ; + Fem => table { + Sg => base_1+"ояла"+base_2 ; + Pl => base_1+"ояли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ояло"+base_2 ; + Pl => base_1+"ояли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV092" + } ; + +mkV093 : Str -> V ; +mkV093 base = + case base of { + base_1+"ягти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ягти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ягти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"яжмо" ; + imperative2 = table { + Sg => base_1+"яж" ; + Pl => base_1+"яжте" + } ; + infinitive = base_1+"ягти" ; + participle = table { + Masc => table { + Sg => base_1+"іг" ; + Pl => base_1+"ягли" + } ; + Fem => table { + Sg => base_1+"ягла" ; + Pl => base_1+"ягли" + } ; + Neuter => table { + Sg => base_1+"ягло" ; + Pl => base_1+"ягли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV093" + } ; + +mkV094 : Str -> V ; +mkV094 base = + case base of { + base_1+"екти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"екти" ; + Pl => base_1+"ечем" + } ; + P2 => table { + Sg => base_1+"ечеш" ; + Pl => base_1+"ечете" + } ; + P3 => table { + Sg => base_1+"ече" ; + Pl => base_1+"ечуть" + } + } + } ; + Perf => { Past = base_1+"еклий" ; + Pres = table { + P1 => table { + Sg => base_1+"екти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ечім" ; + imperative2 = table { + Sg => base_1+"ечи" ; + Pl => base_1+"ечіть" + } ; + infinitive = base_1+"екти" ; + participle = table { + Masc => table { + Sg => base_1+"ік" ; + Pl => base_1+"екли" + } ; + Fem => table { + Sg => base_1+"екла" ; + Pl => base_1+"екли" + } ; + Neuter => table { + Sg => base_1+"екло" ; + Pl => base_1+"екли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ечений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ечений" + } + } + }; + _ => error "Can't apply paradigm mkV094" + } ; + +mkV095 : Str -> V ; +mkV095 base = + case base of { + base_1+"істи" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"істи" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"істи" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ядьмо" ; + imperative2 = table { + Sg => base_1+"ядь" ; + Pl => base_1+"ядьте" + } ; + infinitive = base_1+"істи" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV095" + } ; + +mkV096 : Str -> V ; +mkV096 base = + case base of { + base_1+"ути"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути"+base_2 ; + Pl => base_1+"ем"+base_2 + } ; + P2 => table { + Sg => base_1+"еш"+base_2 ; + Pl => base_1+"ете"+base_2 + } ; + P3 => table { + Sg => base_1+"еть"+base_2 ; + Pl => base_1+"уть"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ути"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ув"+base_2 ; + Pl => base_1+"ули"+base_2 + } ; + Fem => table { + Sg => base_1+"ула"+base_2 ; + Pl => base_1+"ули"+base_2 + } ; + Neuter => table { + Sg => base_1+"уло"+base_2 ; + Pl => base_1+"ули"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV096" + } ; + +mkV097 : Str -> V ; +mkV097 base = + case base of { + base_1+"гти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гти" ; + Pl => base_1+"жим" + } ; + P2 => table { + Sg => base_1+"жиш" ; + Pl => base_1+"жите" + } ; + P3 => table { + Sg => base_1+"жить" ; + Pl => base_1+"жать" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жім" ; + imperative2 = table { + Sg => base_1+"жи" ; + Pl => base_1+"жіть" + } ; + infinitive = base_1+"гти" ; + participle = table { + Masc => table { + Sg => base_1+"г" ; + Pl => base_1+"гли" + } ; + Fem => table { + Sg => base_1+"гла" ; + Pl => base_1+"гли" + } ; + Neuter => table { + Sg => base_1+"гло" ; + Pl => base_1+"гли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV097" + } ; + +mkV098 : Str -> V ; +mkV098 base = + case base of { + base_1+"ояти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ояти" ; + Pl => base_1+"оїм" + } ; + P2 => table { + Sg => base_1+"оїш" ; + Pl => base_1+"оїте" + } ; + P3 => table { + Sg => base_1+"оїть" ; + Pl => base_1+"оять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ояти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"іймо" ; + imperative2 = table { + Sg => base_1+"ій" ; + Pl => base_1+"ійте" + } ; + infinitive = base_1+"ояти" ; + participle = table { + Masc => table { + Sg => base_1+"ояв" ; + Pl => base_1+"ояли" + } ; + Fem => table { + Sg => base_1+"ояла" ; + Pl => base_1+"ояли" + } ; + Neuter => table { + Sg => base_1+"ояло" ; + Pl => base_1+"ояли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ояний" + } + } + }; + _ => error "Can't apply paradigm mkV098" + } ; + +mkV099 : Str -> V ; +mkV099 base = + case base of { + base_1+"яти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти"+base_2 ; + Pl => base_1+"єм"+base_2 + } ; + P2 => table { + Sg => base_1+"єш"+base_2 ; + Pl => base_1+"єте"+base_2 + } ; + P3 => table { + Sg => base_1+"єть"+base_2 ; + Pl => base_1+"ють"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо"+base_2 ; + imperative2 = table { + Sg => base_1+"й"+base_2 ; + Pl => base_1+"йте"+base_2 + } ; + infinitive = base_1+"яти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"яв"+base_2 ; + Pl => base_1+"яли"+base_2 + } ; + Fem => table { + Sg => base_1+"яла"+base_2 ; + Pl => base_1+"яли"+base_2 + } ; + Neuter => table { + Sg => base_1+"яло"+base_2 ; + Pl => base_1+"яли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV099" + } ; + +mkV100 : Str -> V ; +mkV100 base = + case base of { + base_1+"іти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"лять" + } + } + } ; + Perf => { Past = base_1+"ілий" ; --guessed + Pres = table { + P1 => table { + Sg => base_1+"іти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"іти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV100" + } ; + +mkV101 : Str -> V ; +mkV101 base = + case base of { + base_1+"тати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тати" ; + Pl => base_1+"чем" + } ; + P2 => table { + Sg => base_1+"чеш" ; + Pl => base_1+"чете" + } ; + P3 => table { + Sg => base_1+"че" ; + Pl => base_1+"чуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"чім" ; + imperative2 = table { + Sg => base_1+"чи" ; + Pl => base_1+"чіть" + } ; + infinitive = base_1+"тати" ; + participle = table { + Masc => table { + Sg => base_1+"тав" ; + Pl => base_1+"тали" + } ; + Fem => table { + Sg => base_1+"тала" ; + Pl => base_1+"тали" + } ; + Neuter => table { + Sg => base_1+"тало" ; + Pl => base_1+"тали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"таний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"таний" + } + } + }; + _ => error "Can't apply paradigm mkV101" + } ; + +mkV102 : Str -> V ; +mkV102 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; + imperative2 = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV102" + } ; + +mkV103 : Str -> V ; +mkV103 base = + case base of { + base_1+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"є" ; --guessed + Pl => base_1+"ють" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"імім" ; + imperative2 = table { + Sg => base_1+"іми" ; + Pl => base_1+"іміть" + } ; + infinitive = base_1+"яти" ; + participle = table { + Masc => table { + Sg => base_1+"яв" ; + Pl => base_1+"яли" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"яли" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ятий" + } + } + }; + _ => error "Can't apply paradigm mkV103" + } ; + +mkV104 : Str -> V ; +mkV104 base = + case base of { + base_1+"гти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гти" ; + Pl => base_1+"жем" + } ; + P2 => table { + Sg => base_1+"жеш" ; + Pl => base_1+"жете" + } ; + P3 => table { + Sg => base_1+"же" ; + Pl => base_1+"жуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жім" ; + imperative2 = table { + Sg => base_1+"жи" ; + Pl => base_1+"жіть" + } ; + infinitive = base_1+"гти" ; + participle = table { + Masc => table { + Sg => base_1+"г" ; + Pl => base_1+"гли" + } ; + Fem => table { + Sg => base_1+"гла" ; + Pl => base_1+"гли" + } ; + Neuter => table { + Sg => base_1+"гло" ; + Pl => base_1+"гли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV104" + } ; + +mkV105 : Str -> V ; +mkV105 base = + case base of { + base_1+"сти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => base_1+"вем" + } ; + P2 => table { + Sg => base_1+"веш" ; + Pl => base_1+"вете" + } ; + P3 => table { + Sg => base_1+"ве" ; + Pl => base_1+"вуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"вім" ; + imperative2 = table { + Sg => base_1+"ви" ; + Pl => base_1+"віть" + } ; + infinitive = base_1+"сти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV105" + } ; + +mkV106 : Str -> V ; +mkV106 base = + case base of { + base_1+"оти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"оти"+base_2 ; + Pl => base_1+"ем"+base_2 + } ; + P2 => table { + Sg => base_1+"еш"+base_2 ; + Pl => base_1+"ете"+base_2 + } ; + P3 => table { + Sg => base_1+"еть"+base_2 ; + Pl => base_1+"ють"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"оти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ов"+base_2 ; + Pl => base_1+"оли"+base_2 + } ; + Fem => table { + Sg => base_1+"ола"+base_2 ; + Pl => base_1+"оли"+base_2 + } ; + Neuter => table { + Sg => base_1+"оло"+base_2 ; + Pl => base_1+"оли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV106" + } ; + +mkV107 : Str -> V ; +mkV107 base = + case base of { + "і"+base_1+"ювати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "і"+base_1+"ювати" ; + Pl => "будемо й"+base_1+"ювати" + } ; + P2 => table { + Sg => "будеш і"+base_1+"ювати" ; + Pl => "будете й"+base_1+"ювати" + } ; + P3 => table { + Sg => "буде й"+base_1+"ювати" ; + Pl => "будуть і"+base_1+"ювати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "і"+base_1+"юймо" ; + imperative2 = table { + Sg => "і"+base_1+"юй" ; + Pl => "і"+base_1+"юйте" + } ; + infinitive = "і"+base_1+"ювати" ; + participle = table { + Masc => table { + Sg => "і"+base_1+"ював" ; + Pl => "і"+base_1+"ювали" + } ; + Fem => table { + Sg => "і"+base_1+"ювала" ; + Pl => "і"+base_1+"ювали" + } ; + Neuter => table { + Sg => "і"+base_1+"ювало" ; + Pl => "і"+base_1+"ювали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "і"+base_1+"ьований" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV107" + } ; + +mkV108 : Str -> V ; +mkV108 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"мем" + } ; + P2 => table { + Sg => base_1+"меш" ; + Pl => base_1+"мете" + } ; + P3 => table { + Sg => base_1+"ме" ; + Pl => base_1+"муть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мім" ; + imperative2 = table { + Sg => base_1+"ми" ; + Pl => base_1+"міть" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"атий" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV108" + } ; + +mkV109 : Str -> V ; +mkV109 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"нете" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"атий" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"атий" + } + } + }; + _ => error "Can't apply paradigm mkV109" + } ; + +mkV110 : Str -> V ; +mkV110 base = + case base of { + base_1+"егти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"егти" ; + Pl => base_1+"ежем" + } ; + P2 => table { + Sg => base_1+"ежеш" ; + Pl => base_1+"ежете" + } ; + P3 => table { + Sg => base_1+"еже" ; + Pl => base_1+"ежуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"егти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ежім" ; + imperative2 = table { + Sg => base_1+"ежи" ; + Pl => base_1+"ежіть" + } ; + infinitive = base_1+"егти" ; + participle = table { + Masc => table { + Sg => base_1+"іг" ; + Pl => base_1+"егли" + } ; + Fem => table { + Sg => base_1+"егла" ; + Pl => base_1+"егли" + } ; + Neuter => table { + Sg => base_1+"егло" ; + Pl => base_1+"егли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ежений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ежений" + } + } + }; + _ => error "Can't apply paradigm mkV110" + } ; + +mkV111 : Str -> V ; +mkV111 base = + case base of { + base_1+"іти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"лять" + } + } + } ; + Perf => { Past = base_1+"ілий" ; --guessed + Pres = table { + P1 => table { + Sg => base_1+"іти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"іти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV111" + } ; + +mkV112 : Str -> V ; +mkV112 base = + case base of { + base_1+"вати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати"+base_2 ; + Pl => base_1+"єм"+base_2 + } ; + P2 => table { + Sg => base_1+"єш"+base_2 ; + Pl => base_1+"єте"+base_2 + } ; + P3 => table { + Sg => base_1+"єть"+base_2 ; + Pl => base_1+"ють"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ваймо"+base_2 ; + imperative2 = table { + Sg => base_1+"вай"+base_2 ; + Pl => base_1+"вайте"+base_2 + } ; + infinitive = base_1+"вати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"вав"+base_2 ; + Pl => base_1+"вали"+base_2 + } ; + Fem => table { + Sg => base_1+"вала"+base_2 ; + Pl => base_1+"вали"+base_2 + } ; + Neuter => table { + Sg => base_1+"вало"+base_2 ; + Pl => base_1+"вали"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV112" + } ; + +mkV113 : Str -> V ; +mkV113 base = + case base of { + base_1+"вати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; + Pl => "будемо "+base_1+"вати" + } ; + P2 => table { + Sg => "будеш "+base_1+"вати" ; + Pl => "будете "+base_1+"вати" + } ; + P3 => table { + Sg => "буде "+base_1+"вати" ; + Pl => "будуть "+base_1+"вати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"вати" ; + participle = table { + Masc => table { + Sg => base_1+"вав" ; + Pl => base_1+"вали" + } ; + Fem => table { + Sg => base_1+"вала" ; + Pl => base_1+"вали" + } ; + Neuter => table { + Sg => base_1+"вало" ; + Pl => base_1+"вали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ваний" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ваний" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV113" + } ; + +mkV114 : Str -> V ; +mkV114 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => "будемо "+base_1+"ити"+base_2 + } ; + P2 => table { + Sg => "будеш "+base_1+"ити"+base_2 ; + Pl => "будете "+base_1+"ити"+base_2 + } ; + P3 => table { + Sg => "буде "+base_1+"ити"+base_2 ; + Pl => "будуть "+base_1+"ити"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV114" + } ; + +mkV115 : Str -> V ; +mkV115 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"им"+base_2 + } ; + P2 => table { + Sg => base_1+"иш"+base_2 ; + Pl => base_1+"ите"+base_2 + } ; + P3 => table { + Sg => base_1+"ить"+base_2 ; + Pl => base_1+"ять"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо"+base_2 ; + imperative2 = table { + Sg => base_1+"ь"+base_2 ; + Pl => base_1+"ьте"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV115" + } ; + +mkV116 : Str -> V ; +mkV116 base = + case base of { + base_1+"ути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; + imperative2 = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьте" + } ; + infinitive = base_1+"ути" ; + participle = table { + Masc => table { + Sg => base_1+"ув" ; + Pl => base_1+"ули" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"ули" + } ; + Neuter => table { + Sg => base_1+"уло" ; + Pl => base_1+"ули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"утий" + } + } + }; + _ => error "Can't apply paradigm mkV116" + } ; + +mkV117 : Str -> V ; +mkV117 base = + case base of { + base_1+"ути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => base_1+"мем" + } ; + P2 => table { + Sg => base_1+"меш" ; + Pl => base_1+"мете" + } ; + P3 => table { + Sg => base_1+"ме" ; + Pl => base_1+"муть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мім" ; + imperative2 = table { + Sg => base_1+"ми" ; + Pl => base_1+"міть" + } ; + infinitive = base_1+"ути" ; + participle = table { + Masc => table { + Sg => base_1+"ув" ; + Pl => base_1+"ули" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"ули" + } ; + Neuter => table { + Sg => base_1+"уло" ; + Pl => base_1+"ули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"утий" + } + } + }; + _ => error "Can't apply paradigm mkV117" + } ; + +mkV118 : Str -> V ; +mkV118 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"'єм"+base_2 + } ; + P2 => table { + Sg => base_1+"'єш"+base_2 ; + Pl => base_1+"'єте"+base_2 + } ; + P3 => table { + Sg => base_1+"'єть"+base_2 ; + Pl => base_1+"'ють"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"иймо"+base_2 ; + imperative2 = table { + Sg => base_1+"ий"+base_2 ; + Pl => base_1+"ийте"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV118" + } ; + +mkV119 : Str -> V ; +mkV119 base = + case base of { + base_1+"окти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"окти" ; + Pl => base_1+"очем" + } ; + P2 => table { + Sg => base_1+"очеш" ; + Pl => base_1+"очете" + } ; + P3 => table { + Sg => base_1+"оче" ; + Pl => base_1+"очуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"очім" ; + imperative2 = table { + Sg => base_1+"очи" ; + Pl => base_1+"очіть" + } ; + infinitive = base_1+"окти" ; + participle = table { + Masc => table { + Sg => base_1+"ік" ; + Pl => base_1+"окли" + } ; + Fem => table { + Sg => base_1+"окла" ; + Pl => base_1+"окли" + } ; + Neuter => table { + Sg => base_1+"окло" ; + Pl => base_1+"окли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"очений" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV119" + } ; + +mkV120 : Str -> V ; +mkV120 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"єть"+base_2 ; --guessed + Pl => base_1+"ють"+base_2 --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ньмо"+base_2 ; + imperative2 = table { + Sg => base_1+"нь"+base_2 ; + Pl => base_1+"ньте"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"в"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV120" + } ; + +mkV121 : Str -> V ; +mkV121 base = + case base of { + base_1+"тіти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тіти" ; + Pl => base_1+"тим" + } ; + P2 => table { + Sg => base_1+"тиш" ; + Pl => base_1+"тите" + } ; + P3 => table { + Sg => base_1+"тить" ; + Pl => base_1+"тять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"тім" ; + imperative2 = table { + Sg => base_1+"ти" ; + Pl => base_1+"тіть" + } ; + infinitive = base_1+"тіти" ; + participle = table { + Masc => table { + Sg => base_1+"тів" ; + Pl => base_1+"тіли" + } ; + Fem => table { + Sg => base_1+"тіла" ; + Pl => base_1+"тіли" + } ; + Neuter => table { + Sg => base_1+"тіло" ; + Pl => base_1+"тіли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"чений" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV121" + } ; + +mkV122 : Str -> V ; +mkV122 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ать" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо" ; + imperative2 = table { + Sg => base_1 ; + Pl => base_1+"те" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аний" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV122" + } ; + +mkV123 : Str -> V ; +mkV123 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"им"+base_2 + } ; + P2 => table { + Sg => base_1+"иш"+base_2 ; + Pl => base_1+"ите"+base_2 + } ; + P3 => table { + Sg => base_1+"ить"+base_2 ; + Pl => base_1+"лять"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо"+base_2 ; + imperative2 = table { + Sg => base_1+base_2 ; + Pl => base_1+"те"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV123" + } ; + +mkV124 : Str -> V ; +mkV124 base = + case base of { + "і"+base_1+"увати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "і"+base_1+"увати" ; + Pl => "будемо й"+base_1+"увати" + } ; + P2 => table { + Sg => "будеш і"+base_1+"увати" ; + Pl => "будете й"+base_1+"увати" + } ; + P3 => table { + Sg => "буде й"+base_1+"увати" ; + Pl => "будуть і"+base_1+"увати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "і"+base_1+"уймо" ; + imperative2 = table { + Sg => "і"+base_1+"уй" ; + Pl => "і"+base_1+"уйте" + } ; + infinitive = "і"+base_1+"увати" ; + participle = table { + Masc => table { + Sg => "і"+base_1+"ував" ; + Pl => "і"+base_1+"ували" + } ; + Fem => table { + Sg => "і"+base_1+"увала" ; + Pl => "і"+base_1+"ували" + } ; + Neuter => table { + Sg => "і"+base_1+"увало" ; + Pl => "і"+base_1+"ували" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "і"+base_1+"ований" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV124" + } ; + +mkV125 : Str -> V ; +mkV125 base = + case base of { + base_1+"ювати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ювати" ; + Pl => "будемо "+base_1+"ювати" + } ; + P2 => table { + Sg => "будеш "+base_1+"ювати" ; + Pl => "будете "+base_1+"ювати" + } ; + P3 => table { + Sg => "буде "+base_1+"ювати" ; + Pl => "будуть "+base_1+"ювати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ювати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"юймо" ; + imperative2 = table { + Sg => base_1+"юй" ; + Pl => base_1+"юйте" + } ; + infinitive = base_1+"ювати" ; + participle = table { + Masc => table { + Sg => base_1+"ював" ; + Pl => base_1+"ювали" + } ; + Fem => table { + Sg => base_1+"ювала" ; + Pl => base_1+"ювали" + } ; + Neuter => table { + Sg => base_1+"ювало" ; + Pl => base_1+"ювали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"йований" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"йований" + } + } + }; + _ => error "Can't apply paradigm mkV125" + } ; + +mkV126 : Str -> V ; +mkV126 base = + case base of { + base_1+"няти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"няти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"няти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мім" ; + imperative2 = table { + Sg => base_1+"ми" ; + Pl => base_1+"міть" + } ; + infinitive = base_1+"няти" ; + participle = table { + Masc => table { + Sg => base_1+"няв" ; + Pl => base_1+"няли" + } ; + Fem => table { + Sg => base_1+"няла" ; + Pl => base_1+"няли" + } ; + Neuter => table { + Sg => base_1+"няло" ; + Pl => base_1+"няли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"нятий" + } + } + }; + _ => error "Can't apply paradigm mkV126" + } ; + +mkV127 : Str -> V ; +mkV127 base = + case base of { + base_1+"зити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зити" ; + Pl => base_1+"зим" + } ; + P2 => table { + Sg => base_1+"зиш" ; + Pl => base_1+"зите" + } ; + P3 => table { + Sg => base_1+"зить" ; + Pl => base_1+"зять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"зім" ; + imperative2 = table { + Sg => base_1+"зи" ; + Pl => base_1+"зіть" + } ; + infinitive = base_1+"зити" ; + participle = table { + Masc => table { + Sg => base_1+"зив" ; + Pl => base_1+"зили" + } ; + Fem => table { + Sg => base_1+"зила" ; + Pl => base_1+"зили" + } ; + Neuter => table { + Sg => base_1+"зило" ; + Pl => base_1+"зили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" + } + } + }; + _ => error "Can't apply paradigm mkV127" + } ; + +mkV128 : Str -> V ; +mkV128 base = + case base of { + base_1+"зити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зити" ; + Pl => base_1+"зим" + } ; + P2 => table { + Sg => base_1+"зиш" ; + Pl => base_1+"зите" + } ; + P3 => table { + Sg => base_1+"зить" ; + Pl => base_1+"зять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"зьмо" ; + imperative2 = table { + Sg => base_1+"зь" ; + Pl => base_1+"зьте" + } ; + infinitive = base_1+"зити" ; + participle = table { + Masc => table { + Sg => base_1+"зив" ; + Pl => base_1+"зили" + } ; + Fem => table { + Sg => base_1+"зила" ; + Pl => base_1+"зили" + } ; + Neuter => table { + Sg => base_1+"зило" ; + Pl => base_1+"зили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" + } + } + }; + _ => error "Can't apply paradigm mkV128" + } ; + +mkV129 : Str -> V ; +mkV129 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"деть"+base_2 ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дім"+base_2 ; + imperative2 = table { + Sg => base_1+"ди"+base_2 ; + Pl => base_1+"діть"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"шов"+base_2 ; + Pl => base_1+"шли"+base_2 + } ; + Fem => table { + Sg => base_1+"шла"+base_2 ; + Pl => base_1+"шли"+base_2 + } ; + Neuter => table { + Sg => base_1+"шло"+base_2 ; + Pl => base_1+"шли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV129" + } ; + +mkV130 : Str -> V ; +mkV130 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"ть"+base_2 ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дьмо"+base_2 ; + imperative2 = table { + Sg => base_1+"дь"+base_2 ; + Pl => base_1+"дьте"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"в"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV130" + } ; + +mkV131 : Str -> V ; +mkV131 base = + case base of { + base_1+"ути"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо"+base_2 ; + imperative2 = table { + Sg => base_1+"ь"+base_2 ; + Pl => base_1+"ьте"+base_2 + } ; + infinitive = base_1+"ути"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ув"+base_2 ; + Pl => base_1+"ули"+base_2 + } ; + Fem => table { + Sg => base_1+"ула"+base_2 ; + Pl => base_1+"ули"+base_2 + } ; + Neuter => table { + Sg => base_1+"уло"+base_2 ; + Pl => base_1+"ули"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV131" + } ; + +mkV132 : Str -> V ; +mkV132 base = + case base of { + base_1+"гти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гти" ; + Pl => base_1+"жим" --guessed + } ; + P2 => table { + Sg => base_1+"жиш" ; --guessed + Pl => base_1+"жите" --guessed + } ; + P3 => table { + Sg => base_1+"жить" ; --guessed + Pl => base_1+"жать" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жім" ; + imperative2 = table { + Sg => base_1+"жи" ; + Pl => base_1+"жіть" + } ; + infinitive = base_1+"гти" ; + participle = table { + Masc => table { + Sg => base_1+"г" ; + Pl => base_1+"гли" + } ; + Fem => table { + Sg => base_1+"гла" ; + Pl => base_1+"гли" + } ; + Neuter => table { + Sg => base_1+"гло" ; + Pl => base_1+"гли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жений" --guessed + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" + } + } + }; + _ => error "Can't apply paradigm mkV132" + } ; + +mkV133 : Str -> V ; +mkV133 base = + case base of { + base_1+"і"+base_2@?+base_3@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+base_2+"е"+base_3+"ім" ; + imperative2 = table { + Sg => base_1+base_2+"е"+base_3+"и" ; + Pl => base_1+base_2+"е"+base_3+"іть" + } ; + infinitive = base_1+"і"+base_2+base_3+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2+base_3+"ав" ; + Pl => base_1+"і"+base_2+base_3+"али" + } ; + Fem => table { + Sg => base_1+"і"+base_2+base_3+"ала" ; + Pl => base_1+"і"+base_2+base_3+"али" + } ; + Neuter => table { + Sg => base_1+"і"+base_2+base_3+"ало" ; + Pl => base_1+"і"+base_2+base_3+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"і"+base_2+base_3+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV133" + } ; + +mkV134 : Str -> V ; +mkV134 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"им"+base_2 + } ; + P2 => table { + Sg => base_1+"иш"+base_2 ; + Pl => base_1+"ите"+base_2 + } ; + P3 => table { + Sg => base_1+"ить"+base_2 ; + Pl => base_1+"ать"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо"+base_2 ; + imperative2 = table { + Sg => base_1+base_2 ; + Pl => base_1+"те"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV134" + } ; + +mkV135 : Str -> V ; +mkV135 base = + case base of { + base_1+"вати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; + Pl => base_1+"єм" --guessed + } ; + P2 => table { + Sg => base_1+"єш" ; --guessed + Pl => base_1+"єте" --guessed + } ; + P3 => table { + Sg => base_1+"є" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ваймо" ; --guessed + imperative2 = table { + Sg => base_1+"вай" ; --guessed + Pl => base_1+"вайте" --guessed + } ; + infinitive = base_1+"вати" ; + participle = table { + Masc => table { + Sg => base_1+"вав" ; + Pl => base_1+"вали" + } ; + Fem => table { + Sg => base_1+"вала" ; + Pl => base_1+"вали" + } ; + Neuter => table { + Sg => base_1+"вало" ; + Pl => base_1+"вали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ваний" --guessed + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ваний" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV135" + } ; + +mkV136 : Str -> V ; +mkV136 base = + case base of { + base_1+"ати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати"+base_2 ; + Pl => base_1+"ем"+base_2 + } ; + P2 => table { + Sg => base_1+"еш"+base_2 ; + Pl => base_1+"ете"+base_2 + } ; + P3 => table { + Sg => base_1+"еть"+base_2 ; + Pl => base_1+"уть"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ав"+base_2 ; + Pl => base_1+"али"+base_2 + } ; + Fem => table { + Sg => base_1+"ала"+base_2 ; + Pl => base_1+"али"+base_2 + } ; + Neuter => table { + Sg => base_1+"ало"+base_2 ; + Pl => base_1+"али"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV136" + } ; + +mkV137 : Str -> V ; +mkV137 base = + case base of { + base_1+base_2@?+"ати"+base_3@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ати"+base_3 ; + Pl => base_1+"е"+base_2+"ем"+base_3 + } ; + P2 => table { + Sg => base_1+"е"+base_2+"еш"+base_3 ; + Pl => base_1+"е"+base_2+"ете"+base_3 + } ; + P3 => table { + Sg => base_1+"е"+base_2+"еть"+base_3 ; + Pl => base_1+"е"+base_2+"уть"+base_3 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ати"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"е"+base_2+"ім"+base_3 ; + imperative2 = table { + Sg => base_1+"е"+base_2+"и"+base_3 ; + Pl => base_1+"е"+base_2+"іть"+base_3 + } ; + infinitive = base_1+base_2+"ати"+base_3 ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ав"+base_3 ; + Pl => base_1+base_2+"али"+base_3 + } ; + Fem => table { + Sg => base_1+base_2+"ала"+base_3 ; + Pl => base_1+base_2+"али"+base_3 + } ; + Neuter => table { + Sg => base_1+base_2+"ало"+base_3 ; + Pl => base_1+base_2+"али"+base_3 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV137" + } ; + +mkV138 : Str -> V ; +mkV138 base = + case base of { + base_1+"ясти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ясти" ; + Pl => base_1+"енем" + } ; + P2 => table { + Sg => base_1+"енеш" ; + Pl => base_1+"енете" + } ; + P3 => table { + Sg => base_1+"ене" ; + Pl => base_1+"енуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"енім" ; + imperative2 = table { + Sg => base_1+"ени" ; + Pl => base_1+"еніть" + } ; + infinitive = base_1+"ясти" ; + participle = table { + Masc => table { + Sg => base_1+"яв" ; + Pl => base_1+"яли" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"яли" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ятий" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV138" + } ; + +mkV139 : Str -> V ; +mkV139 base = + case base of { + base_1+"ести"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ести"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"едеть"+base_2 ; + Pl => base_1+"едуть"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = nonExist ; + imperative2 = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = base_1+"ести"+base_2 ; + participle = table { + Masc => table { + Sg => "ві"+base_1+base_2 ; + Pl => base_1+"ели"+base_2 + } ; + Fem => table { + Sg => base_1+"ела"+base_2 ; + Pl => base_1+"ели"+base_2 + } ; + Neuter => table { + Sg => base_1+"ело"+base_2 ; + Pl => base_1+"ели"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV139" + } ; + +mkV140 : Str -> V ; +mkV140 base = + case base of { + base_1+"іти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => base_1+"им" --guessed + } ; + P2 => table { + Sg => base_1+"иш" ; --guessed + Pl => base_1+"ите" --guessed + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"лять" + } + } + } ; + Perf => { Past = base_1+"ілий" ; --guessed + Pres = table { + P1 => table { + Sg => base_1+"іти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; --guessed + imperative2 = table { + Sg => base_1+"и" ; --guessed + Pl => base_1+"іть" --guessed + } ; + infinitive = base_1+"іти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV140" + } ; + +mkV141 : Str -> V ; +mkV141 base = + case base of { + base_1+"няти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"няти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"няти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мім"+base_2 ; + imperative2 = table { + Sg => base_1+"ми"+base_2 ; + Pl => base_1+"міть"+base_2 + } ; + infinitive = base_1+"няти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"няв"+base_2 ; + Pl => base_1+"няли"+base_2 + } ; + Fem => table { + Sg => base_1+"няла"+base_2 ; + Pl => base_1+"няли"+base_2 + } ; + Neuter => table { + Sg => base_1+"няло"+base_2 ; + Pl => base_1+"няли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV141" + } ; + +mkV142 : Str -> V ; +mkV142 base = + case base of { + base_1+"ювати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ювати" ; + Pl => "будемо "+base_1+"ювати" + } ; + P2 => table { + Sg => "будеш "+base_1+"ювати" ; + Pl => "будете "+base_1+"ювати" + } ; + P3 => table { + Sg => "буде "+base_1+"ювати" ; + Pl => "будуть "+base_1+"ювати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ювати" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"юймо" ; + imperative2 = table { + Sg => base_1+"юй" ; + Pl => base_1+"юйте" + } ; + infinitive = base_1+"ювати" ; + participle = table { + Masc => table { + Sg => base_1+"ював" ; + Pl => base_1+"ювали" + } ; + Fem => table { + Sg => base_1+"ювала" ; + Pl => base_1+"ювали" + } ; + Neuter => table { + Sg => base_1+"ювало" ; + Pl => base_1+"ювали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ьований" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"йований" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV142" + } ; + +mkV143 : Str -> V ; +mkV143 base = + case base of { + base_1+"і"+base_2@?+base_3@?+"ати"+base_4@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати"+base_4 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати"+base_4 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+base_2+"е"+base_3+"ім"+base_4 ; + imperative2 = table { + Sg => base_1+base_2+"е"+base_3+"и"+base_4 ; + Pl => base_1+base_2+"е"+base_3+"іть"+base_4 + } ; + infinitive = base_1+"і"+base_2+base_3+"ати"+base_4 ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2+base_3+"ав"+base_4 ; + Pl => base_1+"і"+base_2+base_3+"али"+base_4 + } ; + Fem => table { + Sg => base_1+"і"+base_2+base_3+"ала"+base_4 ; + Pl => base_1+"і"+base_2+base_3+"али"+base_4 + } ; + Neuter => table { + Sg => base_1+"і"+base_2+base_3+"ало"+base_4 ; + Pl => base_1+"і"+base_2+base_3+"али"+base_4 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV143" + } ; + +mkV144 : Str -> V ; +mkV144 base = + case base of { + base_1+"ути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => "будемо "+base_1+"ути" + } ; + P2 => table { + Sg => "будеш "+base_1+"ути" ; + Pl => "будете "+base_1+"ути" + } ; + P3 => table { + Sg => "буде "+base_1+"ути" ; + Pl => "будуть "+base_1+"ути" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ути" ; + participle = table { + Masc => table { + Sg => base_1+"ув" ; + Pl => base_1+"ули" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"ули" + } ; + Neuter => table { + Sg => base_1+"уло" ; + Pl => base_1+"ули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"утий" + } + } + }; + _ => error "Can't apply paradigm mkV144" + } ; + +mkV145 : Str -> V ; +mkV145 base = + case base of { + base_1+base_2@?+"іти"+base_3@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"іти"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"че"+base_2+"ь"+base_3 ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = nonExist ; + imperative2 = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = base_1+base_2+"іти"+base_3 ; + participle = table { + Masc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Fem => table { + Sg => nonExist ; + Pl => nonExist + } ; + Neuter => table { + Sg => base_1+base_2+"іло"+base_3 ; + Pl => nonExist + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV145" + } ; + +mkV146 : Str -> V ; +mkV146 base = + case base of { + base_1@?+base_2+"увати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"увати" ; + Pl => "б"+base_1+"демо в"+base_2+"увати" + } ; + P2 => table { + Sg => "будеш "+base_1+base_2+"увати" ; + Pl => "б"+base_1+"дете в"+base_2+"увати" + } ; + P3 => table { + Sg => "б"+base_1+"де в"+base_2+"увати" ; + Pl => "будуть "+base_1+base_2+"увати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+base_2+"уймо" ; + imperative2 = table { + Sg => base_1+base_2+"уй" ; + Pl => base_1+base_2+"уйте" + } ; + infinitive = base_1+base_2+"увати" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ував" ; + Pl => base_1+base_2+"ували" + } ; + Fem => table { + Sg => base_1+base_2+"увала" ; + Pl => base_1+base_2+"ували" + } ; + Neuter => table { + Sg => base_1+base_2+"увало" ; + Pl => base_1+base_2+"ували" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+base_2+"ований" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV146" + } ; + +mkV147 : Str -> V ; +mkV147 base = + case base of { + base_1+"нути"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім"+base_2 ; + imperative2 = table { + Sg => base_1+"ни"+base_2 ; + Pl => base_1+"ніть"+base_2 + } ; + infinitive = base_1+"нути"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"нув"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV147" + } ; + +mkV148 : Str -> V ; +mkV148 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"увати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"увати" ; + Pl => base_1+"удемо б"+base_2+"увати" + } ; + P2 => table { + Sg => base_1+"удеш б"+base_2+"увати" ; + Pl => base_1+"удете б"+base_2+"увати" + } ; + P3 => table { + Sg => base_1+"уде б"+base_2+"увати" ; + Pl => base_1+"удуть б"+base_2+"увати" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+base_2+"уймо" ; + imperative2 = table { + Sg => base_1+base_2+"уй" ; + Pl => base_1+base_2+"уйте" + } ; + infinitive = base_1+base_2+"увати" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ував" ; + Pl => base_1+base_2+"ували" + } ; + Fem => table { + Sg => base_1+base_2+"увала" ; + Pl => base_1+base_2+"ували" + } ; + Neuter => table { + Sg => base_1+base_2+"увало" ; + Pl => base_1+base_2+"ували" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+base_2+"ований" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV148" + } ; + +mkV149 : Str -> V ; +mkV149 base = + case base of { + base_1+"нути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = base_1+"блий" ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ньмо" ; + imperative2 = table { + Sg => base_1+"нь" ; + Pl => base_1+"ньте" + } ; + infinitive = base_1+"нути" ; + participle = table { + Masc => table { + Sg => base_1+"нув" ; + Pl => base_1+"нули" + } ; + Fem => table { + Sg => base_1+"нула" ; + Pl => base_1+"нули" + } ; + Neuter => table { + Sg => base_1+"нуло" ; + Pl => base_1+"нули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV149" + } ; + +mkV150 : Str -> V ; +mkV150 base = + case base of { + "с"+base_1+"е"+base_2@?+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "с"+base_1+"е"+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "с"+base_1+"е"+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "зі"+base_1+base_2+"ім" ; + imperative2 = table { + Sg => "зі"+base_1+base_2+"и" ; + Pl => "зі"+base_1+base_2+"іть" + } ; + infinitive = "с"+base_1+"е"+base_2+"ти" ; + participle = table { + Masc => table { + Sg => "с"+base_1+"е"+base_2 ; + Pl => "с"+base_1+"е"+base_2+"ли" + } ; + Fem => table { + Sg => "с"+base_1+"е"+base_2+"ла" ; + Pl => "с"+base_1+"е"+base_2+"ли" + } ; + Neuter => table { + Sg => "с"+base_1+"е"+base_2+"ло" ; + Pl => "с"+base_1+"е"+base_2+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "с"+base_1+"е"+base_2+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV150" + } ; + +mkV151 : Str -> V ; +mkV151 base = + case base of { + base_1+"з"+base_2@?+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"з"+base_2+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"з"+base_2+"ити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"з"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"з"+base_2+"и" ; + Pl => base_1+"з"+base_2+"іть" + } ; + infinitive = base_1+"з"+base_2+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"з"+base_2+"ив" ; + Pl => base_1+"з"+base_2+"или" + } ; + Fem => table { + Sg => base_1+"з"+base_2+"ила" ; + Pl => base_1+"з"+base_2+"или" + } ; + Neuter => table { + Sg => base_1+"з"+base_2+"ило" ; + Pl => base_1+"з"+base_2+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ж"+base_2+"жений" + } + } + }; + _ => error "Can't apply paradigm mkV151" + } ; + +mkV152 : Str -> V ; +mkV152 base = + case base of { + base_1+"іг"+base_2@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іг"+base_2+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іг"+base_2+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"же"+base_2+"ім" ; + imperative2 = table { + Sg => base_1+"же"+base_2+"и" ; + Pl => base_1+"же"+base_2+"іть" + } ; + infinitive = base_1+"іг"+base_2+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"іг"+base_2+"ав" ; + Pl => base_1+"іг"+base_2+"али" + } ; + Fem => table { + Sg => base_1+"іг"+base_2+"ала" ; + Pl => base_1+"іг"+base_2+"али" + } ; + Neuter => table { + Sg => base_1+"іг"+base_2+"ало" ; + Pl => base_1+"іг"+base_2+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"іг"+base_2+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV152" + } ; + +mkV153 : Str -> V ; +mkV153 base = + case base of { + base_1+base_2@?+"атис"+base_3@? => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"атис"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"атис"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"шім"+base_2+base_3 ; + imperative2 = table { + Sg => base_1+"ши"+base_2+base_3 ; + Pl => base_1+"шіть"+base_2+base_3 + } ; + infinitive = base_1+base_2+"атис"+base_3 ; + participle = table { + Masc => table { + Sg => base_1+base_2+"авс"+base_3 ; + Pl => base_1+base_2+"алис"+base_3 + } ; + Fem => table { + Sg => base_1+base_2+"алас"+base_3 ; + Pl => base_1+base_2+"алис"+base_3 + } ; + Neuter => table { + Sg => base_1+base_2+"алос"+base_3 ; + Pl => base_1+base_2+"алис"+base_3 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV153" + } ; + +mkV154 : Str -> V ; +mkV154 base = + case base of { + base_1+"у"+base_2@?+"ати"+base_3@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"у"+base_2+"ати"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"увати"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"о"+base_2+"уймо"+base_3 ; + imperative2 = table { + Sg => base_1+"о"+base_2+"уй"+base_3 ; + Pl => base_1+"о"+base_2+"уйте"+base_3 + } ; + infinitive = base_1+"у"+base_2+"ати"+base_3 ; + participle = table { + Masc => table { + Sg => base_1+"овува"+base_2+base_3 ; + Pl => base_1+"о"+base_2+"ували"+base_3 + } ; + Fem => table { + Sg => base_1+"о"+base_2+"увала"+base_3 ; + Pl => base_1+"о"+base_2+"ували"+base_3 + } ; + Neuter => table { + Sg => base_1+"о"+base_2+"увало"+base_3 ; + Pl => base_1+"о"+base_2+"ували"+base_3 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV154" + } ; + +mkV155 : Str -> V ; +mkV155 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV155" + } ; + +mkV156 : Str -> V ; +mkV156 base = + case base of { + base_1+"їти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"їти"+base_2 ; + Pl => base_1+"їм"+base_2 + } ; + P2 => table { + Sg => base_1+"їш"+base_2 ; + Pl => base_1+"їте"+base_2 + } ; + P3 => table { + Sg => base_1+"їть"+base_2 ; + Pl => base_1+"ять"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"їти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо"+base_2 ; + imperative2 = table { + Sg => base_1+"й"+base_2 ; + Pl => base_1+"йте"+base_2 + } ; + infinitive = base_1+"їти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"їв"+base_2 ; + Pl => base_1+"їли"+base_2 + } ; + Fem => table { + Sg => base_1+"їла"+base_2 ; + Pl => base_1+"їли"+base_2 + } ; + Neuter => table { + Sg => base_1+"їло"+base_2 ; + Pl => base_1+"їли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV156" + } ; + +mkV157 : Str -> V ; +mkV157 base = + case base of { + base_1+"ювати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ювати" ; + Pl => base_1+"юєм" + } ; + P2 => table { + Sg => base_1+"юєш" ; + Pl => base_1+"юєте" + } ; + P3 => table { + Sg => base_1+"ює" ; + Pl => base_1+"юють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"юймо" ; + imperative2 = table { + Sg => base_1+"юй" ; + Pl => base_1+"юйте" + } ; + infinitive = base_1+"ювати" ; + participle = table { + Masc => table { + Sg => base_1+"ював" ; + Pl => base_1+"ювали" + } ; + Fem => table { + Sg => base_1+"ювала" ; + Pl => base_1+"ювали" + } ; + Neuter => table { + Sg => base_1+"ювало" ; + Pl => base_1+"ювали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"йований" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV157" + } ; + +mkV158 : Str -> V ; +mkV158 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"ть" ; + Pl => nonExist + } + } + } ; + Perf => { Past = base_1+"лий" ; --guessed + Pres = table { + P1 => table { + Sg => base_1+"ти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дьмо" ; --guessed + imperative2 = table { + Sg => base_1+"дь" ; --guessed + Pl => base_1+"дьте" --guessed + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; --guessed + Pl => base_1+"ли" --guessed + } ; + Fem => table { + Sg => base_1+"ла" ; --guessed + Pl => base_1+"ли" --guessed + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" --guessed + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV158" + } ; + +mkV159 : Str -> V ; +mkV159 base = + case base of { + base_1+"вати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати"+base_2 ; + Pl => "будемо "+base_1+"вати"+base_2 + } ; + P2 => table { + Sg => "будеш "+base_1+"вати"+base_2 ; + Pl => "будете "+base_1+"вати"+base_2 + } ; + P3 => table { + Sg => "буде "+base_1+"вати"+base_2 ; + Pl => "будуть "+base_1+"вати"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо"+base_2 ; + imperative2 = table { + Sg => base_1+"й"+base_2 ; + Pl => base_1+"йте"+base_2 + } ; + infinitive = base_1+"вати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"вав"+base_2 ; + Pl => base_1+"вали"+base_2 + } ; + Fem => table { + Sg => base_1+"вала"+base_2 ; + Pl => base_1+"вали"+base_2 + } ; + Neuter => table { + Sg => base_1+"вало"+base_2 ; + Pl => base_1+"вали"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV159" + } ; + +mkV160 : Str -> V ; +mkV160 base = + case base of { + "с"+base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "с"+base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "c"+base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "c"+base_1+"ім"+base_2 ; + imperative2 = table { + Sg => "c"+base_1+"и"+base_2 ; + Pl => "c"+base_1+"іть"+base_2 + } ; + infinitive = "с"+base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => "c"+base_1+"ив"+base_2 ; + Pl => "c"+base_1+"или"+base_2 + } ; + Fem => table { + Sg => "c"+base_1+"ила"+base_2 ; + Pl => "c"+base_1+"или"+base_2 + } ; + Neuter => table { + Sg => "c"+base_1+"ило"+base_2 ; + Pl => "c"+base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV160" + } ; + +mkV161 : Str -> V ; +mkV161 base = + case base of { + base_1+"ікти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ікти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ікти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"очім" ; + imperative2 = table { + Sg => base_1+"очи" ; + Pl => base_1+"очіть" + } ; + infinitive = base_1+"ікти" ; + participle = table { + Masc => table { + Sg => base_1+"ок" ; + Pl => base_1+"окли" + } ; + Fem => table { + Sg => base_1+"окла" ; + Pl => base_1+"окли" + } ; + Neuter => table { + Sg => base_1+"окло" ; + Pl => base_1+"окли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV161" + } ; + +mkV162 : Str -> V ; +mkV162 base = + case base of { + base_1+"огти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"огти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"огти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ожім"+base_2 ; + imperative2 = table { + Sg => base_1+"ожи"+base_2 ; + Pl => base_1+"ожіть"+base_2 + } ; + infinitive = base_1+"огти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"іг"+base_2 ; + Pl => base_1+"огли"+base_2 + } ; + Fem => table { + Sg => base_1+"огла"+base_2 ; + Pl => base_1+"огли"+base_2 + } ; + Neuter => table { + Sg => base_1+"огло"+base_2 ; + Pl => base_1+"огли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV162" + } ; + +mkV163 : Str -> V ; +mkV163 base = + case base of { + base_1+"о"+base_2@?+"ти"+base_3@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"ти"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"о"+base_2+"ти"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"о"+base_2+"тім"+base_3 ; + imperative2 = table { + Sg => base_1+"о"+base_2+"ти"+base_3 ; + Pl => base_1+"о"+base_2+"тіть"+base_3 + } ; + infinitive = base_1+"о"+base_2+"ти"+base_3 ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2+base_3 ; + Pl => base_1+"о"+base_2+"ли"+base_3 + } ; + Fem => table { + Sg => base_1+"о"+base_2+"ла"+base_3 ; + Pl => base_1+"о"+base_2+"ли"+base_3 + } ; + Neuter => table { + Sg => base_1+"о"+base_2+"ло"+base_3 ; + Pl => base_1+"о"+base_2+"ли"+base_3 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV163" + } ; + +mkV164 : Str -> V ; +mkV164 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"тий" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV164" + } ; + +mkV165 : Str -> V ; +mkV165 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"є" ; --guessed + Pl => base_1+"ють" --guessed + } + } + } ; + Perf => { Past = base_1+"лий" ; --guessed + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дьмо" ; + imperative2 = table { + Sg => base_1+"дь" ; + Pl => base_1+"дьте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV165" + } ; + +mkV166 : Str -> V ; +mkV166 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"им"+base_2 + } ; + P2 => table { + Sg => base_1+"иш"+base_2 ; + Pl => base_1+"ите"+base_2 + } ; + P3 => table { + Sg => base_1+"ить"+base_2 ; + Pl => base_1+"ать"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV166" + } ; + +mkV167 : Str -> V ; +mkV167 base = + case base of { + base_1+"огти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"огти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"огти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ожмо" ; + imperative2 = table { + Sg => base_1+"ож" ; + Pl => base_1+"ожте" + } ; + infinitive = base_1+"огти" ; + participle = table { + Masc => table { + Sg => base_1+"іг" ; + Pl => base_1+"огли" + } ; + Fem => table { + Sg => base_1+"огла" ; + Pl => base_1+"огли" + } ; + Neuter => table { + Sg => base_1+"огло" ; + Pl => base_1+"огли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV167" + } ; + +mkV168 : Str -> V ; +mkV168 base = + case base of { + base_1+"нути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"нути" ; + participle = table { + Masc => table { + Sg => base_1+"нув" ; + Pl => base_1+"нули" + } ; + Fem => table { + Sg => base_1+"нула" ; + Pl => base_1+"нули" + } ; + Neuter => table { + Sg => base_1+"нуло" ; + Pl => base_1+"нули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV168" + } ; + +mkV169 : Str -> V ; +mkV169 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім"+base_2 ; + imperative2 = table { + Sg => base_1+"ни"+base_2 ; + Pl => base_1+"ніть"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"нув"+base_2 ; + Pl => base_1+"нули"+base_2 + } ; + Fem => table { + Sg => base_1+"нула"+base_2 ; + Pl => base_1+"нули"+base_2 + } ; + Neuter => table { + Sg => base_1+"нуло"+base_2 ; + Pl => base_1+"нули"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV169" + } ; + +mkV170 : Str -> V ; +mkV170 base = + case base of { + base_1+"сти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дім"+base_2 ; + imperative2 = table { + Sg => base_1+"ди"+base_2 ; + Pl => base_1+"діть"+base_2 + } ; + infinitive = base_1+"сти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"в"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV170" + } ; + +mkV171 : Str -> V ; +mkV171 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"яти"+base_2 ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV171" + } ; + +mkV172 : Str -> V ; +mkV172 base = + case base of { + base_1+"тіти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тіти" ; + Pl => base_1+"очем" + } ; + P2 => table { + Sg => base_1+"очеш" ; + Pl => base_1+"очете" + } ; + P3 => table { + Sg => base_1+"оче" ; + Pl => base_1+"очуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"отім" ; + imperative2 = table { + Sg => base_1+"оти" ; + Pl => base_1+"отіть" + } ; + infinitive = base_1+"тіти" ; + participle = table { + Masc => table { + Sg => base_1+"тів" ; + Pl => base_1+"тіли" + } ; + Fem => table { + Sg => base_1+"тіла" ; + Pl => base_1+"тіли" + } ; + Neuter => table { + Sg => base_1+"тіло" ; + Pl => base_1+"тіли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV172" + } ; + +mkV173 : Str -> V ; +mkV173 base = + case base of { + base_1+"зати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жім"+base_2 ; + imperative2 = table { + Sg => base_1+"жи"+base_2 ; + Pl => base_1+"жіть"+base_2 + } ; + infinitive = base_1+"зати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"зав"+base_2 ; + Pl => base_1+"зали"+base_2 + } ; + Fem => table { + Sg => base_1+"зала"+base_2 ; + Pl => base_1+"зали"+base_2 + } ; + Neuter => table { + Sg => base_1+"зало"+base_2 ; + Pl => base_1+"зали"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV173" + } ; + +mkV174 : Str -> V ; +mkV174 base = + case base of { + base_1+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати" ; + Pl => base_1+"аєм" + } ; + P2 => table { + Sg => base_1+"аєш" ; + Pl => base_1+"аєте" + } ; + P3 => table { + Sg => base_1+"ає" ; + Pl => base_1+"ають" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"аймо" ; + imperative2 = table { + Sg => base_1+"ай" ; + Pl => base_1+"айте" + } ; + infinitive = base_1+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ав" ; + Pl => base_1+"али" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"али" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV174" + } ; + +mkV175 : Str -> V ; +mkV175 base = + case base of { + base_1+"ягти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ягти" ; + Pl => base_1+"яжем" + } ; + P2 => table { + Sg => base_1+"яжеш" ; + Pl => base_1+"яжете" + } ; + P3 => table { + Sg => base_1+"яже" ; + Pl => base_1+"яжуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ягти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"яжім" ; + imperative2 = table { + Sg => base_1+"яжи" ; + Pl => base_1+"яжіть" + } ; + infinitive = base_1+"ягти" ; + participle = table { + Masc => table { + Sg => base_1+"іг" ; + Pl => base_1+"ягли" + } ; + Fem => table { + Sg => base_1+"ягла" ; + Pl => base_1+"ягли" + } ; + Neuter => table { + Sg => base_1+"ягло" ; + Pl => base_1+"ягли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"яжений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"яжений" + } + } + }; + _ => error "Can't apply paradigm mkV175" + } ; + +mkV176 : Str -> V ; +mkV176 base = + case base of { + base_1+"і"+base_2@?+base_3@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+base_2+"те"+base_3+"ім" ; + imperative2 = table { + Sg => base_1+base_2+"те"+base_3+"и" ; + Pl => base_1+base_2+"те"+base_3+"іть" + } ; + infinitive = base_1+"і"+base_2+base_3+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2+base_3+"ав" ; + Pl => base_1+"і"+base_2+base_3+"али" + } ; + Fem => table { + Sg => base_1+"і"+base_2+base_3+"ала" ; + Pl => base_1+"і"+base_2+base_3+"али" + } ; + Neuter => table { + Sg => base_1+"і"+base_2+base_3+"ало" ; + Pl => base_1+"і"+base_2+base_3+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"і"+base_2+base_3+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV176" + } ; + +mkV177 : Str -> V ; +mkV177 base = + case base of { + base_1+"іти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ать" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; --guessed + imperative2 = table { + Sg => base_1+"ь" ; --guessed + Pl => base_1+"ьте" --guessed + } ; + infinitive = base_1+"іти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жений" --guessed + } + } + }; + _ => error "Can't apply paradigm mkV177" + } ; + +mkV178 : Str -> V ; +mkV178 base = + case base of { + base_1+"і"+base_2@?+base_3@?+"ати"+base_4@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати"+base_4 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"і"+base_2+base_3+"ати"+base_4 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"о"+base_2+"е"+base_3+"ім"+base_4 ; + imperative2 = table { + Sg => base_1+"о"+base_2+"е"+base_3+"и"+base_4 ; + Pl => base_1+"о"+base_2+"е"+base_3+"іть"+base_4 + } ; + infinitive = base_1+"і"+base_2+base_3+"ати"+base_4 ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2+base_3+"ав"+base_4 ; + Pl => base_1+"і"+base_2+base_3+"али"+base_4 + } ; + Fem => table { + Sg => base_1+"і"+base_2+base_3+"ала"+base_4 ; + Pl => base_1+"і"+base_2+base_3+"али"+base_4 + } ; + Neuter => table { + Sg => base_1+"і"+base_2+base_3+"ало"+base_4 ; + Pl => base_1+"і"+base_2+base_3+"али"+base_4 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV178" + } ; + +mkV179 : Str -> V ; +mkV179 base = + case base of { + base_1+"яти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"імім"+base_2 ; + imperative2 = table { + Sg => base_1+"іми"+base_2 ; + Pl => base_1+"іміть"+base_2 + } ; + infinitive = base_1+"яти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"яв"+base_2 ; + Pl => base_1+"яли"+base_2 + } ; + Fem => table { + Sg => base_1+"яла"+base_2 ; + Pl => base_1+"яли"+base_2 + } ; + Neuter => table { + Sg => base_1+"яло"+base_2 ; + Pl => base_1+"яли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV179" + } ; + +mkV180 : Str -> V ; +mkV180 base = + case base of { + base_1+"ити"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити"+base_2 ; + Pl => base_1+"им"+base_2 + } ; + P2 => table { + Sg => base_1+"иш"+base_2 ; + Pl => base_1+"ите"+base_2 + } ; + P3 => table { + Sg => base_1+"ить"+base_2 ; + Pl => base_1+"ять"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "зо"+base_1+"ити"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо"+base_2 ; + imperative2 = table { + Sg => base_1+base_2 ; + Pl => base_1+"те"+base_2 + } ; + infinitive = base_1+"ити"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ив"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Fem => table { + Sg => base_1+"ила"+base_2 ; + Pl => base_1+"или"+base_2 + } ; + Neuter => table { + Sg => base_1+"ило"+base_2 ; + Pl => base_1+"или"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV180" + } ; + +mkV181 : Str -> V ; +mkV181 base = + case base of { + base_1+"нути" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"нете" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуть" + } + } + } ; + Perf => { Past = base_1+"лий" ; + Pres = table { + P1 => table { + Sg => base_1+"нути" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ньмо" ; + imperative2 = table { + Sg => base_1+"нь" ; + Pl => base_1+"ньте" + } ; + infinitive = base_1+"нути" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV181" + } ; + +mkV182 : Str -> V ; +mkV182 base = + case base of { + "м"+base_1+"лити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "м"+base_1+"лити" ; + Pl => "н"+base_1+"жем" + } ; + P2 => table { + Sg => "н"+base_1+"жеш" ; + Pl => "н"+base_1+"жете" + } ; + P3 => table { + Sg => "н"+base_1+"же" ; + Pl => "н"+base_1+"жуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "н"+base_1+"жім" ; + imperative2 = table { + Sg => "н"+base_1+"жи" ; + Pl => "н"+base_1+"жіть" + } ; + infinitive = "м"+base_1+"лити" ; + participle = table { + Masc => table { + Sg => "н"+base_1+"зав" ; + Pl => "н"+base_1+"зали" + } ; + Fem => table { + Sg => "н"+base_1+"зала" ; + Pl => "н"+base_1+"зали" + } ; + Neuter => table { + Sg => "н"+base_1+"зало" ; + Pl => "н"+base_1+"зали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "н"+base_1+"заний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV182" + } ; + +mkV183 : Str -> V ; +mkV183 base = + case base of { + base_1+"е"+base_2@?+"ти"+base_3@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ти"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ти"+base_3 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"е"+base_2+"ім"+base_3 ; + imperative2 = table { + Sg => base_1+"е"+base_2+"и"+base_3 ; + Pl => base_1+"е"+base_2+"іть"+base_3 + } ; + infinitive = base_1+"е"+base_2+"ти"+base_3 ; + participle = table { + Masc => table { + Sg => base_1+"і"+base_2+base_3 ; + Pl => base_1+"е"+base_2+"ли"+base_3 + } ; + Fem => table { + Sg => base_1+"е"+base_2+"ла"+base_3 ; + Pl => base_1+"е"+base_2+"ли"+base_3 + } ; + Neuter => table { + Sg => base_1+"е"+base_2+"ло"+base_3 ; + Pl => base_1+"е"+base_2+"ли"+base_3 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV183" + } ; + +mkV184 : Str -> V ; +mkV184 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => base_1+"нем"+base_2 + } ; + P2 => table { + Sg => base_1+"неш"+base_2 ; + Pl => base_1+"нете"+base_2 + } ; + P3 => table { + Sg => base_1+"неть"+base_2 ; + Pl => base_1+"нуть"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; --guessed + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім"+base_2 ; + imperative2 = table { + Sg => base_1+"ни"+base_2 ; + Pl => base_1+"ніть"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV184" + } ; + +mkV185 : Str -> V ; +mkV185 base = + case base of { + base_1+"сти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => base_1+"тем" + } ; + P2 => table { + Sg => base_1+"теш" ; + Pl => base_1+"тете" + } ; + P3 => table { + Sg => base_1+"те" ; + Pl => base_1+"туть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"тім" ; + imperative2 = table { + Sg => base_1+"ти" ; + Pl => base_1+"тіть" + } ; + infinitive = base_1+"сти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV185" + } ; + +mkV186 : Str -> V ; +mkV186 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => base_1+"нем"+base_2 --guessed + } ; + P2 => table { + Sg => base_1+"неш"+base_2 ; --guessed + Pl => base_1+"нете"+base_2 --guessed + } ; + P3 => table { + Sg => base_1+"неть"+base_2 ; --guessed + Pl => base_1+"нуть"+base_2 --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; --guessed + imperative2 = table { + Sg => base_1+"и"+base_2 ; --guessed + Pl => base_1+"іть"+base_2 --guessed + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV186" + } ; + +mkV187 : Str -> V ; +mkV187 base = + case base of { + base_1+"ати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"мо"+base_2 ; + imperative2 = table { + Sg => base_1+base_2 ; + Pl => base_1+"те"+base_2 + } ; + infinitive = base_1+"ати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ав"+base_2 ; + Pl => base_1+"али"+base_2 + } ; + Fem => table { + Sg => base_1+"ала"+base_2 ; + Pl => base_1+"али"+base_2 + } ; + Neuter => table { + Sg => base_1+"ало"+base_2 ; + Pl => base_1+"али"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV187" + } ; + +mkV188 : Str -> V ; +mkV188 base = + case base of { + base_1+"тати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"тати" ; + Pl => base_1+"чем" + } ; + P2 => table { + Sg => base_1+"чеш" ; + Pl => base_1+"чете" + } ; + P3 => table { + Sg => base_1+"че" ; + Pl => base_1+"чуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"чмо" ; + imperative2 = table { + Sg => base_1+"ч" ; + Pl => base_1+"чте" + } ; + infinitive = base_1+"тати" ; + participle = table { + Masc => table { + Sg => base_1+"тав" ; + Pl => base_1+"тали" + } ; + Fem => table { + Sg => base_1+"тала" ; + Pl => base_1+"тали" + } ; + Neuter => table { + Sg => base_1+"тало" ; + Pl => base_1+"тали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"таний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV188" + } ; + +mkV189 : Str -> V ; +mkV189 base = + case base of { + base_1+"кти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"кти" ; + Pl => base_1+"чем" + } ; + P2 => table { + Sg => base_1+"чеш" ; + Pl => base_1+"чете" + } ; + P3 => table { + Sg => base_1+"че" ; + Pl => base_1+"чуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"кти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"чім" ; + imperative2 = table { + Sg => base_1+"чи" ; + Pl => base_1+"чіть" + } ; + infinitive = base_1+"кти" ; + participle = table { + Masc => table { + Sg => base_1+"к" ; + Pl => base_1+"кли" + } ; + Fem => table { + Sg => base_1+"кла" ; + Pl => base_1+"кли" + } ; + Neuter => table { + Sg => base_1+"кло" ; + Pl => base_1+"кли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"чений" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"чений" + } + } + }; + _ => error "Can't apply paradigm mkV189" + } ; + +mkV190 : Str -> V ; +mkV190 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"нете" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"нув" ; + Pl => base_1+"нули" + } ; + Fem => table { + Sg => base_1+"нула" ; + Pl => base_1+"нули" + } ; + Neuter => table { + Sg => base_1+"нуло" ; + Pl => base_1+"нули" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"нений" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV190" + } ; + +mkV191 : Str -> V ; +mkV191 base = + case base of { + base_1+"ести"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ести"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ести"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"едім"+base_2 ; + imperative2 = table { + Sg => base_1+"еди"+base_2 ; + Pl => base_1+"едіть"+base_2 + } ; + infinitive = base_1+"ести"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ів"+base_2 ; + Pl => base_1+"ели"+base_2 + } ; + Fem => table { + Sg => base_1+"ела"+base_2 ; + Pl => base_1+"ели"+base_2 + } ; + Neuter => table { + Sg => base_1+"ело"+base_2 ; + Pl => base_1+"ели"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV191" + } ; + +mkV192 : Str -> V ; +mkV192 base = + case base of { + base_1+"віти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ріти" ; + Pl => base_1+"рим" + } ; + P2 => table { + Sg => base_1+"риш" ; + Pl => base_1+"рите" + } ; + P3 => table { + Sg => base_1+"рить" ; + Pl => base_1+"рять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"рім" ; + imperative2 = table { + Sg => base_1+"ри" ; + Pl => base_1+"ріть" + } ; + infinitive = base_1+"віти" ; + participle = table { + Masc => table { + Sg => base_1+"рів" ; + Pl => base_1+"ріли" + } ; + Fem => table { + Sg => base_1+"ріла" ; + Pl => base_1+"ріли" + } ; + Neuter => table { + Sg => base_1+"ріло" ; + Pl => base_1+"ріли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV192" + } ; + +mkV193 : Str -> V ; +mkV193 base = + case base of { + base_1+"сти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"жмо"+base_2 ; + imperative2 = table { + Sg => base_1+"ж"+base_2 ; + Pl => base_1+"жте"+base_2 + } ; + infinitive = base_1+"сти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"в"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV193" + } ; + +mkV194 : Str -> V ; +mkV194 base = + case base of { + base_1+"ити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ити" ; + Pl => "будемо "+base_1+"ити" + } ; + P2 => table { + Sg => "будеш "+base_1+"ити" ; + Pl => "будете "+base_1+"ити" + } ; + P3 => table { + Sg => "буде "+base_1+"ити" ; + Pl => "будуть "+base_1+"ити" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ьмо" ; + imperative2 = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьте" + } ; + infinitive = base_1+"ити" ; + participle = table { + Masc => table { + Sg => base_1+"ив" ; + Pl => base_1+"или" + } ; + Fem => table { + Sg => base_1+"ила" ; + Pl => base_1+"или" + } ; + Neuter => table { + Sg => base_1+"ило" ; + Pl => base_1+"или" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV194" + } ; + +mkV195 : Str -> V ; +mkV195 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV195" + } ; + +mkV196 : Str -> V ; +mkV196 base = + case base of { + base_1+"іти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"ете" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"іти" ; + participle = table { + Masc => table { + Sg => base_1+"ів" ; + Pl => base_1+"іли" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"іли" + } ; + Neuter => table { + Sg => base_1+"іло" ; + Pl => base_1+"іли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV196" + } ; + +mkV197 : Str -> V ; +mkV197 base = + case base of { + "повилазити" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "повилазити" ; + Pl => "or collective subject representing all" + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "повилазити" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "повилазьмо" ; + imperative2 = table { + Sg => nonExist ; + Pl => "повилазьте" + } ; + infinitive = "повилазити" ; + participle = table { + Masc => table { + Sg => "повилазив" ; + Pl => "повилазили" + } ; + Fem => table { + Sg => "повилазила" ; + Pl => "повилазили" + } ; + Neuter => table { + Sg => "повилазило" ; + Pl => "повилазили" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV197" + } ; + +mkV198 : Str -> V ; +mkV198 base = + case base of { + base_1+base_2@?+"йняти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"йняти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"йняти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"н"+base_2+"мім" ; + imperative2 = table { + Sg => base_1+"н"+base_2+"ми" ; + Pl => base_1+"н"+base_2+"міть" + } ; + infinitive = base_1+base_2+"йняти" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"йняв" ; + Pl => base_1+base_2+"йняли" + } ; + Fem => table { + Sg => base_1+base_2+"йняла" ; + Pl => base_1+base_2+"йняли" + } ; + Neuter => table { + Sg => base_1+base_2+"йняло" ; + Pl => base_1+base_2+"йняли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV198" + } ; + +mkV199 : Str -> V ; +mkV199 base = + case base of { + base_1+"у"+base_2@(?+?)+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"у"+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => "буде "+base_1+"у"+base_2+"ти" ; + Pl => "будуть "+base_1+"у"+base_2+"ти" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = nonExist ; + imperative2 = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = base_1+"у"+base_2+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"у"+base_2+"в" ; + Pl => base_1+"у"+base_2+"ли" + } ; + Fem => table { + Sg => base_1+"у"+base_2+"ла" ; + Pl => base_1+"у"+base_2+"ли" + } ; + Neuter => table { + Sg => base_1+"у"+base_2+"ло" ; + Pl => base_1+"у"+base_2+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"ний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV199" + } ; + +mkV200 : Str -> V ; +mkV200 base = + case base of { + base_1+"ймати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ймати"+base_2 ; + Pl => base_1+"ймаєм"+base_2 + } ; + P2 => table { + Sg => base_1+"ймаєш"+base_2 ; + Pl => base_1+"ймаєте"+base_2 + } ; + P3 => table { + Sg => base_1+"ймаєть"+base_2 ; + Pl => base_1+"ймають"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"няти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймаймо"+base_2 ; + imperative2 = table { + Sg => base_1+"ймай"+base_2 ; + Pl => base_1+"ймайте"+base_2 + } ; + infinitive = base_1+"ймати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ймав"+base_2 ; + Pl => base_1+"ймали"+base_2 + } ; + Fem => table { + Sg => base_1+"ймала"+base_2 ; + Pl => base_1+"ймали"+base_2 + } ; + Neuter => table { + Sg => base_1+"ймало"+base_2 ; + Pl => base_1+"ймали"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV200" + } ; + +mkV201 : Str -> V ; +mkV201 base = + case base of { + base_1+"стати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"стати" ; + Pl => base_1+"щем" + } ; + P2 => table { + Sg => base_1+"щеш" ; + Pl => base_1+"щете" + } ; + P3 => table { + Sg => base_1+"ще" ; + Pl => base_1+"щуть" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"щім" ; + imperative2 = table { + Sg => base_1+"щи" ; + Pl => base_1+"щіть" + } ; + infinitive = base_1+"стати" ; + participle = table { + Masc => table { + Sg => base_1+"став" ; + Pl => base_1+"стали" + } ; + Fem => table { + Sg => base_1+"стала" ; + Pl => base_1+"стали" + } ; + Neuter => table { + Sg => base_1+"стало" ; + Pl => base_1+"стали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV201" + } ; + +mkV202 : Str -> V ; +mkV202 base = + case base of { + base_1+"ти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти"+base_2 ; + Pl => "будемо "+base_1+"ти"+base_2 + } ; + P2 => table { + Sg => "будеш "+base_1+"ти"+base_2 ; + Pl => "будете "+base_1+"ти"+base_2 + } ; + P3 => table { + Sg => "буде "+base_1+"ти"+base_2 ; + Pl => "будуть "+base_1+"ти"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо"+base_2 ; + imperative2 = table { + Sg => base_1+"й"+base_2 ; + Pl => base_1+"йте"+base_2 + } ; + infinitive = base_1+"ти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"в"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV202" + } ; + +mkV203 : Str -> V ; +mkV203 base = + case base of { + base_1+"їтися" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"їти" ; + Pl => base_1+"їмся" + } ; + P2 => table { + Sg => base_1+"їшся" ; + Pl => base_1+"їтеся" + } ; + P3 => table { + Sg => base_1+"їться" ; + Pl => base_1+"яться" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"їмся" ; + imperative2 = table { + Sg => base_1+"їся" ; + Pl => base_1+"їться" + } ; + infinitive = base_1+"їтися" ; + participle = table { + Masc => table { + Sg => base_1+"ївся" ; + Pl => base_1+"їлися" + } ; + Fem => table { + Sg => base_1+"їлася" ; + Pl => base_1+"їлися" + } ; + Neuter => table { + Sg => base_1+"їлося" ; + Pl => base_1+"їлися" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV203" + } ; + +mkV204 : Str -> V ; +mkV204 base = + case base of { + base_1+"іти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім"+base_2 ; + imperative2 = table { + Sg => base_1+"и"+base_2 ; + Pl => base_1+"іть"+base_2 + } ; + infinitive = base_1+"іти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ів"+base_2 ; + Pl => base_1+"іли"+base_2 + } ; + Fem => table { + Sg => base_1+"іла"+base_2 ; + Pl => base_1+"іли"+base_2 + } ; + Neuter => table { + Sg => base_1+"іло"+base_2 ; + Pl => base_1+"іли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV204" + } ; + +mkV205 : Str -> V ; +mkV205 base = + case base of { + "впісят"+base_1+"сь" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "впісят"+base_1+"сь" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "заб"+base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "заб"+base_1+"ймо" ; + imperative2 = table { + Sg => "заб"+base_1+"й" ; + Pl => "заб"+base_1+"йте" + } ; + infinitive = "впісят"+base_1+"сь" ; + participle = table { + Masc => table { + Sg => "заб"+base_1+"в" ; + Pl => "заб"+base_1+"ли" + } ; + Fem => table { + Sg => "заб"+base_1+"ла" ; + Pl => "заб"+base_1+"ли" + } ; + Neuter => table { + Sg => "заб"+base_1+"ло" ; + Pl => "заб"+base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "заб"+base_1+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV205" + } ; + +mkV206 : Str -> V ; +mkV206 base = + case base of { + base_1+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яти" ; + Pl => base_1+"им" + } ; + P2 => table { + Sg => base_1+"иш" ; + Pl => base_1+"ите" + } ; + P3 => table { + Sg => base_1+"ить" ; + Pl => base_1+"ять" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"яти" ; + participle = table { + Masc => table { + Sg => base_1+"яв" ; + Pl => base_1+"яли" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"яли" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV206" + } ; + +mkV207 : Str -> V ; +mkV207 base = + case base of { + "в"+base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "в"+base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = "у"+base_1+"лий" ; + Pres = table { + P1 => table { + Sg => "в"+base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "в"+base_1+"ймо" ; + imperative2 = table { + Sg => "в"+base_1+"й" ; + Pl => "в"+base_1+"йте" + } ; + infinitive = "в"+base_1+"ти" ; + participle = table { + Masc => table { + Sg => "в"+base_1+"в" ; + Pl => "в"+base_1+"ли" + } ; + Fem => table { + Sg => "в"+base_1+"ла" ; + Pl => "в"+base_1+"ли" + } ; + Neuter => table { + Sg => "в"+base_1+"ло" ; + Pl => "в"+base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV207" + } ; + +mkV208 : Str -> V ; +mkV208 base = + case base of { + base_1+"хати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хати"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дьмо"+base_2 ; + imperative2 = table { + Sg => nonExist ; + Pl => base_1+"дьте"+base_2 + } ; + infinitive = base_1+"хати"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"хав"+base_2 ; + Pl => base_1+"хали"+base_2 + } ; + Fem => table { + Sg => base_1+"хала"+base_2 ; + Pl => base_1+"хали"+base_2 + } ; + Neuter => table { + Sg => base_1+"хало"+base_2 ; + Pl => base_1+"хали"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV208" + } ; + +mkV209 : Str -> V ; +mkV209 base = + case base of { + base_1+base_2@?+"яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"і"+base_2+"нім" ; + imperative2 = table { + Sg => base_1+"і"+base_2+"ни" ; + Pl => base_1+"і"+base_2+"ніть" + } ; + infinitive = base_1+base_2+"яти" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"яв" ; + Pl => base_1+base_2+"яли" + } ; + Fem => table { + Sg => base_1+base_2+"яла" ; + Pl => base_1+base_2+"яли" + } ; + Neuter => table { + Sg => base_1+base_2+"яло" ; + Pl => base_1+base_2+"яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+base_2+"ятий" + } + } + }; + _ => error "Can't apply paradigm mkV209" + } ; + +mkV210 : Str -> V ; +mkV210 base = + case base of { + base_1+"екти"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"екти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"екти"+base_2 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ечім"+base_2 ; + imperative2 = table { + Sg => base_1+"ечи"+base_2 ; + Pl => base_1+"ечіть"+base_2 + } ; + infinitive = base_1+"екти"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+"ік"+base_2 ; + Pl => base_1+"екли"+base_2 + } ; + Fem => table { + Sg => base_1+"екла"+base_2 ; + Pl => base_1+"екли"+base_2 + } ; + Neuter => table { + Sg => base_1+"екло"+base_2 ; + Pl => base_1+"екли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV210" + } ; + +mkV211 : Str -> V ; +mkV211 base = + case base of { + base_1+"ві"+base_2@?+base_3@?+"ати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ві"+base_2+base_3+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ві"+base_2+base_3+"ати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+base_2+"е"+base_3+"ім" ; + imperative2 = table { + Sg => base_1+base_2+"е"+base_3+"и" ; + Pl => base_1+base_2+"е"+base_3+"іть" + } ; + infinitive = base_1+"ві"+base_2+base_3+"ати" ; + participle = table { + Masc => table { + Sg => base_1+"ві"+base_2+base_3+"ав" ; + Pl => base_1+"ві"+base_2+base_3+"али" + } ; + Fem => table { + Sg => base_1+"ві"+base_2+base_3+"ала" ; + Pl => base_1+"ві"+base_2+base_3+"али" + } ; + Neuter => table { + Sg => base_1+"ві"+base_2+base_3+"ало" ; + Pl => base_1+"ві"+base_2+base_3+"али" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ві"+base_2+base_3+"аний" + } + } + }; + _ => error "Can't apply paradigm mkV211" + } ; + +mkV212 : Str -> V ; +mkV212 base = + case base of { + base_1+"нути"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нути"+base_2 ; + Pl => base_1+"нем"+base_2 + } ; + P2 => table { + Sg => base_1+"неш"+base_2 ; + Pl => base_1+"нете"+base_2 + } ; + P3 => table { + Sg => base_1+"неть"+base_2 ; + Pl => base_1+"нуть"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім"+base_2 ; + imperative2 = table { + Sg => base_1+"ни"+base_2 ; + Pl => base_1+"ніть"+base_2 + } ; + infinitive = base_1+"нути"+base_2 ; + participle = table { + Masc => table { + Sg => base_1+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Fem => table { + Sg => base_1+"ла"+base_2 ; + Pl => base_1+"ли"+base_2 + } ; + Neuter => table { + Sg => base_1+"ло"+base_2 ; + Pl => base_1+"ли"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV212" + } ; + +mkV213 : Str -> V ; +mkV213 base = + case base of { + base_1+"ід"+base_2@(?+?+?+?)+"вати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ід"+base_2+"вати" ; + Pl => base_1+"ри"+base_2+"єм" + } ; + P2 => table { + Sg => base_1+"ри"+base_2+"єш" ; + Pl => base_1+"ри"+base_2+"єте" + } ; + P3 => table { + Sg => base_1+"ри"+base_2+"є" ; + Pl => base_1+"ри"+base_2+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ри"+base_2+"ймо" ; + imperative2 = table { + Sg => base_1+"ри"+base_2+"й" ; + Pl => base_1+"ри"+base_2+"йте" + } ; + infinitive = base_1+"ід"+base_2+"вати" ; + participle = table { + Masc => table { + Sg => base_1+"ри"+base_2+"вав" ; + Pl => base_1+"ри"+base_2+"вали" + } ; + Fem => table { + Sg => base_1+"ри"+base_2+"вала" ; + Pl => base_1+"ри"+base_2+"вали" + } ; + Neuter => table { + Sg => base_1+"ри"+base_2+"вало" ; + Pl => base_1+"ри"+base_2+"вали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV213" + } ; + +mkV214 : Str -> V ; +mkV214 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"дім" ; + imperative2 = table { + Sg => base_1+"ди" ; + Pl => base_1+"діть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"тий" + } + } + }; + _ => error "Can't apply paradigm mkV214" + } ; + +mkV215 : Str -> V ; +mkV215 base = + case base of { + base_1+base_2@?+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = nonExist ; + imperative2 = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = base_1+base_2+"ти" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"в" ; + Pl => base_1+base_2+"ли" + } ; + Fem => table { + Sg => base_1+base_2+"ла" ; + Pl => base_1+base_2+"ли" + } ; + Neuter => table { + Sg => base_1+base_2+"ло" ; + Pl => base_1+base_2+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ен"+base_2+"й" + } + } + }; + _ => error "Can't apply paradigm mkV215" + } ; + +mkV216 : Str -> V ; +mkV216 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ім" ; + imperative2 = table { + Sg => base_1+"и" ; + Pl => base_1+"іть" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ений" + } + } + }; + _ => error "Can't apply paradigm mkV216" + } ; + +mkV217 : Str -> V ; +mkV217 base = + case base of { + base_1+"'яти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"'яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"'яти" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"нім" ; + imperative2 = table { + Sg => base_1+"ни" ; + Pl => base_1+"ніть" + } ; + infinitive = base_1+"'яти" ; + participle = table { + Masc => table { + Sg => base_1+"'яв" ; + Pl => base_1+"'яли" + } ; + Fem => table { + Sg => base_1+"'яла" ; + Pl => base_1+"'яли" + } ; + Neuter => table { + Sg => base_1+"'яло" ; + Pl => base_1+"'яли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"'ятий" + } + } + }; + _ => error "Can't apply paradigm mkV217" + } ; + +mkV218 : Str -> V ; +mkV218 base = + case base of { + base_1+"вати" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати • pf випростувати" ; + Pl => base_1+"єм" + } ; + P2 => table { + Sg => base_1+"єш" ; + Pl => base_1+"єте" + } ; + P3 => table { + Sg => base_1+"є" ; + Pl => base_1+"ють" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вати" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"вати" ; + participle = table { + Masc => table { + Sg => base_1+"вав" ; + Pl => base_1+"вали" + } ; + Fem => table { + Sg => base_1+"вала" ; + Pl => base_1+"вали" + } ; + Neuter => table { + Sg => base_1+"вало" ; + Pl => base_1+"вали" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ваний" + } + } + }; + _ => error "Can't apply paradigm mkV218" + } ; + +mkV219 : Str -> V ; +mkV219 base = + case base of { + base_1+"ти" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ти" ; + Pl => "будемо "+base_1+"ти" + } ; + P2 => table { + Sg => "будеш "+base_1+"ти" ; + Pl => "будете "+base_1+"ти" + } ; + P3 => table { + Sg => "буде "+base_1+"ти" ; + Pl => "будуть "+base_1+"ти" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = base_1+"ймо" ; + imperative2 = table { + Sg => base_1+"й" ; + Pl => base_1+"йте" + } ; + infinitive = base_1+"ти" ; + participle = table { + Masc => table { + Sg => base_1+"в" ; + Pl => base_1+"ли" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"ли" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"ли" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ний" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV219" + } ; + +mkV220 : Str -> V ; +mkV220 base = + case base of { + "г"+base_1+"ати"+base_2@(?+?) => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "г"+base_1+"ати"+base_2 ; + Pl => "же"+base_1+"ем"+base_2 + } ; + P2 => table { + Sg => "же"+base_1+"еш"+base_2 ; + Pl => "же"+base_1+"ете"+base_2 + } ; + P3 => table { + Sg => "же"+base_1+"еть"+base_2 ; + Pl => "же"+base_1+"уть"+base_2 + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative1 = "же"+base_1+"ім"+base_2 ; + imperative2 = table { + Sg => "же"+base_1+"и"+base_2 ; + Pl => "же"+base_1+"іть"+base_2 + } ; + infinitive = "г"+base_1+"ати"+base_2 ; + participle = table { + Masc => table { + Sg => "г"+base_1+"ав"+base_2 ; + Pl => "г"+base_1+"али"+base_2 + } ; + Fem => table { + Sg => "г"+base_1+"ала"+base_2 ; + Pl => "г"+base_1+"али"+base_2 + } ; + Neuter => table { + Sg => "г"+base_1+"ало"+base_2 ; + Pl => "г"+base_1+"али"+base_2 + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV220" + } ; + +mkA001 : Str -> A ; +mkA001 base = + case base of { + base_1+"ий" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ий" ; + GSg Fem => base_1+"а" ; + GSg Neuter => base_1+"е" ; + GPl => base_1+"і" + } ; + Acc => table { + GSg Masc => base_1+"ого" ; + GSg Fem => base_1+"у" ; + GSg Neuter => base_1+"е" ; + GPl => base_1+"их" + } ; + Dat => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ому" ; + GPl => base_1+"им" + } ; + Gen => table { + GSg Fem => base_1+"ої" ; + GSg _ => base_1+"ого" ; + GPl => base_1+"их" + } ; + Loc => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ому" ; + GPl => base_1+"их" + } ; + Instr => table { + GSg Fem => base_1+"ою" ; + GSg _ => base_1+"им" ; + GPl => base_1+"ими" + } + } + }; + _ => error "Can't apply paradigm mkA001" + } ; + +mkA002 : Str -> A ; +mkA002 base = + case base of { + base_1 => lin A + { s = table { + Nom => table { + GSg Masc => base_1 ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => nonExist + } ; + Acc => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => nonExist + } ; + Dat => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => nonExist + } ; + Gen => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => nonExist + } ; + Loc => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => nonExist + } ; + Instr => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkA002" + } ; + +mkA003 : Str -> A ; +mkA003 base = + case base of { + base_1+"ій" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ій" ; + GSg Fem => base_1+"я" ; + GSg Neuter => base_1+"є" ; + GPl => base_1+"і" + } ; + Acc => table { + GSg Masc => base_1+"ього" ; + GSg Fem => base_1+"ю" ; + GSg Neuter => base_1+"є" ; + GPl => base_1+"іх" + } ; + Dat => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ьому" ; + GPl => base_1+"ім" + } ; + Gen => table { + GSg Fem => base_1+"ьої" ; + GSg _ => base_1+"ього" ; + GPl => base_1+"іх" + } ; + Loc => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ьому" ; + GPl => base_1+"іх" + } ; + Instr => table { + GSg Fem => base_1+"ьою" ; + GSg _ => base_1+"ім" ; + GPl => base_1+"іми" + } + } + }; + _ => error "Can't apply paradigm mkA003" + } ; + +mkA004 : Str -> A ; +mkA004 base = + case base of { + base_1+"їй" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"їй" ; + GSg Fem => base_1+"я" ; + GSg Neuter => base_1+"є" ; + GPl => base_1+"ї" + } ; + Acc => table { + GSg Masc => base_1+"його" ; + GSg Fem => base_1+"ю" ; + GSg Neuter => base_1+"є" ; + GPl => base_1+"їх" + } ; + Dat => table { + GSg Fem => base_1+"їй" ; + GSg _ => base_1+"йому" ; + GPl => base_1+"їм" + } ; + Gen => table { + GSg Fem => base_1+"йої" ; + GSg _ => base_1+"його" ; + GPl => base_1+"їх" + } ; + Loc => table { + GSg Fem => base_1+"їй" ; + GSg _ => base_1+"йому" ; + GPl => base_1+"їх" + } ; + Instr => table { + GSg Fem => base_1+"йою" ; + GSg _ => base_1+"їм" ; + GPl => base_1+"їми" + } + } + }; + _ => error "Can't apply paradigm mkA004" + } ; + +mkA005 : Str -> A ; +mkA005 base = + case base of { + base_1+"ий" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ий" ; + GSg Fem => base_1+"я" ; + GSg Neuter => base_1+"е" ; + GPl => base_1+"і" + } ; + Acc => table { + GSg Masc => base_1+"ього" ; + GSg Fem => base_1+"ю" ; + GSg Neuter => base_1+"е" ; + GPl => base_1+"их" + } ; + Dat => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ьому" ; + GPl => base_1+"им" + } ; + Gen => table { + GSg Fem => base_1+"ьої" ; + GSg _ => base_1+"ього" ; + GPl => base_1+"их" + } ; + Loc => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ьому" ; + GPl => base_1+"их" + } ; + Instr => table { + GSg Fem => base_1+"ьою" ; + GSg _ => base_1+"им" ; + GPl => base_1+"ими" + } + } + }; + _ => error "Can't apply paradigm mkA005" + } ; + +mkA006 : Str -> A ; +mkA006 base = + case base of { + "не"+base_1+"ий" => lin A + { s = table { + Nom => table { + GSg Masc => "не"+base_1+"ий" ; + GSg Fem => base_1+"а" ; + GSg Neuter => base_1+"е" ; + GPl => base_1+"і" + } ; + Acc => table { + GSg Masc => base_1+"ого" ; + GSg Fem => base_1+"у" ; + GSg Neuter => base_1+"е" ; + GPl => base_1+"их" + } ; + Dat => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ому" ; + GPl => base_1+"им" + } ; + Gen => table { + GSg Fem => base_1+"ої" ; + GSg _ => base_1+"ого" ; + GPl => base_1+"их" + } ; + Loc => table { + GSg Fem => base_1+"ій" ; + GSg _ => base_1+"ому" ; + GPl => base_1+"их" + } ; + Instr => table { + GSg Fem => base_1+"ою" ; + GSg _ => base_1+"им" ; + GPl => base_1+"ими" + } + } + }; + _ => error "Can't apply paradigm mkA006" + } ; + +mkA008 : Str -> A ; +mkA008 base = + case base of { + base_1+"ий"+base_2@(?+?+?+?+?)+"ий" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ий"+base_2+"ий" ; + GSg Fem => base_1+"а"+base_2+"а" ; + GSg Neuter => base_1+"е"+base_2+"е" ; + GPl => base_1+"і"+base_2+"і" + } ; + Acc => table { + GSg Masc => base_1+"ого"+base_2+"ого" ; + GSg Fem => base_1+"у"+base_2+"у" ; + GSg Neuter => base_1+"е"+base_2+"е" ; + GPl => base_1+"их"+base_2+"их" + } ; + Dat => table { + GSg Fem => base_1+"ій"+base_2+"ій" ; + GSg _ => base_1+"ому"+base_2+"ому" ; + GPl => base_1+"им"+base_2+"им" + } ; + Gen => table { + GSg Fem => base_1+"ої"+base_2+"ої" ; + GSg _ => base_1+"ого"+base_2+"ого" ; + GPl => base_1+"их"+base_2+"их" + } ; + Loc => table { + GSg Fem => base_1+"ій"+base_2+"ій" ; + GSg _ => base_1+"ому"+base_2+"ому" ; + GPl => base_1+"их"+base_2+"их" + } ; + Instr => table { + GSg Fem => base_1+"ою"+base_2+"ою" ; + GSg Neuter => base_1+"им"+base_2+"им" ; + GPl => base_1+"ими"+base_2+"ими" + } + } + }; + _ => error "Can't apply paradigm mkA008" + } ; + +mkA009 : Str -> A ; +mkA009 base = + case base of { + base_1+"ь"+base_2@?+"ий" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ь"+base_2+"ий" ; + GSg Fem => base_1+base_2+"а" ; + GSg Neuter => base_1+base_2+"е" ; + GPl => base_1+base_2+"і" + } ; + Acc => table { + GSg Masc => base_1+base_2+"ого" ; + GSg Fem => base_1+base_2+"у" ; + GSg Neuter => base_1+base_2+"е" ; + GPl => base_1+base_2+"их" + } ; + Dat => table { + GSg Fem => base_1+base_2+"ій" ; + GSg _ => base_1+base_2+"ому" ; + GPl => base_1+base_2+"им" + } ; + Gen => table { + GSg Fem => base_1+base_2+"ої" ; + GSg _ => base_1+base_2+"ого" ; + GPl => base_1+base_2+"их" + } ; + Loc => table { + GSg Fem => base_1+base_2+"ій" ; + GSg _ => base_1+base_2+"ому" ; + GPl => base_1+base_2+"их" + } ; + Instr => table { + GSg Fem => base_1+base_2+"ою" ; + GSg _ => base_1+base_2+"им" ; + GPl => base_1+base_2+"ими" + } + } + }; + _ => error "Can't apply paradigm mkA009" + } ; + +mkA011 : Str -> A ; +mkA011 base = + case base of { + base_1+"яс"+base_2@?+"ий" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"яс"+base_2+"ий" ; + GSg Fem => "че"+base_1+"во"+base_2+"а" ; + GSg Neuter => "че"+base_1+"во"+base_2+"е" ; + GPl => "че"+base_1+"во"+base_2+"і" + } ; + Acc => table { + GSg Masc => "че"+base_1+"во"+base_2+"ого" ; + GSg Fem => "че"+base_1+"во"+base_2+"у" ; + GSg Neuter => "че"+base_1+"во"+base_2+"е" ; + GPl => "че"+base_1+"во"+base_2+"их" + } ; + Dat => table { + GSg Fem => "че"+base_1+"во"+base_2+"ій" ; + GSg _ => "че"+base_1+"во"+base_2+"ому" ; + GPl => "че"+base_1+"во"+base_2+"им" + } ; + Gen => table { + GSg Fem => "че"+base_1+"во"+base_2+"ої" ; + GSg _ => "че"+base_1+"во"+base_2+"ого" ; + GPl => "че"+base_1+"во"+base_2+"их" + } ; + Loc => table { + GSg Fem => "че"+base_1+"во"+base_2+"ій" ; + GSg _ => "че"+base_1+"во"+base_2+"ому" ; + GPl => "че"+base_1+"во"+base_2+"их" + } ; + Instr => table { + GSg Fem => "че"+base_1+"во"+base_2+"ою" ; + GSg _ => "че"+base_1+"во"+base_2+"им" ; + GPl => "че"+base_1+"во"+base_2+"ими" + } + } + }; + _ => error "Can't apply paradigm mkA011" + } ; +} diff --git a/src/ukrainian/NounUkr.gf b/src/ukrainian/NounUkr.gf new file mode 100644 index 00000000..1aaabb1a --- /dev/null +++ b/src/ukrainian/NounUkr.gf @@ -0,0 +1,4 @@ +concrete NounUkr of Noun = CatUkr ** { +--lin +-- UseN n = n ; +} diff --git a/src/ukrainian/ParadigmsUkr.gf b/src/ukrainian/ParadigmsUkr.gf new file mode 100644 index 00000000..4fd51f78 --- /dev/null +++ b/src/ukrainian/ParadigmsUkr.gf @@ -0,0 +1,1331 @@ +resource ParadigmsUkr = MorphoUkr ** open Predef, Prelude, CatUkr, ResUkr in { +oper + regN : Str -> N -- s;Nom;Sg + = \form -> case form of { + _ + "ака" => mkN022 form; + _ + "ека" => mkN022 form; + _ + "яка" => mkN022 form; + _ + "ика" => mkN022 form; + _ + "іка" => mkN022 form; + _ + "юка" => mkN022 form; + _ + "їка" => mkN002 form; + _ + "рка" => mkN038 form; + _ + "йка" => mkN038 form; + _ + "тка" => mkN038 form; + _ + "ука" => mkN022 form; + _ + "ока" => mkN022 form; + _ + "гра" => mkN006 form; + _ + "пла" => mkN003 form; + _ + "тла" => mkN130 form; + _ + "еша" => mkN003 form; + _ + "иша" => mkN178 form; + _ + "чма" => mkN130 form; + _ + "їта" => mkN003 form; + _ + "хуа" => mkN063 form; + _ + "гва" => mkN042 form; + _ + "шва" => mkN042 form; + _ + "сна" => mkN130 form; + _ + "ьна" => mkN281 form; + _ + "оха" => mkN098 form; + _ + "ега" => mkN101 form; + _ + "вча" => mkN055 form; + _ + "нча" => mkN055 form; + _ + "еща" => mkN087 form; + _ + "іща" => mkN151 form; + _ + "аща" => mkN193 form; + _ + "хаз" => mkN023 form; + _ + "лаз" => mkN023 form; + _ + "баз" => mkN029 form; + _ + "таз" => mkN029 form; + _ + "газ" => mkN029 form; + _ + "паз" => mkN050 form; + _ + "воз" => mkN029 form; + _ + "ооз" => mkN063 form; + _ + "ліз" => mkN031 form; + _ + "кіз" => mkN023 form; + _ + "цуз" => mkN023 form; + _ + "ауз" => mkN023 form; + _ + "гуз" => mkN023 form; + _ + "муз" => mkN031 form; + _ + "рас" => mkN023 form; + _ + "рос" => mkN023 form; + _ + "аос" => mkN031 form; + _ + "тос" => mkN031 form; + _ + "мос" => mkN031 form; + _ + "гос" => mkN031 form; + _ + "фос" => mkN031 form; + _ + "пос" => mkN050 form; + _ + "лус" => mkN012 form; + _ + "зус" => mkN031 form; + _ + "гус" => mkN031 form; + _ + "сис" => mkN029 form; + _ + "ніс" => mkN029 form; + _ + "ряс" => mkN023 form; + _ + "ьєф" => mkN003 form; + _ + "льф" => mkN003 form; + _ + "роф" => mkN029 form; + _ + "орф" => mkN031 form; + _ + "ерф" => mkN049 form; + _ + "аон" => mkN023 form; + _ + "вон" => mkN031 form; + _ + "пон" => mkN171 form; + _ + "еан" => mkN003 form; + _ + "ман" => mkN003 form; + _ + "тан" => mkN003 form; + _ + "лан" => mkN003 form; + _ + "іан" => mkN012 form; + _ + "цан" => mkN023 form; + _ + "ґан" => mkN050 form; + _ + "зин" => mkN031 form; + _ + "чин" => mkN003 form; + _ + "тин" => mkN003 form; + _ + "мин" => mkN003 form; + _ + "дин" => mkN023 form; + _ + "син" => mkN023 form; + _ + "вин" => mkN023 form; + _ + "лин" => mkN031 form; + _ + "мен" => mkN023 form; + _ + "зен" => mkN023 form; + _ + "сен" => mkN031 form; + _ + "фен" => mkN031 form; + _ + "вен" => mkN184 form; + _ + "жен" => mkN184 form; + _ + "ерн" => mkN003 form; + _ + "'ян" => mkN003 form; + _ + "ґун" => mkN003 form; + _ + "зун" => mkN012 form; + _ + "дун" => mkN023 form; + _ + "оун" => mkN023 form; + _ + "мун" => mkN023 form; + _ + "рун" => mkN023 form; + _ + "уїн" => mkN012 form; + _ + "нод" => mkN029 form; + _ + "код" => mkN029 form; + _ + "ярд" => mkN029 form; + _ + "орд" => mkN171 form; + _ + "дуд" => mkN012 form; + _ + "суд" => mkN031 form; + _ + "пид" => mkN023 form; + _ + "лід" => mkN092 form; + _ + "дід" => mkN004 form; + _ + "узд" => mkN031 form; + _ + "ізд" => mkN181 form; + _ + "еїд" => mkN031 form; + _ + "люд" => mkN012 form; + _ + "вед" => mkN023 form; + _ + "лот" => mkN023 form; + _ + "мот" => mkN012 form; + _ + "іот" => mkN023 form; + _ + "зот" => mkN031 form; + _ + "рат" => mkN023 form; + _ + "дат" => mkN023 form; + _ + "бат" => mkN023 form; + _ + "пат" => mkN023 form; + _ + "еат" => mkN023 form; + _ + "чет" => mkN012 form; + _ + "оет" => mkN023 form; + _ + "гет" => mkN171 form; + _ + "ірт" => mkN031 form; + _ + "іфт" => mkN171 form; + _ + "юст" => mkN029 form; + _ + "рст" => mkN029 form; + _ + "унт" => mkN029 form; + _ + "инт" => mkN029 form; + _ + "йнт" => mkN029 form; + _ + "ійт" => mkN023 form; + _ + "цит" => mkN171 form; + _ + "лит" => mkN023 form; + _ + "сит" => mkN023 form; + _ + "бит" => mkN023 form; + _ + "рут" => mkN023 form; + _ + "кут" => mkN012 form; + _ + "бут" => mkN031 form; + _ + "жут" => mkN031 form; + _ + "лют" => mkN031 form; + _ + "олт" => mkN029 form; + _ + "уїт" => mkN023 form; + _ + "гир" => mkN282 form; + _ + "дир" => mkN029 form; + _ + "тир" => mkN056 form; + _ + "бир" => mkN031 form; + _ + "зир" => mkN056 form; + _ + "бар" => mkN056 form; + _ + "уар" => mkN003 form; + _ + "рар" => mkN003 form; + _ + "лар" => mkN029 form; + _ + "гар" => mkN056 form; + _ + "оар" => mkN029 form; + _ + "ґар" => mkN056 form; + _ + "фар" => mkN056 form; + _ + "атр" => mkN003 form; + _ + "итр" => mkN003 form; + _ + "дор" => mkN003 form; + _ + "фор" => mkN003 form; + _ + "хор" => mkN003 form; + _ + "мор" => mkN029 form; + _ + "зор" => mkN029 form; + _ + "пор" => mkN029 form; + _ + "лор" => mkN031 form; + _ + "кор" => mkN031 form; + _ + "ьор" => mkN031 form; + _ + "жор" => mkN050 form; + _ + "гор" => mkN157 form; + _ + "кер" => mkN029 form; + _ + "вер" => mkN029 form; + _ + "зер" => mkN029 form; + _ + "фер" => mkN029 form; + _ + "бер" => mkN184 form; + _ + "ґер" => mkN312 form; + _ + "убр" => mkN012 form; + _ + "тур" => mkN003 form; + _ + "жур" => mkN029 form; + _ + "мур" => mkN003 form; + _ + "чур" => mkN012 form; + _ + "бур" => mkN029 form; + _ + "хур" => mkN029 form; + _ + "зур" => mkN029 form; + _ + "лур" => mkN031 form; + _ + "мір" => mkN003 form; + _ + "нір" => mkN003 form; + _ + "фір" => mkN031 form; + _ + "кір" => mkN003 form; + _ + "лір" => mkN029 form; + _ + "чір" => mkN092 form; + _ + "хір" => mkN181 form; + _ + "дір" => mkN238 form; + _ + "евр" => mkN003 form; + _ + "идр" => mkN031 form; + _ + "цяр" => mkN003 form; + _ + "'яр" => mkN031 form; + _ + "уал" => mkN023 form; + _ + "рал" => mkN023 form; + _ + "пал" => mkN029 form; + _ + "кал" => mkN029 form; + _ + "шал" => mkN023 form; + _ + "жал" => mkN029 form; + _ + "сал" => mkN029 form; + _ + "гал" => mkN029 form; + _ + "мол" => mkN031 form; + _ + "гол" => mkN029 form; + _ + "дол" => mkN023 form; + _ + "пол" => mkN029 form; + _ + "бол" => mkN031 form; + _ + "лол" => mkN031 form; + _ + "хол" => mkN157 form; + _ + "сол" => mkN088 form; + _ + "зол" => mkN157 form; + _ + "тел" => mkN029 form; + _ + "кел" => mkN029 form; + _ + "вел" => mkN029 form; + _ + "пел" => mkN029 form; + _ + "зел" => mkN034 form; + _ + "сел" => mkN208 form; + _ + "дел" => mkN184 form; + _ + "філ" => mkN023 form; + _ + "біл" => mkN023 form; + _ + "тіл" => mkN092 form; + _ + "віл" => mkN103 form; + _ + "кіл" => mkN159 form; + _ + "піл" => mkN201 form; + _ + "сул" => mkN023 form; + _ + "вул" => mkN023 form; + _ + "цул" => mkN023 form; + _ + "дил" => mkN012 form; + _ + "пил" => mkN029 form; + _ + "рил" => mkN029 form; + _ + "тил" => mkN031 form; + _ + "дем" => mkN029 form; + _ + "тем" => mkN063 form; + _ + "арм" => mkN023 form; + _ + "рям" => mkN003 form; + _ + "айм" => mkN029 form; + _ + "рім" => mkN103 form; + _ + "тюм" => mkN029 form; + _ + "рип" => mkN031 form; + _ + "коп" => mkN029 form; + _ + "топ" => mkN029 form; + _ + "руп" => mkN029 form; + _ + "реп" => mkN029 form; + _ + "неп" => mkN029 form; + _ + "ліп" => mkN029 form; + _ + "ніп" => mkN092 form; + _ + "таб" => mkN003 form; + _ + "либ" => mkN003 form; + _ + "руб" => mkN012 form; + _ + "моб" => mkN003 form; + _ + "арб" => mkN003 form; + _ + "рац" => mkN029 form; + _ + "тив" => mkN171 form; + _ + "лів" => mkN103 form; + _ + "рів" => mkN187 form; + _ + "ков" => mkN029 form; + _ + "ров" => mkN049 form; + _ + "бов" => mkN049 form; + _ + "угу" => mkN063 form; + _ + "тро" => mkN006 form; + _ + "єро" => mkN003 form; + _ + "юро" => mkN006 form; + _ + "дро" => mkN070 form; + _ + "ьпо" => mkN006 form; + _ + "ано" => mkN006 form; + _ + "ино" => mkN006 form; + _ + "нно" => mkN006 form; + _ + "кно" => mkN119 form; + _ + "дно" => mkN070 form; + _ + "рно" => mkN070 form; + _ + "зно" => mkN070 form; + _ + "пно" => mkN078 form; + _ + "мно" => mkN078 form; + _ + "вно" => mkN078 form; + _ + "шно" => mkN084 form; + _ + "гно" => mkN176 form; + _ + "вто" => mkN006 form; + _ + "ото" => mkN006 form; + _ + "ато" => mkN006 form; + _ + "нто" => mkN063 form; + _ + "ето" => mkN113 form; + _ + "аго" => mkN015 form; + _ + "псо" => mkN063 form; + _ + "ясо" => mkN084 form; + _ + "ізо" => mkN006 form; + _ + "гво" => mkN209 form; + _ + "імо" => mkN006 form; + _ + "ихо" => mkN091 form; + _ + "ель" => mkN058 form; + _ + "аль" => mkN093 form; + _ + "йль" => mkN065 form; + _ + "юль" => mkN065 form; + _ + "яць" => mkN025 form; + _ + "єць" => mkN164 form; + _ + "унь" => mkN030 form; + _ + "знь" => mkN061 form; + _ + "ань" => mkN142 form; + _ + "онь" => mkN142 form; + _ + "інь" => mkN219 form; + _ + "инь" => mkN142 form; + _ + "ждь" => mkN058 form; + _ + "дзь" => mkN030 form; + _ + "рзь" => mkN058 form; + _ + "взь" => mkN058 form; + _ + "усь" => mkN058 form; + _ + "ись" => mkN290 form; + _ + "есь" => mkN290 form; + _ + "уть" => mkN040 form; + _ + "ать" => mkN040 form; + _ + "ють" => mkN040 form; + _ + "еть" => mkN040 form; + _ + "єть" => mkN058 form; + _ + "рть" => mkN061 form; + _ + "іть" => mkN392 form; + _ + "оне" => mkN003 form; + _ + "оле" => mkN045 form; + _ + "оре" => mkN045 form; + _ + "еже" => mkN006 form; + _ + "ьце" => mkN305 form; + _ + "ямі" => mkN063 form; + _ + "іті" => mkN003 form; + _ + "сті" => mkN344 form; + _ + "брі" => mkN003 form; + _ + "абі" => mkN003 form; + _ + "мбі" => mkN003 form; + _ + "аці" => mkN003 form; + _ + "иці" => mkN241 form; + _ + "рці" => mkN250 form; + _ + "нкі" => mkN003 form; + _ + "ікі" => mkN063 form; + _ + "оні" => mkN003 form; + _ + "ані" => mkN063 form; + _ + "ьні" => mkN344 form; + _ + "йні" => mkN352 form; + _ + "ілі" => mkN006 form; + _ + "плі" => mkN250 form; + _ + "очі" => mkN006 form; + _ + "ові" => mkN352 form; + _ + "ваш" => mkN067 form; + _ + "маш" => mkN085 form; + _ + "уаш" => mkN121 form; + _ + "тиш" => mkN067 form; + _ + "ниш" => mkN067 form; + _ + "риш" => mkN085 form; + _ + "биш" => mkN085 form; + _ + "міш" => mkN121 form; + _ + "рош" => mkN017 form; + _ + "дзя" => mkN003 form; + _ + "езя" => mkN120 form; + _ + "мля" => mkN039 form; + _ + "фля" => mkN039 form; + _ + "пля" => mkN039 form; + _ + "бля" => mkN039 form; + _ + "вля" => mkN039 form; + _ + "шля" => mkN039 form; + _ + "оля" => mkN046 form; + _ + "лля" => mkN204 form; + _ + "аля" => mkN083 form; + _ + "рля" => mkN151 form; + _ + "гля" => mkN151 form; + _ + "сля" => mkN234 form; + _ + "шня" => mkN039 form; + _ + "рня" => mkN039 form; + _ + "тня" => mkN039 form; + _ + "сня" => mkN046 form; + _ + "вня" => mkN039 form; + _ + "хня" => mkN077 form; + _ + "зня" => mkN039 form; + _ + "чня" => mkN046 form; + _ + "дня" => mkN039 form; + _ + "йня" => mkN046 form; + _ + "оня" => mkN072 form; + _ + "пня" => mkN046 form; + _ + "ьня" => mkN076 form; + _ + "гня" => mkN151 form; + _ + "еня" => mkN151 form; + _ + "аня" => mkN072 form; + _ + "уня" => mkN072 form; + _ + "иня" => mkN083 form; + _ + "юня" => mkN072 form; + _ + "кня" => mkN077 form; + _ + "їня" => mkN083 form; + _ + "ень" => mkN005 form; + _ + "еря" => mkN337 form; + _ + "іря" => mkN151 form; + _ + "тря" => mkN204 form; + _ + "дря" => mkN207 form; + _ + "иця" => mkN083 form; + _ + "оця" => mkN083 form; + _ + "итя" => mkN055 form; + _ + "отя" => mkN083 form; + _ + "утя" => mkN120 form; + _ + "б'я" => mkN055 form; + _ + "п'я" => mkN055 form; + _ + "ося" => mkN083 form; + _ + "уся" => mkN135 form; + _ + "адя" => mkN169 form; + _ + "здя" => mkN235 form; + _ + "нок" => mkN026 form; + _ + "шок" => mkN026 form; + _ + "ияк" => mkN004 form; + _ + "'як" => mkN018 form; + _ + "ляк" => mkN036 form; + _ + "няк" => mkN036 form; + _ + "ояк" => mkN019 form; + _ + "ьяк" => mkN036 form; + _ + "вяк" => mkN075 form; + _ + "вік" => mkN019 form; + _ + "лік" => mkN036 form; + _ + "тік" => mkN173 form; + _ + "дик" => mkN018 form; + _ + "цик" => mkN082 form; + _ + "рак" => mkN019 form; + _ + "шак" => mkN018 form; + _ + "нак" => mkN036 form; + _ + "лак" => mkN036 form; + _ + "дак" => mkN019 form; + _ + "вак" => mkN019 form; + _ + "хак" => mkN036 form; + _ + "сак" => mkN082 form; + _ + "как" => mkN082 form; + _ + "нук" => mkN004 form; + _ + "еук" => mkN004 form; + _ + "чук" => mkN004 form; + _ + "шук" => mkN036 form; + _ + "рук" => mkN036 form; + _ + "сук" => mkN018 form; + _ + "оук" => mkN019 form; + _ + "щук" => mkN019 form; + _ + "гук" => mkN036 form; + _ + "бек" => mkN004 form; + _ + "тек" => mkN004 form; + _ + "дек" => mkN004 form; + _ + "нюк" => mkN004 form; + _ + "люк" => mkN004 form; + _ + "цюк" => mkN018 form; + _ + "юск" => mkN082 form; + _ + "овк" => mkN018 form; + _ + "овх" => mkN003 form; + _ + "шах" => mkN004 form; + _ + "зах" => mkN004 form; + _ + "тах" => mkN082 form; + _ + "дух" => mkN011 form; + _ + "бух" => mkN011 form; + _ + "жух" => mkN134 form; + _ + "них" => mkN004 form; + _ + "лох" => mkN004 form; + _ + "арх" => mkN004 form; + _ + "ріх" => mkN011 form; + _ + "вях" => mkN011 form; + _ + "лех" => mkN011 form; + _ + "тюх" => mkN011 form; + _ + "люх" => mkN134 form; + _ + "мли" => mkN003 form; + _ + "іди" => mkN006 form; + _ + "уди" => mkN051 form; + _ + "іни" => mkN051 form; + _ + "уси" => mkN051 form; + _ + "лки" => mkN195 form; + _ + "ьки" => mkN256 form; + _ + "тки" => mkN256 form; + _ + "чки" => mkN345 form; + _ + "иги" => mkN195 form; + _ + "ати" => mkN195 form; + _ + "узи" => mkN195 form; + _ + "ари" => mkN195 form; + _ + "дог" => mkN011 form; + _ + "рог" => mkN043 form; + _ + "бог" => mkN043 form; + _ + "раг" => mkN043 form; + _ + "ерг" => mkN011 form; + _ + "тег" => mkN004 form; + _ + "рег" => mkN004 form; + _ + "онг" => mkN011 form; + _ + "луг" => mkN011 form; + _ + "чуг" => mkN011 form; + _ + "ряг" => mkN043 form; + _ + "сяг" => mkN094 form; + _ + "лоч" => mkN111 form; + _ + "пач" => mkN009 form; + _ + "кач" => mkN067 form; + _ + "рич" => mkN009 form; + _ + "нич" => mkN017 form; + _ + "лич" => mkN111 form; + _ + "'яч" => mkN067 form; + _ + "руч" => mkN067 form; + _ + "ндж" => mkN009 form; + _ + "риж" => mkN192 form; + _ + "єрж" => mkN081 form; + _ + "орж" => mkN167 form; + _ + "заґ" => mkN011 form; + _ + "гай" => mkN037 form; + _ + "цай" => mkN037 form; + _ + "фай" => mkN066 form; + _ + "дай" => mkN066 form; + _ + "рей" => mkN037 form; + _ + "дей" => mkN037 form; + _ + "жей" => mkN037 form; + _ + "гой" => mkN037 form; + _ + "бой" => mkN037 form; + _ + "жій" => mkN037 form; + _ + "шій" => mkN066 form; + _ + "кій" => mkN230 form; + _ + "кий" => mkN138 form; + _ + "ка" => mkN007 form; + _ + "ша" => mkN060 form; + _ + "оа" => mkN006 form; + _ + "уа" => mkN006 form; + _ + "іа" => mkN006 form; + _ + "юа" => mkN006 form; + _ + "ха" => mkN062 form; + _ + "га" => mkN033 form; + _ + "ча" => mkN060 form; + _ + "жа" => mkN060 form; + _ + "ща" => mkN060 form; + _ + "ґа" => mkN358 form; + _ + "оз" => mkN031 form; + _ + "ез" => mkN031 form; + _ + "із" => mkN029 form; + _ + "уз" => mkN029 form; + _ + "дз" => mkN023 form; + _ + "яз" => mkN029 form; + _ + "ас" => mkN029 form; + _ + "ос" => mkN029 form; + _ + "кс" => mkN029 form; + _ + "ус" => mkN029 form; + _ + "іс" => mkN031 form; + _ + "пс" => mkN029 form; + _ + "яс" => mkN029 form; + _ + "юс" => mkN023 form; + _ + "єс" => mkN031 form; + _ + "іф" => mkN029 form; + _ + "иф" => mkN003 form; + _ + "єф" => mkN029 form; + _ + "уф" => mkN003 form; + _ + "рф" => mkN029 form; + _ + "йф" => mkN031 form; + _ + "мф" => mkN050 form; + _ + "он" => mkN003 form; + _ + "ин" => mkN136 form; + _ + "ен" => mkN003 form; + _ + "ян" => mkN171 form; + _ + "йн" => mkN031 form; + _ + "мн" => mkN003 form; + _ + "тн" => mkN003 form; + _ + "їн" => mkN031 form; + _ + "вн" => mkN023 form; + _ + "юн" => mkN031 form; + _ + "ід" => mkN103 form; + _ + "їд" => mkN023 form; + _ + "юд" => mkN031 form; + _ + "ед" => mkN029 form; + _ + "от" => mkN029 form; + _ + "ат" => mkN029 form; + _ + "ет" => mkN029 form; + _ + "ст" => mkN023 form; + _ + "нт" => mkN023 form; + _ + "йт" => mkN029 form; + _ + "пт" => mkN029 form; + _ + "ут" => mkN029 form; + _ + "ят" => mkN023 form; + _ + "вт" => mkN023 form; + _ + "хт" => mkN031 form; + _ + "чт" => mkN031 form; + _ + "ар" => mkN035 form; + _ + "тр" => mkN029 form; + _ + "нр" => mkN003 form; + _ + "бр" => mkN003 form; + _ + "ір" => mkN103 form; + _ + "єр" => mkN029 form; + _ + "др" => mkN029 form; + _ + "яр" => mkN081 form; + _ + "гр" => mkN012 form; + _ + "пр" => mkN012 form; + _ + "юр" => mkN031 form; + _ + "ел" => mkN023 form; + _ + "зл" => mkN029 form; + _ + "гл" => mkN031 form; + _ + "ґл" => mkN031 form; + _ + "йл" => mkN050 form; + _ + "ял" => mkN050 form; + _ + "ем" => mkN003 form; + _ + "тм" => mkN003 form; + _ + "рм" => mkN003 form; + _ + "ам" => mkN029 form; + _ + "ьм" => mkN003 form; + _ + "йм" => mkN003 form; + _ + "єм" => mkN003 form; + _ + "ім" => mkN029 form; + _ + "їм" => mkN023 form; + _ + "юм" => mkN050 form; + _ + "фм" => mkN029 form; + _ + "лм" => mkN050 form; + _ + "оп" => mkN023 form; + _ + "ап" => mkN023 form; + _ + "рп" => mkN029 form; + _ + "лп" => mkN029 form; + _ + "іп" => mkN103 form; + _ + "йп" => mkN031 form; + _ + "тп" => mkN063 form; + _ + "пп" => mkN063 form; + _ + "аб" => mkN023 form; + _ + "об" => mkN023 form; + _ + "юб" => mkN023 form; + _ + "пб" => mkN003 form; + _ + "бб" => mkN006 form; + _ + "іб" => mkN103 form; + _ + "нц" => mkN023 form; + _ + "єц" => mkN029 form; + _ + "иц" => mkN171 form; + _ + "ав" => mkN029 form; + _ + "ов" => mkN099 form; + _ + "ьв" => mkN023 form; + _ + "хв" => mkN023 form; + _ + "йв" => mkN050 form; + _ + "му" => mkN003 form; + _ + "ру" => mkN003 form; + _ + "ду" => mkN063 form; + _ + "чо" => mkN003 form; + _ + "по" => mkN063 form; + _ + "го" => mkN006 form; + _ + "со" => mkN006 form; + _ + "ао" => mkN006 form; + _ + "жо" => mkN006 form; + _ + "іо" => mkN006 form; + _ + "ео" => mkN006 form; + _ + "цо" => mkN006 form; + _ + "бо" => mkN006 form; + _ + "ьо" => mkN006 form; + _ + "хо" => mkN078 form; + _ + "ґо" => mkN078 form; + _ + "ль" => mkN025 form; + _ + "ць" => mkN079 form; + _ + "дь" => mkN106 form; + _ + "зь" => mkN141 form; + _ + "сь" => mkN030 form; + _ + "зе" => mkN003 form; + _ + "не" => mkN006 form; + _ + "ле" => mkN006 form; + _ + "фе" => mkN006 form; + _ + "ме" => mkN006 form; + _ + "те" => mkN006 form; + _ + "ке" => mkN006 form; + _ + "пе" => mkN006 form; + _ + "ре" => mkN006 form; + _ + "се" => mkN006 form; + _ + "ое" => mkN006 form; + _ + "бе" => mkN006 form; + _ + "це" => mkN105 form; + _ + "мі" => mkN006 form; + _ + "ті" => mkN006 form; + _ + "рі" => mkN006 form; + _ + "бі" => mkN006 form; + _ + "ці" => mkN272 form; + _ + "кі" => mkN006 form; + _ + "ні" => mkN272 form; + _ + "сі" => mkN006 form; + _ + "лі" => mkN272 form; + _ + "зі" => mkN006 form; + _ + "фі" => mkN006 form; + _ + "ві" => mkN063 form; + _ + "ді" => mkN400 form; + _ + "рш" => mkN067 form; + _ + "іш" => mkN166 form; + _ + "уш" => mkN067 form; + _ + "ош" => mkN067 form; + _ + "ьш" => mkN069 form; + _ + "вш" => mkN322 form; + _ + "йя" => mkN003 form; + _ + "зя" => mkN204 form; + _ + "ля" => mkN072 form; + _ + "ня" => mkN204 form; + _ + "ря" => mkN046 form; + _ + "ця" => mkN072 form; + _ + "тя" => mkN204 form; + _ + "'я" => mkN236 form; + _ + "ся" => mkN204 form; + _ + "чя" => mkN165 form; + _ + "дя" => mkN204 form; + _ + "жя" => mkN204 form; + _ + "шя" => mkN204 form; + _ + "ья" => mkN220 form; + _ + "ок" => mkN024 form; + _ + "ік" => mkN004 form; + _ + "ик" => mkN004 form; + _ + "рк" => mkN036 form; + _ + "нк" => mkN036 form; + _ + "йк" => mkN036 form; + _ + "ск" => mkN036 form; + _ + "вк" => mkN036 form; + _ + "лк" => mkN036 form; + _ + "ух" => mkN004 form; + _ + "их" => mkN011 form; + _ + "ли" => mkN195 form; + _ + "ди" => mkN195 form; + _ + "ни" => mkN195 form; + _ + "ви" => mkN256 form; + _ + "'є" => mkN003 form; + _ + "ог" => mkN004 form; + _ + "аг" => mkN011 form; + _ + "рг" => mkN004 form; + _ + "яг" => mkN011 form; + _ + "юг" => mkN054 form; + _ + "рч" => mkN009 form; + _ + "тч" => mkN009 form; + _ + "оч" => mkN009 form; + _ + "еч" => mkN067 form; + _ + "юч" => mkN067 form; + _ + "вч" => mkN231 form; + _ + "рщ" => mkN009 form; + _ + "ощ" => mkN009 form; + _ + "ущ" => mkN155 form; + _ + "ож" => mkN254 form; + _ + "уж" => mkN081 form; + _ + "мж" => mkN081 form; + _ + "рж" => mkN192 form; + _ + "іж" => mkN371 form; + _ + "яґ" => mkN011 form; + _ + "оґ" => mkN082 form; + _ + "уй" => mkN037 form; + _ + "ий" => mkN215 form; + _ + "а" => mkN008 form; + _ + "з" => mkN003 form; + _ + "с" => mkN003 form; + _ + "ф" => mkN023 form; + _ + "н" => mkN029 form; + _ + "д" => mkN003 form; + _ + "т" => mkN003 form; + _ + "р" => mkN023 form; + _ + "л" => mkN003 form; + _ + "м" => mkN031 form; + _ + "п" => mkN003 form; + _ + "б" => mkN029 form; + _ + "ц" => mkN003 form; + _ + "в" => mkN003 form; + _ + "у" => mkN006 form; + _ + "о" => mkN013 form; + _ + "і"+?+?+"ь" => mkN229 form; + _ + "е" => mkN132 form; + _ + "і" => mkN308 form; + _ + "ш" => mkN009 form; + _ + "я" => mkN097 form; + _ + "к" => mkN011 form; + _ + "х" => mkN036 form; + _ + "и" => mkN198 form; + _ + "є" => mkN006 form; + _ + "г" => mkN036 form; + _ + "ю" => mkN006 form; + _ + "ї" => mkN341 form; + _ + "ч" => mkN085 form; + _ + "щ" => mkN067 form; + _ + "ж" => mkN069 form; + _ + "ґ" => mkN036 form; + _ + "й" => mkN016 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2N : Str -> Str -> N -- s;Nom;Sg s;Loc;Sg + = \form1, form2 -> case of { + <_ + "хор", _ + "хрі"> => mkN157 form1; + <_ + "тел", _ + "тлі"> => mkN184 form1; + <_ + "ліз", _ + "озі"> => mkN092 form1; + <_ + "мір", _ + "орі"> => mkN092 form1; + <_ + "лід", _ + "іді"> => mkN003 form1; + <_ + "вер", _ + "врі"> => mkN184 form1; + <_ + "ель", _ + "влю"> => mkN005 form1; + <_ + "ель", _ + "блю"> => mkN005 form1; + <_ + "ель", _ + "злю"> => mkN005 form1; + <_ + "ель", _ + "ґлю"> => mkN005 form1; + <_ + "ель", _ + "длю"> => mkN005 form1; + <_ + "ель", _ + "тлю"> => mkN005 form1; + <_ + "ель", _ + "шлю"> => mkN116 form1; + <_ + "нок", _ + "оку"> => mkN011 form1; + <_ + "гир", _ + "ові"> => mkN017 form1; + <_ + "гол", _ + "глі"> => mkN157 form1; + <_ + "лір", _ + "орі"> => mkN255 form1; + <_ + "бер", _ + "ері"> => mkN029 form1; + <_ + "утя", _ + "яті"> => mkN151 form1; + <_ + "інь", _ + "ені"> => mkN223 form1; + <_ + "атр", _ + "ві"> => mkN023 form1; + <_ + "бар", _ + "ві"> => mkN023 form1; + <_ + "дор", _ + "ві"> => mkN012 form1; + <_ + "ман", _ + "ві"> => mkN023 form1; + <_ + "тан", _ + "ві"> => mkN023 form1; + <_ + "зин", _ + "ві"> => mkN023 form1; + <_ + "лан", _ + "ві"> => mkN012 form1; + <_ + "рут", _ + "ті"> => mkN003 form1; + <_ + "тел", _ + "ві"> => mkN034 form1; + <_ + "уал", _ + "лі"> => mkN003 form1; + <_ + "ерн", _ + "ві"> => mkN023 form1; + <_ + "рат", _ + "ті"> => mkN003 form1; + <_ + "іан", _ + "ні"> => mkN003 form1; + <_ + "рал", _ + "лі"> => mkN003 form1; + <_ + "мір", _ + "ві"> => mkN023 form1; + <_ + "кер", _ + "ві"> => mkN023 form1; + <_ + "арм", _ + "мі"> => mkN003 form1; + <_ + "тин", _ + "ві"> => mkN012 form1; + <_ + "лід", _ + "ві"> => mkN023 form1; + <_ + "нір", _ + "ві"> => mkN023 form1; + <_ + "вер", _ + "ві"> => mkN023 form1; + <_ + "мен", _ + "ні"> => mkN029 form1; + <_ + "льф", _ + "ві"> => mkN023 form1; + <_ + "рег", _ + "зі"> => mkN054 form1; + <_ + "ель", _ + "лі"> => mkN093 form1; + <_ + "лус", _ + "сі"> => mkN029 form1; + <_ + "рук", _ + "ці"> => mkN075 form1; + <_ + "гол", _ + "ві"> => mkN023 form1; + <_ + "дат", _ + "ті"> => mkN029 form1; + <_ + "бат", _ + "ті"> => mkN029 form1; + <_ + "зер", _ + "ві"> => mkN023 form1; + <_ + "гуз", _ + "зі"> => mkN029 form1; + <_ + "рун", _ + "ні"> => mkN029 form1; + <_ + "уїт", _ + "ті"> => mkN029 form1; + <_ + "аль", _ + "ві"> => mkN058 form1; + <_ + "гар", _ + "ві"> => mkN035 form1; + <_ + "бер", _ + "ві"> => mkN034 form1; + <_ + "унь", _ + "ні"> => mkN142 form1; + <_ + "сел", _ + "ві"> => mkN034 form1; + <_ + "рня", _ + "ті"> => mkN151 form1; + <_ + "вля", _ + "ті"> => mkN055 form1; + <_ + "еря", _ + "ті"> => mkN151 form1; + <_ + "оля", _ + "ті"> => mkN151 form1; + <_ + "оня", _ + "ті"> => mkN151 form1; + <_ + "ьня", _ + "ті"> => mkN055 form1; + <_ + "аня", _ + "ті"> => mkN055 form1; + <_ + "аля", _ + "ті"> => mkN055 form1; + <_ + "ося", _ + "ті"> => mkN151 form1; + <_ + "інь", _ + "ві"> => mkN384 form1; + <_ + "кіл", _ + "ві"> => mkN160 form1; + <_ + "яка", _ + "і"> => mkN002 form1; + <_ + "лот", _ + "і"> => mkN003 form1; + <_ + "бар", _ + "і"> => mkN003 form1; + <_ + "ман", _ + "у"> => mkN031 form1; + <_ + "тан", _ + "у"> => mkN031 form1; + <_ + "суд", _ + "і"> => mkN003 form1; + <_ + "зин", _ + "і"> => mkN003 form1; + <_ + "лан", _ + "у"> => mkN031 form1; + <_ + "таб", _ + "у"> => mkN050 form1; + <_ + "чин", _ + "у"> => mkN031 form1; + <_ + "тив", _ + "і"> => mkN029 form1; + <_ + "тел", _ + "і"> => mkN003 form1; + <_ + "топ", _ + "і"> => mkN003 form1; + <_ + "ерн", _ + "у"> => mkN031 form1; + <_ + "рат", _ + "у"> => mkN031 form1; + <_ + "фор", _ + "у"> => mkN031 form1; + <_ + "ліз", _ + "і"> => mkN003 form1; + <_ + "мір", _ + "у"> => mkN031 form1; + <_ + "кер", _ + "у"> => mkN050 form1; + <_ + "арм", _ + "у"> => mkN031 form1; + <_ + "жур", _ + "і"> => mkN003 form1; + <_ + "тин", _ + "у"> => mkN031 form1; + <_ + "пал", _ + "у"> => mkN031 form1; + <_ + "цит", _ + "і"> => mkN003 form1; + <_ + "лід", _ + "у"> => mkN050 form1; + <_ + "мор", _ + "і"> => mkN003 form1; + <_ + "мор", _ + "у"> => mkN031 form1; + <_ + "нір", _ + "у"> => mkN050 form1; + <_ + "фір", _ + "і"> => mkN003 form1; + <_ + "вер", _ + "у"> => mkN031 form1; + <_ + "тро", _ + "і"> => mkN013 form1; + <_ + "тро", _ + "у"> => mkN078 form1; + <_ + "овх", _ + "у"> => mkN036 form1; + <_ + "лак", _ + "і"> => mkN004 form1; + <_ + "шах", _ + "у"> => mkN036 form1; + <_ + "'як", _ + "у"> => mkN011 form1; + <_ + "бек", _ + "у"> => mkN036 form1; + <_ + "лох", _ + "у"> => mkN036 form1; + <_ + "тег", _ + "у"> => mkN036 form1; + <_ + "рак", _ + "у"> => mkN011 form1; + <_ + "арх", _ + "у"> => mkN011 form1; + <_ + "люк", _ + "у"> => mkN011 form1; + <_ + "ляк", _ + "і"> => mkN004 form1; + <_ + "чук", _ + "у"> => mkN011 form1; + <_ + "шак", _ + "у"> => mkN011 form1; + <_ + "дик", _ + "у"> => mkN011 form1; + <_ + "ель", _ + "ю"> => mkN025 form1; + <_ + "юро", _ + "у"> => mkN078 form1; + <_ + "ото", _ + "у"> => mkN128 form1; + <_ + "ато", _ + "і"> => mkN013 form1; + <_ + "ино", _ + "і"> => mkN013 form1; + <_ + "ізо", _ + "і"> => mkN084 form1; + <_ + "нак", _ + "і"> => mkN019 form1; + <_ + "дог", _ + "і"> => mkN082 form1; + <_ + "дак", _ + "у"> => mkN011 form1; + <_ + "няк", _ + "і"> => mkN019 form1; + <_ + "нок", _ + "у"> => mkN253 form1; + <_ + "люд", _ + "у"> => mkN031 form1; + <_ + "кал", _ + "і"> => mkN012 form1; + <_ + "кал", _ + "у"> => mkN031 form1; + <_ + "рос", _ + "у"> => mkN031 form1; + <_ + "мол", _ + "і"> => mkN012 form1; + <_ + "дун", _ + "і"> => mkN012 form1; + <_ + "дун", _ + "у"> => mkN171 form1; + <_ + "кно", _ + "у"> => mkN176 form1; + <_ + "рош", _ + "у"> => mkN067 form1; + <_ + "рук", _ + "і"> => mkN018 form1; + <_ + "овк", _ + "у"> => mkN036 form1; + <_ + "вак", _ + "у"> => mkN114 form1; + <_ + "реп", _ + "у"> => mkN031 form1; + <_ + "зен", _ + "у"> => mkN031 form1; + <_ + "пил", _ + "і"> => mkN023 form1; + <_ + "пил", _ + "у"> => mkN031 form1; + <_ + "шал", _ + "у"> => mkN031 form1; + <_ + "лір", _ + "і"> => mkN023 form1; + <_ + "біл", _ + "у"> => mkN031 form1; + <_ + "рун", _ + "у"> => mkN171 form1; + <_ + "шок", _ + "у"> => mkN036 form1; + <_ + "аль", _ + "ю"> => mkN065 form1; + <_ + "гар", _ + "і"> => mkN029 form1; + <_ + "гар", _ + "у"> => mkN031 form1; + <_ + "бут", _ + "і"> => mkN029 form1; + <_ + "юст", _ + "у"> => mkN171 form1; + <_ + "гал", _ + "у"> => mkN031 form1; + <_ + "ніс", _ + "у"> => mkN031 form1; + <_ + "айм", _ + "у"> => mkN031 form1; + <_ + "ярд", _ + "у"> => mkN171 form1; + <_ + "бур", _ + "у"> => mkN050 form1; + <_ + "инт", _ + "у"> => mkN050 form1; + <_ + "таз", _ + "у"> => mkN031 form1; + <_ + "кор", _ + "і"> => mkN088 form1; + <_ + "гня", _ + "і"> => mkN046 form1; + <_ + "лля", _ + "ю"> => mkN235 form1; + <_ + "ань", _ + "ю"> => mkN065 form1; + <_ + "кий", _ + "ю"> => mkN066 form1; + <_ + "кач", _ + "і"> => mkN085 form1; + <_ + "руч", _ + "і"> => mkN085 form1; + <_ + "хол", _ + "і"> => mkN088 form1; + <_ + "лів", _ + "у"> => mkN171 form1; + <_ + "міш", _ + "у"> => mkN390 form1; + <_ + "онь", _ + "ю"> => mkN222 form1; + <_ + "інь", _ + "і"> => mkN142 form1; + <_ + "єць", _ + "ю"> => mkN396 form1; + <_ + "орж", _ + "у"> => mkN192 form1; + <_ + "ґер", _ + "у"> => mkN171 form1; + <_ + "тік", _ + "і"> => mkN257 form1; + <_ + "піл", _ + "у"> => mkN238 form1; + <_ + "ар", _ + "ові"> => mkN023 form1; + <_ + "ет", _ + "бті"> => mkN184 form1; + <_ + "ет", _ + "цті"> => mkN208 form1; + <_ + "ен", _ + "рні"> => mkN208 form1; + <_ + "ід", _ + "іді"> => mkN003 form1; + <_ + "ід", _ + "іду"> => mkN031 form1; + <_ + "ід", _ + "еду"> => mkN381 form1; + <_ + "яр", _ + "ові"> => mkN023 form1; + <_ + "ір", _ + "ірі"> => mkN029 form1; + <_ + "ір", _ + "ері"> => mkN201 form1; + <_ + "ль", _ + "елю"> => mkN218 form1; + <_ + "ок", _ + "зку"> => mkN253 form1; + <_ + "ок", _ + "тку"> => mkN253 form1; + <_ + "ок", _ + "дку"> => mkN383 form1; + <_ + "ць", _ + "ецю"> => mkN025 form1; + <_ + "ць", _ + "ьцю"> => mkN140 form1; + <_ + "ік", _ + "оку"> => mkN173 form1; + <_ + "нь", _ + "еню"> => mkN025 form1; + <_ + "нь", _ + "гню"> => mkN116 form1; + <_ + "іш", _ + "ішу"> => mkN009 form1; + <_ + "іш", _ + "ешу"> => mkN371 form1; + <_ + "ім", _ + "омі"> => mkN103 form1; + <_ + "іб", _ + "ібі"> => mkN029 form1; + <_ + "іп", _ + "іпі"> => mkN029 form1; + <_ + "ий", _ + "рию"> => mkN037 form1; + <_ + "іж", _ + "іжу"> => mkN192 form1; + <_ + "тя", _ + "стю"> => mkN372 form1; + <_ + "ас", _ + "ві"> => mkN023 form1; + <_ + "он", _ + "ві"> => mkN012 form1; + <_ + "ат", _ + "ві"> => mkN023 form1; + <_ + "ар", _ + "рі"> => mkN029 form1; + <_ + "ет", _ + "ві"> => mkN023 form1; + <_ + "ос", _ + "ві"> => mkN023 form1; + <_ + "от", _ + "ві"> => mkN023 form1; + <_ + "ен", _ + "ві"> => mkN023 form1; + <_ + "нт", _ + "ті"> => mkN003 form1; + <_ + "ус", _ + "ві"> => mkN023 form1; + <_ + "пт", _ + "ві"> => mkN023 form1; + <_ + "тр", _ + "ві"> => mkN023 form1; + <_ + "ут", _ + "ві"> => mkN012 form1; + <_ + "іс", _ + "ві"> => mkN023 form1; + <_ + "іф", _ + "ві"> => mkN023 form1; + <_ + "ід", _ + "ві"> => mkN023 form1; + <_ + "ап", _ + "пі"> => mkN003 form1; + <_ + "яр", _ + "рі"> => mkN029 form1; + <_ + "юб", _ + "бі"> => mkN003 form1; + <_ + "ят", _ + "ті"> => mkN003 form1; + <_ + "їд", _ + "ді"> => mkN029 form1; + <_ + "ір", _ + "ві"> => mkN023 form1; + <_ + "об", _ + "бі"> => mkN029 form1; + <_ + "ль", _ + "ві"> => mkN030 form1; + <_ + "ок", _ + "ці"> => mkN075 form1; + <_ + "ік", _ + "ці"> => mkN257 form1; + <_ + "ух", _ + "сі"> => mkN059 form1; + <_ + "ог", _ + "зі"> => mkN094 form1; + <_ + "рг", _ + "зі"> => mkN054 form1; + <_ + "ин", _ + "ні"> => mkN029 form1; + <_ + "нь", _ + "ні"> => mkN142 form1; + <_ + "ля", _ + "ті"> => mkN151 form1; + <_ + "ож", _ + "ві"> => mkN081 form1; + <_ + "оп", _ + "пі"> => mkN029 form1; + <_ + "аб", _ + "бі"> => mkN029 form1; + <_ + "уз", _ + "ві"> => mkN023 form1; + <_ + "ім", _ + "ві"> => mkN023 form1; + <_ + "дь", _ + "ві"> => mkN150 form1; + <_ + "зь", _ + "ві"> => mkN058 form1; + <_ + "іп", _ + "ві"> => mkN160 form1; + <_ + "ря", _ + "ті"> => mkN151 form1; + <_ + "ча", _ + "ті"> => mkN151 form1; + <_ + "ша", _ + "ті"> => mkN151 form1; + <_ + "'я", _ + "ті"> => mkN151 form1; + <_ + "ас", _ + "у"> => mkN031 form1; + <_ + "он", _ + "у"> => mkN031 form1; + <_ + "ат", _ + "і"> => mkN003 form1; + <_ + "ат", _ + "у"> => mkN031 form1; + <_ + "ар", _ + "у"> => mkN031 form1; + <_ + "ар", _ + "ю"> => mkN056 form1; + <_ + "ет", _ + "у"> => mkN031 form1; + <_ + "ос", _ + "у"> => mkN031 form1; + <_ + "от", _ + "у"> => mkN050 form1; + <_ + "оз", _ + "і"> => mkN003 form1; + <_ + "ен", _ + "у"> => mkN031 form1; + <_ + "ст", _ + "у"> => mkN031 form1; + <_ + "нт", _ + "у"> => mkN031 form1; + <_ + "кс", _ + "у"> => mkN031 form1; + <_ + "ус", _ + "у"> => mkN031 form1; + <_ + "рм", _ + "у"> => mkN031 form1; + <_ + "ам", _ + "у"> => mkN031 form1; + <_ + "тр", _ + "у"> => mkN171 form1; + <_ + "ут", _ + "у"> => mkN031 form1; + <_ + "ез", _ + "і"> => mkN003 form1; + <_ + "іс", _ + "і"> => mkN003 form1; + <_ + "ід", _ + "у"> => mkN238 form1; + <_ + "яр", _ + "у"> => mkN171 form1; + <_ + "юб", _ + "у"> => mkN050 form1; + <_ + "пс", _ + "у"> => mkN031 form1; + <_ + "ят", _ + "у"> => mkN171 form1; + <_ + "їд", _ + "у"> => mkN050 form1; + <_ + "йн", _ + "і"> => mkN003 form1; + <_ + "ір", _ + "у"> => mkN238 form1; + <_ + "др", _ + "у"> => mkN171 form1; + <_ + "ль", _ + "і"> => mkN093 form1; + <_ + "йя", _ + "ї"> => mkN280 form1; + <_ + "ок", _ + "у"> => mkN011 form1; + <_ + "ць", _ + "ю"> => mkN005 form1; + <_ + "ік", _ + "у"> => mkN011 form1; + <_ + "ик", _ + "у"> => mkN011 form1; + <_ + "ух", _ + "у"> => mkN011 form1; + <_ + "ог", _ + "у"> => mkN036 form1; + <_ + "аг", _ + "і"> => mkN004 form1; + <_ + "рг", _ + "у"> => mkN036 form1; + <_ + "рк", _ + "і"> => mkN004 form1; + <_ + "ин", _ + "у"> => mkN031 form1; + <_ + "нь", _ + "і"> => mkN079 form1; + <_ + "го", _ + "у"> => mkN078 form1; + <_ + "со", _ + "у"> => mkN113 form1; + <_ + "бо", _ + "і"> => mkN084 form1; + <_ + "ка", _ + "й"> => mkN047 form1; + <_ + "рщ", _ + "і"> => mkN231 form1; + <_ + "ож", _ + "у"> => mkN009 form1; + <_ + "яг", _ + "і"> => mkN054 form1; + <_ + "ім", _ + "у"> => mkN031 form1; + <_ + "їн", _ + "і"> => mkN023 form1; + <_ + "юр", _ + "і"> => mkN023 form1; + <_ + "юс", _ + "у"> => mkN171 form1; + <_ + "дь", _ + "ю"> => mkN025 form1; + <_ + "зь", _ + "ю"> => mkN025 form1; + <_ + "ед", _ + "у"> => mkN050 form1; + <_ + "іб", _ + "у"> => mkN381 form1; + <_ + "ий", _ + "ю"> => mkN066 form1; + <_ + "ча", _ + "й"> => mkN281 form1; + <_ + "'я", _ + "і"> => mkN204 form1; + <_ + "'я", _ + "ю"> => mkN235 form1; + <_ + "чя", _ + "ю"> => mkN235 form1; + <_ + "ня", _ + "ю"> => mkN260 form1; + <_ + "тя", _ + "ю"> => mkN235 form1; + <_ + "жя", _ + "ю"> => mkN235 form1; + <_ + "дя", _ + "ю"> => mkN235 form1; + <_ + "з", _ + "азу"> => mkN050 form1; + <_ + "д", _ + "иду"> => mkN050 form1; + <_ + "р", _ + "иру"> => mkN050 form1; + <_ + "р", _ + "тру"> => mkN180 form1; + <_ + "м", _ + "лмі"> => mkN157 form1; + <_ + "н", _ + "іні"> => mkN003 form1; + <_ + "н", _ + "оні"> => mkN103 form1; + <_ + "н", _ + "ону"> => mkN238 form1; + <_ + "т", _ + "фту"> => mkN050 form1; + <_ + "т", _ + "ьту"> => mkN171 form1; + <_ + "т", _ + "оту"> => mkN238 form1; + <_ + "в", _ + "ові"> => mkN012 form1; + <_ + "б", _ + "убу"> => mkN050 form1; + <_ + "о", _ + "блі"> => mkN070 form1; + <_ + "о", _ + "слі"> => mkN070 form1; + <_ + "о", _ + "тлі"> => mkN070 form1; + <_ + "о", _ + "уді"> => mkN084 form1; + <_ + "о", _ + "уку"> => mkN015 form1; + <_ + "о", _ + "іку"> => mkN015 form1; + <_ + "о", _ + "жку"> => mkN209 form1; + <_ + "о", _ + "рку"> => mkN209 form1; + <_ + "о", _ + "длу"> => mkN015 form1; + <_ + "о", _ + "елу"> => mkN113 form1; + <_ + "о", _ + "олу"> => mkN128 form1; + <_ + "ч", _ + "ечу"> => mkN390 form1; + <_ + "ь", _ + "оті"> => mkN040 form1; + <_ + "ь", _ + "яті"> => mkN040 form1; + <_ + "ь", _ + "иті"> => mkN040 form1; + <_ + "ь", _ + "итю"> => mkN065 form1; + <_ + "з", _ + "ві"> => mkN023 form1; + <_ + "д", _ + "ві"> => mkN023 form1; + <_ + "р", _ + "рі"> => mkN029 form1; + <_ + "л", _ + "ві"> => mkN023 form1; + <_ + "м", _ + "ві"> => mkN023 form1; + <_ + "н", _ + "ві"> => mkN023 form1; + <_ + "т", _ + "ві"> => mkN023 form1; + <_ + "п", _ + "ві"> => mkN012 form1; + <_ + "б", _ + "ві"> => mkN012 form1; + <_ + "о", _ + "ку"> => mkN176 form1; + <_ + "к", _ + "ці"> => mkN075 form1; + <_ + "г", _ + "зі"> => mkN143 form1; + <_ + "х", _ + "сі"> => mkN059 form1; + <_ + "й", _ + "ою"> => mkN230 form1; + <_ + "ь", _ + "ві"> => mkN058 form1; + <_ + "з", _ + "у"> => mkN031 form1; + <_ + "ф", _ + "у"> => mkN031 form1; + <_ + "д", _ + "у"> => mkN031 form1; + <_ + "р", _ + "у"> => mkN031 form1; + <_ + "с", _ + "у"> => mkN031 form1; + <_ + "л", _ + "у"> => mkN031 form1; + <_ + "м", _ + "і"> => mkN003 form1; + <_ + "н", _ + "у"> => mkN031 form1; + <_ + "т", _ + "у"> => mkN031 form1; + <_ + "п", _ + "у"> => mkN031 form1; + <_ + "в", _ + "у"> => mkN031 form1; + <_ + "б", _ + "у"> => mkN031 form1; + <_ + "о", _ + "у"> => mkN078 form1; + <_ + "ш", _ + "і"> => mkN121 form1; + <_ + "а", _ + "й"> => mkN047 form1; + <_ + "к", _ + "і"> => mkN004 form1; + <_ + "г", _ + "і"> => mkN004 form1; + <_ + "х", _ + "і"> => mkN004 form1; + <_ + "ч", _ + "у"> => mkN067 form1; + <_ + "й", _ + "ї"> => mkN186 form1; + <_ + "й", _ + "у"> => mkN397 form1; + <_ + "ь", _ + "ю"> => mkN302 form1; + <_ + "щ", _ + "і"> => mkN155 form1; + <_ + "ж", _ + "і"> => mkN081 form1; + _ => regN form1 + } ; + + regV : Str -> V -- Active;Imperf;Pres;P1;Sg + = \form -> case form of { + _ + "вати" => mkV036 form; + _ + "ити" => mkV039 form; + _ + "ися" => mkV071 form; + _ + "ути" => mkV038 form; + _ + "їти" => mkV081 form; + _ + "сти" => mkV025 form; + _ + "зти" => mkV024 form; + _ + "бти" => mkV024 form; + _ + "кти" => mkV094 form; + _ + "йти" => mkV033 form; + _ + "рти" => mkV077 form; + _ + "гти" => mkV070 form; + _ + "оти" => mkV074 form; + _ + "ося" => mkV044 form; + _ + "ки" => mkV044 form; + _ + "ти" => mkV001 form; + _ + "а" => mkV044 form; + _ + "є" => mkV044 form; + _ + "е" => mkV044 form; + _ + "і" => mkV044 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2V : Str -> Str -> V -- Active;Imperf;Pres;P1;Sg imperative1 + = \form1, form2 -> case of { + <_ + "ати", _ + "ьмо"> => mkV057 form1; + <_ + "ати", _ + "жмо"> => mkV023 form1; + <_ + "ати", _ + "пмо"> => mkV056 form1; + <_ + "ати", _ + "чмо"> => mkV060 form1; + <_ + "ити", _ + "ймо"> => mkV013 form1; + <_ + "ити", _ + "ьмо"> => mkV002 form1; + <_ + "ити", _ + "вмо"> => mkV007 form1; + <_ + "ити", _ + "ммо"> => mkV007 form1; + <_ + "ити", _ + "бмо"> => mkV007 form1; + <_ + "ити", _ + "пмо"> => mkV007 form1; + <_ + "ити", _ + "дім"> => mkV045 form1; + <_ + "ити", _ + "зім"> => mkV010 form1; + <_ + "ити", _ + "сім"> => mkV018 form1; + <_ + "ити", _ + "тім"> => mkV043 form1; + <_ + "ити", _ + "вім"> => mkV010 form1; + <_ + "ити", _ + "пім"> => mkV010 form1; + <_ + "ити", _ + "бім"> => mkV010 form1; + <_ + "ити", _ + "мім"> => mkV012 form1; + <_ + "ути", _ + "ймо"> => mkV013 form1; + <_ + "ути", _ + "мім"> => mkV117 form1; + <_ + "сти", _ + "сім"> => mkV024 form1; + <_ + "сти", _ + "тім"> => mkV029 form1; + <_ + "сти", _ + "вім"> => mkV105 form1; + <_ + "сти", _ + "ьмо"> => mkV026 form1; + <_ + "зти", _ + "нім"> => mkV070 form1; + <_ + "гти", _ + "жім"> => mkV110 form1; + <_ + "ити", _ + "о"> => mkV031 form1; + <_ + "ути", _ + "о"> => mkV046 form1; + <_ + "їти", _ + "м"> => mkV082 form1; + <_ + "сти", _ + "о"> => mkV032 form1; + <_ + "зти", _ + "о"> => mkV102 form1; + <_ + "и", _ + "ьмо"> => mkV090 form1; + <_ + "и", _ + "мім"> => mkV126 form1; + <_ + "и", _ + "пім"> => mkV100 form1; + <_ + "и", _ + "м"> => mkV062 form1; + _ => regV form1 + } ; + + regA : Str -> A -- s;Nom;('GSg', Masc) + = \form -> case form of { + _ + "ій" => mkA003 form; + _ + "їй" => mkA004 form; + _ + "ий" => mkA001 form; + _ + "о" => mkA002 form; + _ + "ь" => mkA002 form; + _ + "н" => mkA002 form; + _ + "а" => mkA002 form; + _ + "и" => mkA002 form; + _ + "в" => mkA002 form; + _ + "ж" => mkA002 form; + _ + "д" => mkA002 form; + _ + "і" => mkA002 form; + _ + "е" => mkA002 form; + _ + "у" => mkA002 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2A : Str -> Str -> A -- s;Nom;('GSg', Masc) s;Nom;('GSg', Fem) + = \form1, form2 -> case of { + <_ + "й", _ + "я"> => mkA005 form1; + _ => regA form1 + } ; + + mkN = overload { + mkN : Str -> N = regN; -- s;Nom;Sg + mkN : Str -> Str -> N = reg2N -- s;Nom;Sg s;Loc;Sg + } ; + + mkN2 = overload { + mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; + mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + } ; + + mkN3 = overload { + mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + } ; + + mkV = overload { + mkV : Str -> V = regV; -- Active;Imperf;Pres;P1;Sg + mkV : Str -> Str -> V = reg2V -- Active;Imperf;Pres;P1;Sg imperative1 + } ; + + mkVV,mkVS,mkVQ,mkVA = \v -> v ; + + mkV2 = overload { + mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; + mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + } ; + + mkV3 = overload { + mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2A = overload { + mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2S = overload { + mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2Q = overload { + mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2V = overload { + mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkA = overload { + mkA : Str -> A = regA; -- s;Nom;('GSg', Masc) + mkA : Str -> Str -> A = reg2A -- s;Nom;('GSg', Masc) s;Nom;('GSg', Fem) + } ; + + mkA2 = overload { + mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; + mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + } ; + + mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; + mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; + mkAdA : Str -> AdA = \s -> lin AdA {s=s} ; + mkAdN : Str -> AdN = \s -> lin AdN {s=s} ; + mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s; p=""} ; + mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + + mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; + + mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; + mkIP : Str -> IP = \s -> lin IP {s=s} ; + mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; + mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; + mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; + mkQuant : Str -> Quant = \s -> lin Quant {s=s} ; + mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; + mkDet : Str -> Det = \s -> lin Det {s=s} ; + mkCard : Str -> Card = \s -> lin Card {s=s} ; + mkConj : Str -> Conj = \s -> lin Conj {s=s} ; + mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; + mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; + + mkLN : Str -> LN = \s -> lin LN {s=s} ; + mkGN : Str -> GN = \s -> lin GN {s=s} ; + mkSN : Str -> SN = \s -> lin SN {s=s} ; + mkPN : Str -> PN = \s -> lin PN {s=s} ; + +} diff --git a/src/ukrainian/PhraseUkr.gf b/src/ukrainian/PhraseUkr.gf new file mode 100644 index 00000000..9b2a8bb9 --- /dev/null +++ b/src/ukrainian/PhraseUkr.gf @@ -0,0 +1,11 @@ +concrete PhraseUkr of Phrase = CatUkr ** { +lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; + UttInterj i = i ; + + NoPConj = {s = []} ; + + NoVoc = {s = []} ; +} diff --git a/src/ukrainian/ResUkr.gf b/src/ukrainian/ResUkr.gf new file mode 100644 index 00000000..2f8ce831 --- /dev/null +++ b/src/ukrainian/ResUkr.gf @@ -0,0 +1,166 @@ +resource ResUkr = { + +param Case = Nom | Acc | Dat | Gen | Loc | Instr ; +param Number = Sg | Pl ; +param Gender = Masc | Neuter | Fem ; +oper N = {s: Case => Number => Str; Voc: Number => Str; g: Gender} ; -- 11407 +oper mkN : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> N = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,g -> + { s = table { + Nom => table { + Sg => f1 ; + Pl => f2 + } ; + Acc => table { + Sg => f3 ; + Pl => f4 + } ; + Dat => table { + Sg => f5 ; + Pl => f6 + } ; + Gen => table { + Sg => f7 ; + Pl => f8 + } ; + Loc => table { + Sg => f9 ; + Pl => f10 + } ; + Instr => table { + Sg => f11 ; + Pl => f12 + } + } ; + Voc = table { + Sg => f13 ; + Pl => f14 + } ; + g = g + } ; + + +param Aspect = Perf | Imperf ; +param Person = P1 | P2 | P3 ; +param Tense = Past | Pres ; +oper V = {active: Aspect => {Past: Str; Pres: Person => Number => Str}; imperative1: Str; imperative2: Number => Str; infinitive: Str; participle: Gender => Number => Str; passive: Aspect => Tense => Str} ; -- 4822 +oper mkV : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> V = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28 -> + { active = table { + Imperf => { Past = f1 ; + Pres = table { + P1 => table { + Sg => f2 ; + Pl => f3 + } ; + P2 => table { + Sg => f4 ; + Pl => f5 + } ; + P3 => table { + Sg => f6 ; + Pl => f7 + } + } + } ; + Perf => { Past = f8 ; + Pres = table { + P1 => table { + Sg => f9 ; + Pl => f10 + } ; + P2 => table { + Sg => f11 ; + Pl => f12 + } ; + P3 => table { + Sg => f13 ; + Pl => f14 + } + } + } + } ; + imperative1 = f15 ; + imperative2 = table { + Sg => f16 ; + Pl => f17 + } ; + infinitive = f18 ; + participle = table { + Masc => table { + Sg => f19 ; + Pl => f20 + } ; + Fem => table { + Sg => f21 ; + Pl => f22 + } ; + Neuter => table { + Sg => f23 ; + Pl => f24 + } + } ; + passive = table { + Imperf => table { + Pres => f25 ; + Past => f26 + } ; + Perf => table { + Pres => f27 ; + Past => f28 + } + } + } ; + +param GenNum = GSg Gender | GPl ; +oper A = {s: Case => GenNum => Str} ; -- 4394 +oper mkA : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> A = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24 -> + { s = table { + Nom => table { + GSg Masc => f1 ; + GSg Fem => f2 ; + GSg Neuter => f3 ; + GPl => f4 + } ; + Acc => table { + GSg Masc => f5 ; + GSg Fem => f6 ; + GSg Neuter => f7 ; + GPl => f8 + } ; + Dat => table { + GSg Masc => f9 ; + GSg Fem => f10 ; + GSg Neuter => f11 ; + GPl => f12 + } ; + Gen => table { + GSg Masc => f13 ; + GSg Fem => f14 ; + GSg Neuter => f15 ; + GPl => f16 + } ; + Loc => table { + GSg Masc => f17 ; + GSg Fem => f18 ; + GSg Neuter => f19 ; + GPl => f20 + } ; + Instr => table { + GSg Masc => f21 ; + GSg Fem => f22 ; + GSg Neuter => f23 ; + GPl => f24 + } + } + } ; + + +oper Compl = {s : Str; c : Case} ; +oper noPrep : Compl = {s=""; c=Acc} ; + +oper CommonNoun = {s : Str} ; +oper AdjPhrase = {s : Str} ; + +} From 9649f348b21ee398989b72a9a781090cb4585cb8 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 25 Sep 2025 13:09:10 +0200 Subject: [PATCH 060/169] a better table for nouns --- src/ukrainian/DocumentationUkr.gf | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/ukrainian/DocumentationUkr.gf b/src/ukrainian/DocumentationUkr.gf index 8250f6f2..5b90db47 100644 --- a/src/ukrainian/DocumentationUkr.gf +++ b/src/ukrainian/DocumentationUkr.gf @@ -12,20 +12,14 @@ lin t="n" ; s1="" ; s2=frameTable ( - tr (intagAttr "th" "rowspan=\"2\"" "Nom" ++ th "Sg" ++ td (x.s ! Nom ! Sg)) ++ - tr (th "Pl" ++ td (x.s ! Nom ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Acc" ++ th "Sg" ++ td (x.s ! Acc ! Sg)) ++ - tr (th "Pl" ++ td (x.s ! Acc ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Dat" ++ th "Sg" ++ td (x.s ! Dat ! Sg)) ++ - tr (th "Pl" ++ td (x.s ! Dat ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Gen" ++ th "Sg" ++ td (x.s ! Gen ! Sg)) ++ - tr (th "Pl" ++ td (x.s ! Gen ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Loc" ++ th "Sg" ++ td (x.s ! Loc ! Sg)) ++ - tr (th "Pl" ++ td (x.s ! Loc ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Instr" ++ th "Sg" ++ td (x.s ! Instr ! Sg)) ++ - tr (th "Pl" ++ td (x.s ! Instr ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Voc" ++ th "Sg" ++ td (x.Voc ! Sg)) ++ - tr (th "Pl" ++ td (x.Voc ! Pl))) ; + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Nom" ++ td (x.s ! Nom ! Sg) ++ td (x.s ! Nom ! Pl)) ++ + tr (th "Acc" ++ td (x.s ! Acc ! Sg) ++ td (x.s ! Acc ! Pl)) ++ + tr (th "Dat" ++ td (x.s ! Dat ! Sg) ++ td (x.s ! Dat ! Pl)) ++ + tr (th "Gen" ++ td (x.s ! Gen ! Sg) ++ td (x.s ! Gen ! Pl)) ++ + tr (th "Loc" ++ td (x.s ! Loc ! Sg) ++ td (x.s ! Loc ! Pl)) ++ + tr (th "Instr" ++ td (x.s ! Instr ! Sg) ++ td (x.s ! Instr ! Pl)) ++ + tr (th "Voc" ++ td (x.Voc ! Sg) ++ td (x.Voc ! Pl))) ; s3=[] } ; lin From c9182284e7054c283111def0c6a1d26535902066 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 25 Sep 2025 21:54:33 +0200 Subject: [PATCH 061/169] added Belarusian --- languages.csv | 1 + src/belarusian/AdjectiveBel.gf | 4 + src/belarusian/AllBel.gf | 4 + src/belarusian/AllBelAbs.gf | 3 + src/belarusian/CatBel.gf | 17 + src/belarusian/DocumentationBel.gf | 78 + src/belarusian/GrammarBel.gf | 6 + src/belarusian/LangBel.gf | 10 + src/belarusian/LexiconBel.gf | 2 + src/belarusian/MorphoBel.gf | 31234 +++++++++++++++++++++++++++ src/belarusian/NounBel.gf | 4 + src/belarusian/ParadigmsBel.gf | 839 + src/belarusian/PhraseBel.gf | 11 + src/belarusian/ResBel.gf | 166 + 14 files changed, 32379 insertions(+) create mode 100644 src/belarusian/AdjectiveBel.gf create mode 100644 src/belarusian/AllBel.gf create mode 100644 src/belarusian/AllBelAbs.gf create mode 100644 src/belarusian/CatBel.gf create mode 100644 src/belarusian/DocumentationBel.gf create mode 100644 src/belarusian/GrammarBel.gf create mode 100644 src/belarusian/LangBel.gf create mode 100644 src/belarusian/LexiconBel.gf create mode 100644 src/belarusian/MorphoBel.gf create mode 100644 src/belarusian/NounBel.gf create mode 100644 src/belarusian/ParadigmsBel.gf create mode 100644 src/belarusian/PhraseBel.gf create mode 100644 src/belarusian/ResBel.gf diff --git a/languages.csv b/languages.csv index 3e6b8451..b95c3ff6 100644 --- a/languages.csv +++ b/languages.csv @@ -2,6 +2,7 @@ Code,Name,Directory,Functor,Unlexer,Present,All,Try,Symbolic,Compatibility,Synop Afr,Afrikaans,afrikaans,,,,,,n,,y,n Amh,Amharic,amharic,,,,,n,n,,n,n Ara,Arabic,arabic,,,,,,y,,y,y +Bel,Belarusian,belarusian,,,,y,n,n,n,y,n Bul,Bulgarian,bulgarian,,,y,,,,,y,n Cat,Catalan,catalan,Romance,,y,,,,y,y,n Cgg,Rukiga,rukiga,,,y,y,n,n,y,y,n diff --git a/src/belarusian/AdjectiveBel.gf b/src/belarusian/AdjectiveBel.gf new file mode 100644 index 00000000..24fbdf42 --- /dev/null +++ b/src/belarusian/AdjectiveBel.gf @@ -0,0 +1,4 @@ +concrete AdjectiveBel of Adjective = CatBel ** { +--lin +-- PositA a = a ; +} diff --git a/src/belarusian/AllBel.gf b/src/belarusian/AllBel.gf new file mode 100644 index 00000000..0e90412a --- /dev/null +++ b/src/belarusian/AllBel.gf @@ -0,0 +1,4 @@ +concrete AllBel of AllBelAbs = + LangBel + ** + {} ; diff --git a/src/belarusian/AllBelAbs.gf b/src/belarusian/AllBelAbs.gf new file mode 100644 index 00000000..24fc6116 --- /dev/null +++ b/src/belarusian/AllBelAbs.gf @@ -0,0 +1,3 @@ +abstract AllBelAbs = + Lang + ** {} \ No newline at end of file diff --git a/src/belarusian/CatBel.gf b/src/belarusian/CatBel.gf new file mode 100644 index 00000000..fbd0ebbc --- /dev/null +++ b/src/belarusian/CatBel.gf @@ -0,0 +1,17 @@ +concrete CatBel of Cat = CommonX ** open ResBel in { + +lincat N = N ; +lincat N2 = N ** {c2 : Compl} ; +lincat N3 = N ** {c2,c3 : Compl} ; +lincat V = V ; +lincat VV,VS,VQ,VA = V ; +lincat V2 = V ** {c2 : Compl} ; +lincat V3,V2A,V2S,V2Q,V2V = V ** {c2,c3 : Compl} ; +lincat A = A ; +lincat A2 = A ** {c2 : Compl} ; +lincat Prep = Compl ; +lincat CN = CommonNoun ; +lincat AP = AdjPhrase ; +lincat S = {s : Str} ; + +} diff --git a/src/belarusian/DocumentationBel.gf b/src/belarusian/DocumentationBel.gf new file mode 100644 index 00000000..4d568a04 --- /dev/null +++ b/src/belarusian/DocumentationBel.gf @@ -0,0 +1,78 @@ +concrete DocumentationBel of Documentation = CatBel ** open + ResBel, Prelude, HTML in { + +lincat + Inflection = {t : Str; s1,s2,s3 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin + InflectionN,InflectionN2,InflectionN3 = \x -> { + t="n" ; + s1="" ; + s2=frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Nom" ++ td (x.s ! Nom ! Sg) ++ td (x.s ! Nom ! Pl)) ++ + tr (th "Acc" ++ td (x.s ! Acc ! Sg) ++ td (x.s ! Acc ! Pl)) ++ + tr (th "Dat" ++ td (x.s ! Dat ! Sg) ++ td (x.s ! Dat ! Pl)) ++ + tr (th "Gen" ++ td (x.s ! Gen ! Sg) ++ td (x.s ! Gen ! Pl)) ++ + tr (th "Loc" ++ td (x.s ! Loc ! Sg) ++ td (x.s ! Loc ! Pl)) ++ + tr (th "Instr" ++ td (x.s ! Instr ! Sg) ++ td (x.s ! Instr ! Pl)) ++ + tr (th "Voc" ++ td (x.Voc ! Sg) ++ td (x.Voc ! Pl))) ; + s3=[] + } ; +lin + InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> { + t="v" ; + s1="" ; + s2=heading1 "Infinitive" ++ + paragraph (x.infinitive) ++ + heading1 "Present" ++ + frameTable ( + tr (intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P1 ! Sg)) ++ + tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P2 ! Sg)) ++ + tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P2 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td ((x.active ! Imperf).Pres ! P3 ! Sg)) ++ + tr (th "Pl" ++ td ((x.active ! Imperf).Pres ! P3 ! Pl))) ++ + heading1 "Imperative" ++ + frameTable ( + tr (th "Sg" ++ td (x.imperative ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! Pl))) ++ + heading1 "participle" ++ + frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Masc" ++ td (x.participle ! Masc ! Sg) ++ td (x.participle ! Masc ! Pl)) ++ + tr (th "Fem" ++ td (x.participle ! Fem ! Sg) ++ td (x.participle ! Fem ! Pl)) ++ + tr (th "Neuter" ++ td (x.participle ! Neuter ! Sg) ++ td (x.participle ! Neuter ! Pl))) ; + s3=[] + } ; +lin + InflectionA,InflectionA2 = \x -> { + t="a" ; + s1="" ; + s2=frameTable ( + tr (th "" ++ th "Masc" ++ th "Fem" ++ th "Neuter" ++ th "Pl") ++ + tr (th "Nom" ++ td (x.s ! Nom ! GSg Masc) ++ td (x.s ! Nom ! GSg Fem) ++ td (x.s ! Nom ! GSg Neuter) ++ td (x.s ! Nom ! GPl)) ++ + tr (th "Acc" ++ td (x.s ! Acc ! GSg Masc) ++ td (x.s ! Acc ! GSg Fem) ++ td (x.s ! Acc ! GSg Neuter) ++ td (x.s ! Acc ! GPl)) ++ + tr (th "Dat" ++ td (x.s ! Dat ! GSg Masc) ++ td (x.s ! Dat ! GSg Fem) ++ td (x.s ! Dat ! GSg Neuter) ++ td (x.s ! Dat ! GPl)) ++ + tr (th "Gen" ++ td (x.s ! Gen ! GSg Masc) ++ td (x.s ! Gen ! GSg Fem) ++ td (x.s ! Gen ! GSg Neuter) ++ td (x.s ! Gen ! GPl)) ++ + tr (th "Loc" ++ td (x.s ! Loc ! GSg Masc) ++ td (x.s ! Loc ! GSg Fem) ++ td (x.s ! Loc ! GSg Neuter) ++ td (x.s ! Loc ! GPl)) ++ + tr (th "Instr"++td (x.s ! Instr ! GSg Masc)++td (x.s ! Instr ! GSg Fem)++td (x.s ! Instr ! GSg Neuter)++td (x.s ! Instr ! GPl))) ; + s3=[] + } ; +lin + InflectionAdA,InflectionAdN,InflectionAdV,InflectionAdv = \x -> {t="adv"; s1=""; s2=x.s; s3=""} ; + + InflectionPrep = \x -> {t="prep"; s1=""; s2=x.s; s3=""} ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

Definition:"++t.s++d.s++"

Example:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ; + MkTag i = {s = i.t} ; +} diff --git a/src/belarusian/GrammarBel.gf b/src/belarusian/GrammarBel.gf new file mode 100644 index 00000000..242b4cbe --- /dev/null +++ b/src/belarusian/GrammarBel.gf @@ -0,0 +1,6 @@ +concrete GrammarBel of Grammar = + TenseX, + PhraseBel, + NounBel, + AdjectiveBel ** { +} \ No newline at end of file diff --git a/src/belarusian/LangBel.gf b/src/belarusian/LangBel.gf new file mode 100644 index 00000000..c658c252 --- /dev/null +++ b/src/belarusian/LangBel.gf @@ -0,0 +1,10 @@ +--# -path=.:../abstract +concrete LangBel of Lang = + GrammarBel, + LexiconBel + ,DocumentationBel --# notpresent + ** { + +flags startcat = Phr ; + +} \ No newline at end of file diff --git a/src/belarusian/LexiconBel.gf b/src/belarusian/LexiconBel.gf new file mode 100644 index 00000000..88348827 --- /dev/null +++ b/src/belarusian/LexiconBel.gf @@ -0,0 +1,2 @@ +concrete LexiconBel of Lexicon = CatBel ** open ParadigmsBel in { +} \ No newline at end of file diff --git a/src/belarusian/MorphoBel.gf b/src/belarusian/MorphoBel.gf new file mode 100644 index 00000000..9acd4144 --- /dev/null +++ b/src/belarusian/MorphoBel.gf @@ -0,0 +1,31234 @@ +resource MorphoBel = open CatBel, ResBel, Predef in { + +oper + +mkN001 : Str -> N ; +mkN001 base = + case base of { + base_1+"от" => lin N + { s = table { + Nom => table { + Sg => base_1+"от" ; + Pl => base_1+"аты" + } ; + Acc => table { + Sg => base_1+"ата" ; + Pl => base_1+"атоў" + } ; + Dat => table { + Sg => base_1+"ату" ; + Pl => base_1+"атам" + } ; + Gen => table { + Sg => base_1+"ата" ; + Pl => base_1+"атоў" + } ; + Loc => table { + Sg => base_1+"аце" ; + Pl => base_1+"атах" + } ; + Instr => table { + Sg => base_1+"атом" ; + Pl => base_1+"атамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN001" + } ; + +mkN002 : Str -> N ; +mkN002 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"ь"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"ь"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"ь"+base_2+"ы" ; + Pl => base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ь"+base_2+"ам" ; + Pl => base_1+"ь"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN002" + } ; + +mkN003 : Str -> N ; +mkN003 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ак" + } ; + Dat => table { + Sg => base_1+"цы" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"кі" ; + Pl => base_1+"ак" + } ; + Loc => table { + Sg => base_1+"цы" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кай" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN003" + } ; + +mkN004 : Str -> N ; +mkN004 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"кі" + } ; + Dat => table { + Sg => base_1+"цы" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"кі" ; + Pl => base_1+"ак" + } ; + Loc => table { + Sg => base_1+"цы" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кай" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN004" + } ; + +mkN005 : Str -> N ; +mkN005 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN005" + } ; + +mkN006 : Str -> N ; +mkN006 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN006" + } ; + +mkN007 : Str -> N ; +mkN007 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN007" + } ; + +mkN008 : Str -> N ; +mkN008 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN008" + } ; + +mkN009 : Str -> N ; +mkN009 base = + case base of { + base_1@("зв"|?)+"о"+base_2 => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN009" + } ; + +mkN010 : Str -> N ; +mkN010 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"ёў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN010" + } ; + +mkN011 : Str -> N ; +mkN011 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN011" + } ; + +mkN012 : Str -> N ; +mkN012 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN012" + } ; + +mkN013 : Str -> N ; +mkN013 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN013" + } ; + +mkN014 : Str -> N ; +mkN014 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN014" + } ; + +mkN015 : Str -> N ; +mkN015 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN015" + } ; + +mkN016 : Str -> N ; +mkN016 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN016" + } ; + +mkN017 : Str -> N ; +mkN017 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN017" + } ; + +mkN018 : Str -> N ; +mkN018 base = + case base of { + base_1+"ё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN018" + } ; + +mkN019 : Str -> N ; +mkN019 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN019" + } ; + +mkN020 : Str -> N ; +mkN020 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"гі" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"гі" + } ; + Dat => table { + Sg => base_1+"зе" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"гі" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гой" ; + Pl => base_1+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN020" + } ; + +mkN021 : Str -> N ; +mkN021 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"гі" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"гі" + } ; + Dat => table { + Sg => base_1+"зе" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"гі" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гай" ; + Pl => base_1+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN021" + } ; + +mkN022 : Str -> N ; +mkN022 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN022" + } ; + +mkN023 : Str -> N ; +mkN023 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"ту" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"це" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ты" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"тай" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN023" + } ; + +mkN024 : Str -> N ; +mkN024 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN024" + } ; + +mkN025 : Str -> N ; +mkN025 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"тоў" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"тоў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => base_1+"це" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN025" + } ; + +mkN026 : Str -> N ; +mkN026 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"кі" + } ; + Dat => table { + Sg => base_1+"цы" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"кі" ; + Pl => base_1+"к" + } ; + Loc => table { + Sg => base_1+"цы" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кай" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN026" + } ; + +mkN027 : Str -> N ; +mkN027 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN027" + } ; + +mkN028 : Str -> N ; +mkN028 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ы" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN028" + } ; + +mkN029 : Str -> N ; +mkN029 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN029" + } ; + +mkN030 : Str -> N ; +mkN030 base = + case base of { + base_1@?+"о"+base_2 => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN030" + } ; + +mkN031 : Str -> N ; +mkN031 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN031" + } ; + +mkN032 : Str -> N ; +mkN032 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"таў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN032" + } ; + +mkN033 : Str -> N ; +mkN033 base = + case base of { + base_1+"ог" => lin N + { s = table { + Nom => table { + Sg => base_1+"ог" ; + Pl => base_1+"агі" + } ; + Acc => table { + Sg => base_1+"ога" ; + Pl => base_1+"агоў" + } ; + Dat => table { + Sg => base_1+"огу" ; + Pl => base_1+"агам" + } ; + Gen => table { + Sg => base_1+"ога" ; + Pl => base_1+"агоў" + } ; + Loc => table { + Sg => base_1+"озе" ; + Pl => base_1+"агах" + } ; + Instr => table { + Sg => base_1+"огам" ; + Pl => base_1+"агамі" + } + } ; + Voc = table { + Sg => base_1+"ожа" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN033" + } ; + +mkN034 : Str -> N ; +mkN034 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN034" + } ; + +mkN035 : Str -> N ; +mkN035 base = + case base of { + base_1+"о"+base_2@("ўб"|"рб"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN035" + } ; + +mkN036 : Str -> N ; +mkN036 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN036" + } ; + +mkN037 : Str -> N ; +mkN037 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => base_1+"зе" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN037" + } ; + +mkN038 : Str -> N ; +mkN038 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => base_1+"е" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN038" + } ; + +mkN039 : Str -> N ; +mkN039 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN039" + } ; + +mkN040 : Str -> N ; +mkN040 base = + case base of { + base_1+"й"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"й"+base_2+"о" ; + Pl => base_1+"й"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"о" ; + Pl => base_1+"й"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+"й"+base_2+"ы" ; + Pl => base_1+"й"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ом" ; + Pl => base_1+"й"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN040" + } ; + +mkN041 : Str -> N ; +mkN041 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN041" + } ; + +mkN042 : Str -> N ; +mkN042 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN042" + } ; + +mkN043 : Str -> N ; +mkN043 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN043" + } ; + +mkN044 : Str -> N ; +mkN044 base = + case base of { + base_1@?+"о"+base_2 => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN044" + } ; + +mkN045 : Str -> N ; +mkN045 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN045" + } ; + +mkN046 : Str -> N ; +mkN046 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN046" + } ; + +mkN047 : Str -> N ; +mkN047 base = + case base of { + base_1+"о"+base_2@?+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"т" ; + Pl => base_1+"а"+base_2+"ты" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"т" ; + Pl => base_1+"а"+base_2+"ты" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ту" ; + Pl => base_1+"а"+base_2+"там" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"та" ; + Pl => base_1+"а"+base_2+"тоў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"це" ; + Pl => base_1+"а"+base_2+"тах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"там" ; + Pl => base_1+"а"+base_2+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN047" + } ; + +mkN048 : Str -> N ; +mkN048 base = + case base of { + base_1@("пл"|?)+"о"+base_2 => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"зе" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN048" + } ; + +mkN049 : Str -> N ; +mkN049 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"зья" + } ; + Acc => table { + Sg => base_1+"га" ; + Pl => base_1+"зей" + } ; + Dat => table { + Sg => base_1+"гу" ; + Pl => base_1+"зьям" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"зей" + } ; + Loc => table { + Sg => base_1+"гу" ; + Pl => base_1+"зьях" + } ; + Instr => table { + Sg => base_1+"гам" ; + Pl => base_1+"зьямі" + } + } ; + Voc = table { + Sg => base_1+"жа" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN049" + } ; + +mkN050 : Str -> N ; +mkN050 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN050" + } ; + +mkN051 : Str -> N ; +mkN051 base = + case base of { + base_1+"ва" => lin N + { s = table { + Nom => table { + Sg => base_1+"ва" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => base_1+"ву" ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => base_1+"ве" ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"вы" ; + Pl => base_1+"ў" + } ; + Loc => table { + Sg => base_1+"ве" ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => base_1+"вой" ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN051" + } ; + +mkN052 : Str -> N ; +mkN052 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"я"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"я"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"я"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"я"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN052" + } ; + +mkN053 : Str -> N ; +mkN053 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN053" + } ; + +mkN054 : Str -> N ; +mkN054 base = + case base of { + base_1+"о"+base_2@?+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"т" ; + Pl => base_1+"а"+base_2+"ты" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"т" ; + Pl => base_1+"а"+base_2+"ты" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ту" ; + Pl => base_1+"а"+base_2+"там" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"та" ; + Pl => base_1+"а"+base_2+"тоў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"це" ; + Pl => base_1+"а"+base_2+"тах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"том" ; + Pl => base_1+"а"+base_2+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN054" + } ; + +mkN055 : Str -> N ; +mkN055 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN055" + } ; + +mkN056 : Str -> N ; +mkN056 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ту" ; + Pl => base_1+"таў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN056" + } ; + +mkN057 : Str -> N ; +mkN057 base = + case base of { + base_1+"о"+base_2@("лас"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN057" + } ; + +mkN058 : Str -> N ; +mkN058 base = + case base of { + base_1+"ё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => "і"+base_1+"ь"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ё"+base_2 ; + Pl => "і"+base_1+"ь"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ё"+base_2+"у" ; + Pl => "і"+base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ё"+base_2+"у" ; + Pl => "і"+base_1+"ь"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ё"+base_2+"зе" ; + Pl => "і"+base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ё"+base_2+"ам" ; + Pl => "і"+base_1+"ь"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN058" + } ; + +mkN059 : Str -> N ; +mkN059 base = + case base of { + base_1+"о"+base_2@("ўш"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN059" + } ; + +mkN060 : Str -> N ; +mkN060 base = + case base of { + base_1+"о"+base_2@(?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN060" + } ; + +mkN061 : Str -> N ; +mkN061 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" --guessed + } ; + Acc => table { + Sg => base_1 ; --guessed + Pl => base_1+"і" --guessed + } ; + Dat => table { + Sg => base_1+"у" ; --guessed + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"а" ; --guessed + Pl => base_1+"оў" --guessed + } ; + Loc => table { + Sg => base_1+"у" ; --guessed + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ом" ; --guessed + Pl => base_1+"амі" --guessed + } + } ; + Voc = table { + Sg => base_1+"у" ; --guessed + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN061" + } ; + +mkN062 : Str -> N ; +mkN062 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN062" + } ; + +mkN063 : Str -> N ; +mkN063 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN063" + } ; + +mkN064 : Str -> N ; +mkN064 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN064" + } ; + +mkN065 : Str -> N ; +mkN065 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN065" + } ; + +mkN066 : Str -> N ; +mkN066 base = + case base of { + base_1+"о"+base_2@("лад"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"зе" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN066" + } ; + +mkN067 : Str -> N ; +mkN067 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ёў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN067" + } ; + +mkN068 : Str -> N ; +mkN068 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ёў" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ёў" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN068" + } ; + +mkN069 : Str -> N ; +mkN069 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN069" + } ; + +mkN070 : Str -> N ; +mkN070 base = + case base of { + base_1+"а"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN070" + } ; + +mkN071 : Str -> N ; +mkN071 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN071" + } ; + +mkN072 : Str -> N ; +mkN072 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"яй" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN072" + } ; + +mkN073 : Str -> N ; +mkN073 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"таў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN073" + } ; + +mkN074 : Str -> N ; +mkN074 base = + case base of { + base_1+"ая" => lin N + { s = table { + Nom => table { + Sg => base_1+"ая" ; + Pl => base_1+"ыя" + } ; + Acc => table { + Sg => base_1+"ую" ; + Pl => base_1+"ыя" + } ; + Dat => table { + Sg => base_1+"ай" ; + Pl => base_1+"ым" + } ; + Gen => table { + Sg => base_1+"ай" ; + Pl => base_1+"ых" + } ; + Loc => table { + Sg => base_1+"ай" ; + Pl => base_1+"ых" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"ымі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN074" + } ; + +mkN075 : Str -> N ; +mkN075 base = + case base of { + base_1+base_2@?+"ня" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"ня" ; + Pl => base_1+base_2+"ні" + } ; + Acc => table { + Sg => base_1+base_2+"ню" ; + Pl => base_1+base_2+"ні" + } ; + Dat => table { + Sg => base_1+base_2+"ні" ; + Pl => base_1+base_2+"ням" + } ; + Gen => table { + Sg => base_1+base_2+"ні" ; + Pl => base_1+"ен"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"ні" ; + Pl => base_1+base_2+"нях" + } ; + Instr => table { + Sg => base_1+base_2+"няй" ; + Pl => base_1+base_2+"нямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN075" + } ; + +mkN076 : Str -> N ; +mkN076 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+"а"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"яй" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN076" + } ; + +mkN077 : Str -> N ; +mkN077 base = + case base of { + base_1+"ег" => lin N + { s = table { + Nom => table { + Sg => base_1+"ег" ; + Pl => base_1+"ягі" + } ; + Acc => table { + Sg => base_1+"ег" ; + Pl => base_1+"ягі" + } ; + Dat => table { + Sg => base_1+"егу" ; + Pl => base_1+"ягам" + } ; + Gen => table { + Sg => base_1+"егу" ; + Pl => base_1+"ягоў" + } ; + Loc => table { + Sg => base_1+"езе" ; + Pl => base_1+"ягах" + } ; + Instr => table { + Sg => base_1+"егам" ; + Pl => base_1+"ягамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN077" + } ; + +mkN078 : Str -> N ; +mkN078 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN078" + } ; + +mkN079 : Str -> N ; +mkN079 base = + case base of { + base_1+"а"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN079" + } ; + +mkN080 : Str -> N ; +mkN080 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN080" + } ; + +mkN081 : Str -> N ; +mkN081 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN081" + } ; + +mkN082 : Str -> N ; +mkN082 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN082" + } ; + +mkN083 : Str -> N ; +mkN083 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN083" + } ; + +mkN084 : Str -> N ; +mkN084 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN084" + } ; + +mkN085 : Str -> N ; +mkN085 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN085" + } ; + +mkN086 : Str -> N ; +mkN086 base = + case base of { + base_1+"от" => lin N + { s = table { + Nom => table { + Sg => base_1+"от" ; + Pl => base_1+"аты" + } ; + Acc => table { + Sg => base_1+"от" ; + Pl => base_1+"аты" + } ; + Dat => table { + Sg => base_1+"оту" ; + Pl => base_1+"атам" + } ; + Gen => table { + Sg => base_1+"ота" ; + Pl => base_1+"атоў" + } ; + Loc => table { + Sg => base_1+"оце" ; + Pl => base_1+"атах" + } ; + Instr => table { + Sg => base_1+"отам" ; + Pl => base_1+"атамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN086" + } ; + +mkN087 : Str -> N ; +mkN087 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"зе" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN087" + } ; + +mkN088 : Str -> N ; +mkN088 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" --guessed + } ; + Acc => table { + Sg => base_1 ; --guessed + Pl => base_1+"і" --guessed + } ; + Dat => table { + Sg => base_1+"у" ; --guessed + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"а" ; --guessed + Pl => base_1+"оў" --guessed + } ; + Loc => table { + Sg => base_1+"у" ; --guessed + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ом" ; --guessed + Pl => base_1+"амі" --guessed + } + } ; + Voc = table { + Sg => base_1+"у" ; --guessed + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN088" + } ; + +mkN089 : Str -> N ; +mkN089 base = + case base of { + base_1+"о"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёў" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ём" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN089" + } ; + +mkN090 : Str -> N ; +mkN090 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN090" + } ; + +mkN091 : Str -> N ; +mkN091 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN091" + } ; + +mkN092 : Str -> N ; +mkN092 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN092" + } ; + +mkN093 : Str -> N ; +mkN093 base = + case base of { + base_1+"е"+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёны" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёны" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ёнам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ён" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"я"+base_2+"ёнах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"я"+base_2+"ёнамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN093" + } ; + +mkN094 : Str -> N ; +mkN094 base = + case base of { + base_1+"ое"+base_2@(?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ое"+base_2 ; + Pl => base_1+"ая"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ое"+base_2 ; + Pl => base_1+"ая"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ое"+base_2+"у" ; + Pl => base_1+"ая"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ое"+base_2+"а" ; + Pl => base_1+"ая"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ое"+base_2+"зе" ; + Pl => base_1+"ая"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ое"+base_2+"ам" ; + Pl => base_1+"ая"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN094" + } ; + +mkN095 : Str -> N ; +mkN095 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1 + } ; + Acc => table { + Sg => base_1 ; --guessed + Pl => base_1 --guessed + } ; + Dat => table { + Sg => base_1 ; --guessed + Pl => base_1 --guessed + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1 ; --guessed + Pl => base_1 --guessed + } ; + Instr => table { + Sg => base_1 ; --guessed + Pl => base_1 --guessed + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN095" + } ; + +mkN096 : Str -> N ; +mkN096 base = + case base of { + base_1+"о"+base_2@?+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"а"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN096" + } ; + +mkN097 : Str -> N ; +mkN097 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"кі" + } ; + Dat => table { + Sg => base_1+"цэ" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"кі" ; + Pl => base_1+"к" + } ; + Loc => table { + Sg => base_1+"цэ" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кой" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN097" + } ; + +mkN098 : Str -> N ; +mkN098 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"лю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN098" + } ; + +mkN099 : Str -> N ; +mkN099 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" --guessed + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" --guessed + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" --guessed + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" --guessed + } + } ; + Voc = table { + Sg => base_1+"у" ; --guessed + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN099" + } ; + +mkN100 : Str -> N ; +mkN100 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN100" + } ; + +mkN101 : Str -> N ; +mkN101 base = + case base of { + base_1+"ё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ё"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ё"+base_2+"у" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ё"+base_2+"зе" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ё"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN101" + } ; + +mkN102 : Str -> N ; +mkN102 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN102" + } ; + +mkN103 : Str -> N ; +mkN103 base = + case base of { + base_1+"о"+base_2@?+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"т" ; + Pl => base_1+"э"+base_2+"ці" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"та" ; + Pl => base_1+"а"+base_2+"цей" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ту" ; + Pl => base_1+"а"+base_2+"цям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"та" ; + Pl => base_1+"а"+base_2+"цей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"це" ; + Pl => base_1+"а"+base_2+"цях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"там" ; + Pl => base_1+"а"+base_2+"цямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN103" + } ; + +mkN104 : Str -> N ; +mkN104 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"гі" + } ; + Acc => table { + Sg => base_1+"г" ; + Pl => base_1+"гі" + } ; + Dat => table { + Sg => base_1+"гу" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гам" ; + Pl => base_1+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN104" + } ; + +mkN105 : Str -> N ; +mkN105 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN105" + } ; + +mkN106 : Str -> N ; +mkN106 base = + case base of { + base_1+"е"+base_2@(?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN106" + } ; + +mkN107 : Str -> N ; +mkN107 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN107" + } ; + +mkN108 : Str -> N ; +mkN108 base = + case base of { + base_1+"я"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"й"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"ы" ; + Pl => base_1+"й"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ам" ; + Pl => base_1+"й"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN108" + } ; + +mkN109 : Str -> N ; +mkN109 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => "і"+base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => "і"+base_1+base_2+"ы" + } ; + Dat => table { + Sg => "і"+base_1+base_2+"у" ; + Pl => "і"+base_1+base_2+"ам" + } ; + Gen => table { + Sg => "і"+base_1+base_2+"а" ; + Pl => "і"+base_1+base_2+"оў" + } ; + Loc => table { + Sg => "і"+base_1+base_2+"е" ; + Pl => "і"+base_1+base_2+"ах" + } ; + Instr => table { + Sg => "і"+base_1+base_2+"ом" ; + Pl => "і"+base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN109" + } ; + +mkN110 : Str -> N ; +mkN110 base = + case base of { + base_1+"е"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"я"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёў" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ём" ; + Pl => base_1+"я"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN110" + } ; + +mkN111 : Str -> N ; +mkN111 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN111" + } ; + +mkN112 : Str -> N ; +mkN112 base = + case base of { + base_1+"о"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"я" ; + Pl => base_1+"о"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ём" ; + Pl => base_1+"о"+base_2+"ьмі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN112" + } ; + +mkN113 : Str -> N ; +mkN113 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN113" + } ; + +mkN114 : Str -> N ; +mkN114 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"хі" + } ; + Acc => table { + Sg => base_1+"ху" ; + Pl => base_1+"х" + } ; + Dat => table { + Sg => base_1+"се" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"хі" ; + Pl => base_1+"х" + } ; + Loc => table { + Sg => base_1+"се" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хай" ; + Pl => base_1+"хамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN114" + } ; + +mkN115 : Str -> N ; +mkN115 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"гі" + } ; + Acc => table { + Sg => base_1+"г" ; + Pl => base_1+"гі" + } ; + Dat => table { + Sg => base_1+"гу" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"гоў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гам" ; + Pl => base_1+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN115" + } ; + +mkN116 : Str -> N ; +mkN116 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"сю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN116" + } ; + +mkN117 : Str -> N ; +mkN117 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN117" + } ; + +mkN118 : Str -> N ; +mkN118 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ём" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN118" + } ; + +mkN119 : Str -> N ; +mkN119 base = + case base of { + base_1+"от" => lin N + { s = table { + Nom => table { + Sg => base_1+"от" ; + Pl => base_1+"аты" + } ; + Acc => table { + Sg => base_1+"от" ; + Pl => base_1+"аты" + } ; + Dat => table { + Sg => base_1+"оту" ; + Pl => base_1+"атам" + } ; + Gen => table { + Sg => base_1+"оту" ; + Pl => base_1+"атоў" + } ; + Loc => table { + Sg => base_1+"оце" ; + Pl => base_1+"атах" + } ; + Instr => table { + Sg => base_1+"отам" ; + Pl => base_1+"атамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN119" + } ; + +mkN120 : Str -> N ; +mkN120 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; --guessed + Pl => base_1+"аў" --guessed + } ; + Dat => table { + Sg => base_1+"у" ; --guessed + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; --guessed + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ам" ; --guessed + Pl => base_1+"амі" --guessed + } + } ; + Voc = table { + Sg => base_1+"зе" ; --guessed + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN120" + } ; + +mkN121 : Str -> N ; +mkN121 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN121" + } ; + +mkN122 : Str -> N ; +mkN122 base = + case base of { + base_1+"ё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"ь"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ь"+base_2+"ом" ; + Pl => base_1+"ь"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN122" + } ; + +mkN123 : Str -> N ; +mkN123 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN123" + } ; + +mkN124 : Str -> N ; +mkN124 base = + case base of { + base_1+"йка" => lin N + { s = table { + Nom => table { + Sg => base_1+"йка" ; + Pl => base_1+"йкі" + } ; + Acc => table { + Sg => base_1+"йку" ; + Pl => base_1+"йкі" + } ; + Dat => table { + Sg => base_1+"йцы" ; + Pl => base_1+"йкам" + } ; + Gen => table { + Sg => base_1+"йкі" ; + Pl => base_1+"ек" + } ; + Loc => table { + Sg => base_1+"йцы" ; + Pl => base_1+"йках" + } ; + Instr => table { + Sg => base_1+"йкай" ; + Pl => base_1+"йкамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN124" + } ; + +mkN125 : Str -> N ; +mkN125 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"тоў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"том" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN125" + } ; + +mkN126 : Str -> N ; +mkN126 base = + case base of { + base_1+"ака" => lin N + { s = table { + Nom => table { + Sg => base_1+"ака" ; + Pl => base_1+"экі" + } ; + Acc => table { + Sg => base_1+"аку" ; + Pl => base_1+"экі" + } ; + Dat => table { + Sg => base_1+"ацэ" ; + Pl => base_1+"экам" + } ; + Gen => table { + Sg => base_1+"акі" ; + Pl => base_1+"эк" + } ; + Loc => table { + Sg => base_1+"ацэ" ; + Pl => base_1+"эках" + } ; + Instr => table { + Sg => base_1+"акой" ; + Pl => base_1+"экамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN126" + } ; + +mkN127 : Str -> N ; +mkN127 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN127" + } ; + +mkN128 : Str -> N ; +mkN128 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ак" + } ; + Dat => table { + Sg => base_1+"цы" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"кі" ; + Pl => base_1+"ак" + } ; + Loc => table { + Sg => base_1+"цы" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кай" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN128" + } ; + +mkN129 : Str -> N ; +mkN129 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN129" + } ; + +mkN130 : Str -> N ; +mkN130 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN130" + } ; + +mkN131 : Str -> N ; +mkN131 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"таў" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"таў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN131" + } ; + +mkN132 : Str -> N ; +mkN132 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ёў" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ёў" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN132" + } ; + +mkN133 : Str -> N ; +mkN133 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN133" + } ; + +mkN134 : Str -> N ; +mkN134 base = + case base of { + base_1+"оў" => lin N + { s = table { + Nom => table { + Sg => base_1+"оў" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"оў" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ыві" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ыві" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ыві" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"оўю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN134" + } ; + +mkN135 : Str -> N ; +mkN135 base = + case base of { + base_1+"я"+base_2@?+"т"+base_3@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"т"+base_3+"а" ; + Pl => base_1+"ё"+base_2+"т"+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"т"+base_3+"у" ; + Pl => base_1+"я"+base_2+"цё"+base_3 + } ; + Dat => table { + Sg => base_1+"я"+base_2+"т"+base_3+"ы" ; + Pl => base_1+"ё"+base_2+"т"+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"т"+base_3+"ы" ; + Pl => base_1+"я"+base_2+"цё"+base_3 + } ; + Loc => table { + Sg => base_1+"я"+base_2+"т"+base_3+"ы" ; + Pl => base_1+"ё"+base_2+"т"+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"т"+base_3+"ой" ; + Pl => base_1+"ё"+base_2+"т"+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN135" + } ; + +mkN136 : Str -> N ; +mkN136 base = + case base of { + base_1+"а"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"зе" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+"а"+base_2+"зе" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN136" + } ; + +mkN137 : Str -> N ; +mkN137 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN137" + } ; + +mkN138 : Str -> N ; +mkN138 base = + case base of { + base_1+"ва" => lin N + { s = table { + Nom => table { + Sg => base_1+"ва" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => base_1+"ву" ; + Pl => base_1+"ў" + } ; + Dat => table { + Sg => base_1+"ве" ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"вы" ; + Pl => base_1+"ў" + } ; + Loc => table { + Sg => base_1+"ве" ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => base_1+"вай" ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN138" + } ; + +mkN139 : Str -> N ; +mkN139 base = + case base of { + base_1+"а"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2 + } ; + Dat => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2 + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN139" + } ; + +mkN140 : Str -> N ; +mkN140 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN140" + } ; + +mkN141 : Str -> N ; +mkN141 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN141" + } ; + +mkN142 : Str -> N ; +mkN142 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"зі" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"зяў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"зям" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"зяў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"зях" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"зямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN142" + } ; + +mkN143 : Str -> N ; +mkN143 base = + case base of { + base_1+"ока" => lin N + { s = table { + Nom => table { + Sg => base_1+"ока" ; + Pl => base_1+"очы" + } ; + Acc => table { + Sg => base_1+"ока" ; + Pl => base_1+"очы" + } ; + Dat => table { + Sg => base_1+"оку" ; + Pl => base_1+"ачам" + } ; + Gen => table { + Sg => base_1+"ока" ; + Pl => base_1+"ачэй" + } ; + Loc => table { + Sg => base_1+"оку" ; + Pl => base_1+"ачах" + } ; + Instr => table { + Sg => base_1+"окам" ; + Pl => base_1+"ачамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN143" + } ; + +mkN144 : Str -> N ; +mkN144 base = + case base of { + base_1+"o" => lin N + { s = table { + Nom => table { + Sg => base_1+"o" ; + Pl => nonExist + } ; + Acc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"a" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN144" + } ; + +mkN145 : Str -> N ; +mkN145 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"аў" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN145" + } ; + +mkN146 : Str -> N ; +mkN146 base = + case base of { + base_1+"ава" => lin N + { s = table { + Nom => table { + Sg => base_1+"ава" ; + Pl => base_1+"овы" + } ; + Acc => table { + Sg => base_1+"аву" ; + Pl => base_1+"овы" + } ; + Dat => table { + Sg => base_1+"аве" ; + Pl => base_1+"овам" + } ; + Gen => table { + Sg => base_1+"авы" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"аве" ; + Pl => base_1+"овах" + } ; + Instr => table { + Sg => base_1+"авой" ; + Pl => base_1+"овамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN146" + } ; + +mkN147 : Str -> N ; +mkN147 base = + case base of { + base_1+"е"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"ёсы" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"ёсы" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ёсам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"ёс" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"е" ; + Pl => base_1+"я"+base_2+"ёсах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"ёсамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN147" + } ; + +mkN148 : Str -> N ; +mkN148 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN148" + } ; + +mkN149 : Str -> N ; +mkN149 base = + case base of { + base_1+"а"+base_2@(?+?)+"як" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"як" ; + Pl => base_1+"э"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"яка" ; + Pl => base_1+"а"+base_2+"ей" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"яку" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"яка" ; + Pl => base_1+"а"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"яку" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"яком" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN149" + } ; + +mkN150 : Str -> N ; +mkN150 base = + case base of { + base_1+"ва" => lin N + { s = table { + Nom => table { + Sg => base_1+"ва" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => base_1+"ву" ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => base_1+"ве" ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"вы" ; + Pl => base_1+"ў" + } ; + Loc => table { + Sg => base_1+"ве" ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => base_1+"вай" ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN150" + } ; + +mkN151 : Str -> N ; +mkN151 base = + case base of { + base_1+"й"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ам" ; + Pl => base_1+"й"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN151" + } ; + +mkN152 : Str -> N ; +mkN152 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN152" + } ; + +mkN153 : Str -> N ; +mkN153 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"яты" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ят" + } ; + Dat => table { + Sg => base_1+"яці" ; + Pl => base_1+"ятам" + } ; + Gen => table { + Sg => base_1+"яці" ; + Pl => base_1+"ят" + } ; + Loc => table { + Sg => base_1+"яці" ; + Pl => base_1+"ятах" + } ; + Instr => table { + Sg => base_1+"ём" ; + Pl => base_1+"ятамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN153" + } ; + +mkN154 : Str -> N ; +mkN154 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"яў" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN154" + } ; + +mkN155 : Str -> N ; +mkN155 base = + case base of { + base_1+"о"+base_2@("р"|(?+?)) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN155" + } ; + +mkN156 : Str -> N ; +mkN156 base = + case base of { + base_1+"ава" => lin N + { s = table { + Nom => table { + Sg => base_1+"ава" ; + Pl => base_1+"овы" + } ; + Acc => table { + Sg => base_1+"аву" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"аве" ; + Pl => base_1+"овам" + } ; + Gen => table { + Sg => base_1+"авы" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"аве" ; + Pl => base_1+"овах" + } ; + Instr => table { + Sg => base_1+"авой" ; + Pl => base_1+"овамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN156" + } ; + +mkN157 : Str -> N ; +mkN157 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN157" + } ; + +mkN158 : Str -> N ; +mkN158 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN158" + } ; + +mkN159 : Str -> N ; +mkN159 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN159" + } ; + +mkN160 : Str -> N ; +mkN160 base = + case base of { + base_1+"йка" => lin N + { s = table { + Nom => table { + Sg => base_1+"йка" ; + Pl => base_1+"йкі" + } ; + Acc => table { + Sg => base_1+"йку" ; + Pl => base_1+"ек" + } ; + Dat => table { + Sg => base_1+"йцы" ; + Pl => base_1+"йкам" + } ; + Gen => table { + Sg => base_1+"йкі" ; + Pl => base_1+"ек" + } ; + Loc => table { + Sg => base_1+"йцы" ; + Pl => base_1+"йках" + } ; + Instr => table { + Sg => base_1+"йкай" ; + Pl => base_1+"йкамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN160" + } ; + +mkN161 : Str -> N ; +mkN161 base = + case base of { + base_1+"ўка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ўка" ; + Pl => base_1+"ўкі" + } ; + Acc => table { + Sg => base_1+"ўку" ; + Pl => base_1+"вак" + } ; + Dat => table { + Sg => base_1+"ўцы" ; + Pl => base_1+"ўкам" + } ; + Gen => table { + Sg => base_1+"ўкі" ; + Pl => base_1+"вак" + } ; + Loc => table { + Sg => base_1+"ўцы" ; + Pl => base_1+"ўках" + } ; + Instr => table { + Sg => base_1+"ўкай" ; + Pl => base_1+"ўкамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN161" + } ; + +mkN162 : Str -> N ; +mkN162 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ёй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN162" + } ; + +mkN163 : Str -> N ; +mkN163 base = + case base of { + base_1+"о"+base_2@("расц"|(?+?))+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"а"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN163" + } ; + +mkN164 : Str -> N ; +mkN164 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ню" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN164" + } ; + +mkN165 : Str -> N ; +mkN165 base = + case base of { + base_1+"я"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ой" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN165" + } ; + +mkN166 : Str -> N ; +mkN166 base = + case base of { + base_1+"ва" => lin N + { s = table { + Nom => table { + Sg => base_1+"ва" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => base_1+"ва" ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => base_1+"ву" ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"ва" ; + Pl => base_1+"ў" + } ; + Loc => table { + Sg => base_1+"ве" ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => base_1+"вам" ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN166" + } ; + +mkN167 : Str -> N ; +mkN167 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ёй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN167" + } ; + +mkN168 : Str -> N ; +mkN168 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN168" + } ; + +mkN169 : Str -> N ; +mkN169 base = + case base of { + base_1+"ё"+base_2@(?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN169" + } ; + +mkN170 : Str -> N ; +mkN170 base = + case base of { + base_1+"я"+base_2@(?+?)+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"я" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"ю" ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"і" ; + Pl => base_1+"е"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"і" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ёй" ; + Pl => base_1+"е"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN170" + } ; + +mkN171 : Str -> N ; +mkN171 base = + case base of { + "ча"+base_1+"авек" => lin N + { s = table { + Nom => table { + Sg => "ча"+base_1+"авек" ; + Pl => base_1+"юдзі" + } ; + Acc => table { + Sg => "ча"+base_1+"авека" ; + Pl => base_1+"юдзей" + } ; + Dat => table { + Sg => "ча"+base_1+"авеку" ; + Pl => base_1+"юдзям" + } ; + Gen => table { + Sg => "ча"+base_1+"авека" ; + Pl => base_1+"юдзей" + } ; + Loc => table { + Sg => "ча"+base_1+"авеку" ; + Pl => base_1+"юдзях" + } ; + Instr => table { + Sg => "ча"+base_1+"авекам" ; + Pl => base_1+"юдзьмі" + } + } ; + Voc = table { + Sg => "ча"+base_1+"авеча" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN171" + } ; + +mkN172 : Str -> N ; +mkN172 base = + case base of { + base_1+"о"+base_2@(?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN172" + } ; + +mkN173 : Str -> N ; +mkN173 base = + case base of { + base_1+"зе"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"зе"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"зе"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN173" + } ; + +mkN174 : Str -> N ; +mkN174 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"гі" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"гі" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"гу" ; + Pl => base_1+"я"+base_2+"гам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"га" ; + Pl => base_1+"я"+base_2+"гоў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"гу" ; + Pl => base_1+"я"+base_2+"гах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"гом" ; + Pl => base_1+"я"+base_2+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN174" + } ; + +mkN175 : Str -> N ; +mkN175 base = + case base of { + base_1+"ве"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ве"+base_2+"ь" ; + Pl => base_1+"ў"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ве"+base_2+"ь" ; + Pl => base_1+"ў"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"ю" ; + Pl => base_1+"ў"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"я" ; + Pl => base_1+"ў"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"і" ; + Pl => base_1+"ў"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ем" ; + Pl => base_1+"ў"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN175" + } ; + +mkN176 : Str -> N ; +mkN176 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"зе" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN176" + } ; + +mkN177 : Str -> N ; +mkN177 base = + case base of { + base_1+"а"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN177" + } ; + +mkN178 : Str -> N ; +mkN178 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN178" + } ; + +mkN179 : Str -> N ; +mkN179 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN179" + } ; + +mkN180 : Str -> N ; +mkN180 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN180" + } ; + +mkN181 : Str -> N ; +mkN181 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ыя" + } ; + Acc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ыя" + } ; + Dat => table { + Sg => base_1+"аму" ; + Pl => base_1+"ым" + } ; + Gen => table { + Sg => base_1+"ага" ; + Pl => base_1+"ых" + } ; + Loc => table { + Sg => base_1+"ым" ; + Pl => base_1+"ых" + } ; + Instr => table { + Sg => base_1+"ым" ; + Pl => base_1+"ымі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN181" + } ; + +mkN182 : Str -> N ; +mkN182 base = + case base of { + base_1+"а"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"э"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"э"+base_2 + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"э"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"э"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN182" + } ; + +mkN183 : Str -> N ; +mkN183 base = + case base of { + base_1+"зе"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"зе"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"зе"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+"зё"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ём" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN183" + } ; + +mkN184 : Str -> N ; +mkN184 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"чу" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN184" + } ; + +mkN185 : Str -> N ; +mkN185 base = + case base of { + base_1+"я"+base_2@(?+?)+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"зе" ; + Pl => base_1+"ё"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"ё"+base_2 + } ; + Loc => table { + Sg => base_1+"я"+base_2+"зе" ; + Pl => base_1+"ё"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ой" ; + Pl => base_1+"ё"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN185" + } ; + +mkN186 : Str -> N ; +mkN186 base = + case base of { + base_1+"еце"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"еце"+base_2 ; + Pl => base_1+"ят"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"еце"+base_2 ; + Pl => base_1+"ят"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ет"+base_2+"у" ; + Pl => base_1+"ят"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ет"+base_2+"у" ; + Pl => base_1+"ят"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ет"+base_2+"ы" ; + Pl => base_1+"ят"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ет"+base_2+"ам" ; + Pl => base_1+"ят"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN186" + } ; + +mkN187 : Str -> N ; +mkN187 base = + case base of { + base_1+"я"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"ё"+base_2 + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ой" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN187" + } ; + +mkN188 : Str -> N ; +mkN188 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN188" + } ; + +mkN189 : Str -> N ; +mkN189 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN189" + } ; + +mkN190 : Str -> N ; +mkN190 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN190" + } ; + +mkN191 : Str -> N ; +mkN191 base = + case base of { + base_1+"к" => lin N + { s = table { + Nom => table { + Sg => base_1+"к" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ка" ; + Pl => base_1+"коў" + } ; + Dat => table { + Sg => base_1+"ку" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"ка" ; + Pl => base_1+"коў" + } ; + Loc => table { + Sg => base_1+"ку" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"ком" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => base_1+"ча" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN191" + } ; + +mkN192 : Str -> N ; +mkN192 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"зе" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN192" + } ; + +mkN193 : Str -> N ; +mkN193 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN193" + } ; + +mkN194 : Str -> N ; +mkN194 base = + case base of { + base_1+"ог" => lin N + { s = table { + Nom => table { + Sg => base_1+"ог" ; + Pl => base_1+"агі" + } ; + Acc => table { + Sg => base_1+"ог" ; + Pl => base_1+"агі" + } ; + Dat => table { + Sg => base_1+"огу" ; + Pl => base_1+"агам" + } ; + Gen => table { + Sg => base_1+"ога" ; + Pl => base_1+"агоў" + } ; + Loc => table { + Sg => base_1+"озе" ; + Pl => base_1+"агах" + } ; + Instr => table { + Sg => base_1+"огам" ; + Pl => base_1+"агамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN194" + } ; + +mkN195 : Str -> N ; +mkN195 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN195" + } ; + +mkN196 : Str -> N ; +mkN196 base = + case base of { + base_1+"ька" => lin N + { s = table { + Nom => table { + Sg => base_1+"ька" ; + Pl => base_1+"ькі" + } ; + Acc => table { + Sg => base_1+"ьку" ; + Pl => base_1+"ек" + } ; + Dat => table { + Sg => base_1+"ьцы" ; + Pl => base_1+"ькам" + } ; + Gen => table { + Sg => base_1+"ькі" ; + Pl => base_1+"ек" + } ; + Loc => table { + Sg => base_1+"ьцы" ; + Pl => base_1+"ьках" + } ; + Instr => table { + Sg => base_1+"ькай" ; + Pl => base_1+"ькамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN196" + } ; + +mkN197 : Str -> N ; +mkN197 base = + case base of { + base_1+"ька" => lin N + { s = table { + Nom => table { + Sg => base_1+"ька" ; + Pl => base_1+"ькі" + } ; + Acc => table { + Sg => base_1+"ьку" ; + Pl => base_1+"ькі" + } ; + Dat => table { + Sg => base_1+"ьцы" ; + Pl => base_1+"ькам" + } ; + Gen => table { + Sg => base_1+"ькі" ; + Pl => base_1+"ек" + } ; + Loc => table { + Sg => base_1+"ьцы" ; + Pl => base_1+"ьках" + } ; + Instr => table { + Sg => base_1+"ькай" ; + Pl => base_1+"ькамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN197" + } ; + +mkN198 : Str -> N ; +mkN198 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"тоў" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"тоў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"том" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN198" + } ; + +mkN199 : Str -> N ; +mkN199 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"оў" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN199" + } ; + +mkN200 : Str -> N ; +mkN200 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"г" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"гу" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"гу" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"гам" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN200" + } ; + +mkN201 : Str -> N ; +mkN201 base = + case base of { + base_1+"е" => lin N + { s = table { + Nom => table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"е" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN201" + } ; + +mkN202 : Str -> N ; +mkN202 base = + case base of { + base_1+"е"+base_2@?+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"та" ; + Pl => base_1+"я"+base_2+"ты" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"та" ; + Pl => base_1+"я"+base_2+"ты" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ту" ; + Pl => base_1+"я"+base_2+"там" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"та" ; + Pl => base_1+"е"+base_2+"т" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"це" ; + Pl => base_1+"я"+base_2+"тах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"там" ; + Pl => base_1+"я"+base_2+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN202" + } ; + +mkN203 : Str -> N ; +mkN203 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"ёў" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"ёў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ём" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN203" + } ; + +mkN204 : Str -> N ; +mkN204 base = + case base of { + base_1+"о"+base_2@(?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN204" + } ; + +mkN205 : Str -> N ; +mkN205 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ту" ; + Pl => base_1+"тоў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN205" + } ; + +mkN206 : Str -> N ; +mkN206 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN206" + } ; + +mkN207 : Str -> N ; +mkN207 base = + case base of { + base_1+"о"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ём" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN207" + } ; + +mkN208 : Str -> N ; +mkN208 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN208" + } ; + +mkN209 : Str -> N ; +mkN209 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"зе" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN209" + } ; + +mkN210 : Str -> N ; +mkN210 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"ія" + } ; + Acc => table { + Sg => base_1+"ага" ; + Pl => base_1+"іх" + } ; + Dat => table { + Sg => base_1+"аму" ; + Pl => base_1+"ім" + } ; + Gen => table { + Sg => base_1+"ага" ; + Pl => base_1+"іх" + } ; + Loc => table { + Sg => base_1+"ім" ; + Pl => base_1+"іх" + } ; + Instr => table { + Sg => base_1+"ім" ; + Pl => base_1+"імі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN210" + } ; + +mkN211 : Str -> N ; +mkN211 base = + case base of { + base_1+"ага" => lin N + { s = table { + Nom => table { + Sg => base_1+"ага" ; + Pl => base_1+"огі" + } ; + Acc => table { + Sg => base_1+"агу" ; + Pl => base_1+"огі" + } ; + Dat => table { + Sg => base_1+"азе" ; + Pl => base_1+"агам" + } ; + Gen => table { + Sg => base_1+"агі" ; + Pl => base_1+"ог" + } ; + Loc => table { + Sg => base_1+"азе" ; + Pl => base_1+"агах" + } ; + Instr => table { + Sg => base_1+"агой" ; + Pl => base_1+"агамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN211" + } ; + +mkN212 : Str -> N ; +mkN212 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"лю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN212" + } ; + +mkN213 : Str -> N ; +mkN213 base = + case base of { + base_1+"я"+base_2@?+base_3@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+base_3+"а" ; + Pl => base_1+"ё"+base_2+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+base_3+"у" ; + Pl => base_1+"ё"+base_2+base_3+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+base_3+"е" ; + Pl => base_1+"ё"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+base_3+"ы" ; + Pl => base_1+"ё"+base_2+"е"+base_3 + } ; + Loc => table { + Sg => base_1+"я"+base_2+base_3+"е" ; + Pl => base_1+"ё"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+base_3+"ой" ; + Pl => base_1+"ё"+base_2+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN213" + } ; + +mkN214 : Str -> N ; +mkN214 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN214" + } ; + +mkN215 : Str -> N ; +mkN215 base = + case base of { + base_1@?+"а"+base_2+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN215" + } ; + +mkN216 : Str -> N ; +mkN216 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"а"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN216" + } ; + +mkN217 : Str -> N ; +mkN217 base = + case base of { + base_1+"ўка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ўка" ; + Pl => base_1+"ўкі" + } ; + Acc => table { + Sg => base_1+"ўку" ; + Pl => base_1+"ўкі" + } ; + Dat => table { + Sg => base_1+"ўцы" ; + Pl => base_1+"ўкам" + } ; + Gen => table { + Sg => base_1+"ўкі" ; + Pl => base_1+"вак" + } ; + Loc => table { + Sg => base_1+"ўцы" ; + Pl => base_1+"ўках" + } ; + Instr => table { + Sg => base_1+"ўкай" ; + Pl => base_1+"ўкамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN217" + } ; + +mkN218 : Str -> N ; +mkN218 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ту" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"це" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ты" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"той" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN218" + } ; + +mkN219 : Str -> N ; +mkN219 base = + case base of { + base_1+"ец" => lin N + { s = table { + Nom => table { + Sg => base_1+"ец" ; + Pl => base_1+"цы" + } ; + Acc => table { + Sg => base_1+"ца" ; + Pl => base_1+"цаў" + } ; + Dat => table { + Sg => base_1+"цу" ; + Pl => base_1+"цам" + } ; + Gen => table { + Sg => base_1+"ца" ; + Pl => base_1+"цаў" + } ; + Loc => table { + Sg => base_1+"цу" ; + Pl => base_1+"цах" + } ; + Instr => table { + Sg => base_1+"цам" ; + Pl => base_1+"цамі" + } + } ; + Voc = table { + Sg => base_1+"ча" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN219" + } ; + +mkN220 : Str -> N ; +mkN220 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"эй" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"чу" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN220" + } ; + +mkN221 : Str -> N ; +mkN221 base = + case base of { + base_1+"ыха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ыха" ; + Pl => base_1+"охі" + } ; + Acc => table { + Sg => base_1+"ыху" ; + Pl => base_1+"ох" + } ; + Dat => table { + Sg => base_1+"ысе" ; + Pl => base_1+"охам" + } ; + Gen => table { + Sg => base_1+"ыхі" ; + Pl => base_1+"ох" + } ; + Loc => table { + Sg => base_1+"ысе" ; + Pl => base_1+"охах" + } ; + Instr => table { + Sg => base_1+"ыхой" ; + Pl => base_1+"охамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN221" + } ; + +mkN222 : Str -> N ; +mkN222 base = + case base of { + "а"+base_1+"о" => lin N + { s = table { + Nom => table { + Sg => "а"+base_1+"о" ; + Pl => "во"+base_1+"ы" + } ; + Acc => table { + Sg => "а"+base_1+"о" ; + Pl => "во"+base_1+"ы" + } ; + Dat => table { + Sg => "а"+base_1+"у" ; + Pl => "во"+base_1+"ам" + } ; + Gen => table { + Sg => "а"+base_1+"а" ; + Pl => "во"+base_1+"аў" + } ; + Loc => table { + Sg => "а"+base_1+"е" ; + Pl => "во"+base_1+"ах" + } ; + Instr => table { + Sg => "а"+base_1+"ом" ; + Pl => "во"+base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN222" + } ; + +mkN223 : Str -> N ; +mkN223 base = + case base of { + "во"+base_1+"е"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => "во"+base_1+"е"+base_2+"а" ; + Pl => "а"+base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => "во"+base_1+"е"+base_2+"а" ; + Pl => "а"+base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => "во"+base_1+"е"+base_2+"у" ; + Pl => "а"+base_1+"ё"+base_2+"ам" + } ; + Gen => table { + Sg => "во"+base_1+"е"+base_2+"а" ; + Pl => "а"+base_1+"ё"+base_2 + } ; + Loc => table { + Sg => "во"+base_1+"е"+base_2+"ы" ; + Pl => "а"+base_1+"ё"+base_2+"ах" + } ; + Instr => table { + Sg => "во"+base_1+"е"+base_2+"ам" ; + Pl => "а"+base_1+"ё"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN223" + } ; + +mkN224 : Str -> N ; +mkN224 base = + case base of { + base_1+"я"+base_2@?+base_3@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+base_3+"о" ; + Pl => base_1+"ё"+base_2+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+base_3+"о" ; + Pl => base_1+"ё"+base_2+base_3+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+base_3+"у" ; + Pl => base_1+"ё"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+base_3+"а" ; + Pl => base_1+"ё"+base_2+"зе"+base_3 + } ; + Loc => table { + Sg => base_1+"я"+base_2+base_3+"ы" ; + Pl => base_1+"ё"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+base_3+"ом" ; + Pl => base_1+"ё"+base_2+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN224" + } ; + +mkN225 : Str -> N ; +mkN225 base = + case base of { + base_1+"і"+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"і"+base_2+"я" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"і"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ей" + } ; + Dat => table { + Sg => base_1+"і"+base_2+"яці" ; + Pl => base_1+"е"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"і"+base_2+"яці" ; + Pl => base_1+"я"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"і"+base_2+"яці" ; + Pl => base_1+"е"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"і"+base_2+"ем" ; + Pl => base_1+"е"+base_2+"ьмі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN225" + } ; + +mkN226 : Str -> N ; +mkN226 base = + case base of { + base_1+"я"+base_2@?+"'я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"'я" ; + Pl => base_1+"е"+base_2+"'і" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"'ю" ; + Pl => base_1+"е"+base_2+"'і" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"'і" ; + Pl => base_1+"е"+base_2+"'ям" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"'і" ; + Pl => base_1+"я"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"'і" ; + Pl => base_1+"е"+base_2+"'ях" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"'ёй" ; + Pl => base_1+"е"+base_2+"'ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN226" + } ; + +mkN227 : Str -> N ; +mkN227 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"'ю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN227" + } ; + +mkN228 : Str -> N ; +mkN228 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"шы" + } ; + Acc => table { + Sg => base_1+"ха" ; + Pl => base_1+"шы" + } ; + Dat => table { + Sg => base_1+"ху" ; + Pl => base_1+"шам" + } ; + Gen => table { + Sg => base_1+"ха" ; + Pl => base_1+"шэй" + } ; + Loc => table { + Sg => base_1+"ху" ; + Pl => base_1+"шах" + } ; + Instr => table { + Sg => base_1+"хам" ; + Pl => base_1+"шамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN228" + } ; + +mkN229 : Str -> N ; +mkN229 base = + case base of { + base_1+"оў" => lin N + { s = table { + Nom => table { + Sg => base_1+"оў" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"оў" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ві" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ві" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ві" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"оўю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN229" + } ; + +mkN230 : Str -> N ; +mkN230 base = + case base of { + base_1+"ё" => lin N + { s = table { + Nom => table { + Sg => base_1+"ё" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ё" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ём" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN230" + } ; + +mkN231 : Str -> N ; +mkN231 base = + case base of { + base_1+"я"+base_2@(?+?)+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"ё"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"ё"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"зе" ; + Pl => base_1+"ё"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"ё"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN231" + } ; + +mkN232 : Str -> N ; +mkN232 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ь" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN232" + } ; + +mkN233 : Str -> N ; +mkN233 base = + case base of { + "во"+base_1+"ў" => lin N + { s = table { + Nom => table { + Sg => "во"+base_1+"ў" ; + Pl => "а"+base_1+"вы" + } ; + Acc => table { + Sg => "во"+base_1+"ў" ; + Pl => "а"+base_1+"вы" + } ; + Dat => table { + Sg => "во"+base_1+"ву" ; + Pl => "а"+base_1+"вам" + } ; + Gen => table { + Sg => "во"+base_1+"ва" ; + Pl => "а"+base_1+"воў" + } ; + Loc => table { + Sg => "во"+base_1+"ве" ; + Pl => "а"+base_1+"вах" + } ; + Instr => table { + Sg => "во"+base_1+"вам" ; + Pl => "а"+base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN233" + } ; + +mkN234 : Str -> N ; +mkN234 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1 + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1 ; + Pl => base_1 + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1 ; + Pl => base_1 + } ; + Instr => table { + Sg => base_1 ; + Pl => base_1 + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN234" + } ; + +mkN235 : Str -> N ; +mkN235 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"й"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"аў" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ам" ; + Pl => base_1+"й"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN235" + } ; + +mkN236 : Str -> N ; +mkN236 base = + case base of { + base_1+"е"+base_2@?+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ы" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"е"+base_2+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"эй" ; + Pl => base_1+"я"+base_2+"эй" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN236" + } ; + +mkN237 : Str -> N ; +mkN237 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"я" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN237" + } ; + +mkN238 : Str -> N ; +mkN238 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN238" + } ; + +mkN239 : Str -> N ; +mkN239 base = + case base of { + base_1+"ін" => lin N + { s = table { + Nom => table { + Sg => base_1+"ін" ; + Pl => base_1+"е" + } ; + Acc => table { + Sg => base_1+"іна" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"іну" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"іна" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"іне" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"інам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN239" + } ; + +mkN240 : Str -> N ; +mkN240 base = + case base of { + base_1+"ва"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ва"+base_2 ; + Pl => base_1+"ў"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ва"+base_2 ; + Pl => base_1+"ў"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ам" ; + Pl => base_1+"ў"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN240" + } ; + +mkN241 : Str -> N ; +mkN241 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"яў" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN241" + } ; + +mkN242 : Str -> N ; +mkN242 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"оў" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN242" + } ; + +mkN243 : Str -> N ; +mkN243 base = + case base of { + base_1+"я"+base_2@("ляш"|"люш"|(?+?+?+?)) => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"е"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ы" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN243" + } ; + +mkN244 : Str -> N ; +mkN244 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ей" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ьмі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN244" + } ; + +mkN245 : Str -> N ; +mkN245 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN245" + } ; + +mkN246 : Str -> N ; +mkN246 base = + case base of { + base_1@?+"я"+base_2+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"ё"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"ё"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"ё"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"ё"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN246" + } ; + +mkN247 : Str -> N ; +mkN247 base = + case base of { + base_1+"о"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёў" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ём" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN247" + } ; + +mkN248 : Str -> N ; +mkN248 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN248" + } ; + +mkN249 : Str -> N ; +mkN249 base = + case base of { + base_1+"а"+base_2@?+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ка" ; + Pl => base_1+"о"+base_2+"кі" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"ку" ; + Pl => base_1+"а"+base_2+"ок" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"цэ" ; + Pl => base_1+"о"+base_2+"кам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"кі" ; + Pl => base_1+"а"+base_2+"ок" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"цэ" ; + Pl => base_1+"о"+base_2+"ках" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"кой" ; + Pl => base_1+"о"+base_2+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN249" + } ; + +mkN250 : Str -> N ; +mkN250 base = + case base of { + base_1+"йцец" => lin N + { s = table { + Nom => table { + Sg => base_1+"йцец" ; + Pl => base_1+"йцы" + } ; + Acc => table { + Sg => base_1+"йца" ; + Pl => base_1+"йцоў" + } ; + Dat => table { + Sg => base_1+"йцу" ; + Pl => base_1+"йцам" + } ; + Gen => table { + Sg => base_1+"йца" ; + Pl => base_1+"йцоў" + } ; + Loc => table { + Sg => base_1+"йцу" ; + Pl => base_1+"йцах" + } ; + Instr => table { + Sg => base_1+"йцом" ; + Pl => base_1+"йцамі" + } + } ; + Voc = table { + Sg => "войч"+base_1 ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN250" + } ; + +mkN251 : Str -> N ; +mkN251 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN251" + } ; + +mkN252 : Str -> N ; +mkN252 base = + case base of { + base_1+"ў" => lin N + { s = table { + Nom => table { + Sg => base_1+"ў" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => base_1+"ў" ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => base_1+"ву" ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"ву" ; + Pl => base_1+"ваў" + } ; + Loc => table { + Sg => base_1+"ве" ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => base_1+"вам" ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN252" + } ; + +mkN253 : Str -> N ; +mkN253 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"зе" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ам" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => base_1+"е"+base_2+"у" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN253" + } ; + +mkN254 : Str -> N ; +mkN254 base = + case base of { + base_1+"я"+base_2@?+base_3@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+base_3+"о" ; + Pl => base_1+"ё"+base_2+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+base_3+"о" ; + Pl => base_1+"ё"+base_2+base_3+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+base_3+"у" ; + Pl => base_1+"ё"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+base_3+"а" ; + Pl => base_1+"ё"+base_2+"е"+base_3 + } ; + Loc => table { + Sg => base_1+"я"+base_2+base_3+"е" ; + Pl => base_1+"ё"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+base_3+"ом" ; + Pl => base_1+"ё"+base_2+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN254" + } ; + +mkN255 : Str -> N ; +mkN255 base = + case base of { + base_1+"ё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN255" + } ; + +mkN256 : Str -> N ; +mkN256 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN256" + } ; + +mkN257 : Str -> N ; +mkN257 base = + case base of { + base_1+"я"+base_2@(?+?)+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"ё"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"ё"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"ё"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ой" ; + Pl => base_1+"ё"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN257" + } ; + +mkN258 : Str -> N ; +mkN258 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN258" + } ; + +mkN259 : Str -> N ; +mkN259 base = + case base of { + base_1+"от" => lin N + { s = table { + Nom => table { + Sg => base_1+"от" ; + Pl => base_1+"аты" + } ; + Acc => table { + Sg => base_1+"от" ; + Pl => base_1+"аты" + } ; + Dat => table { + Sg => base_1+"ату" ; + Pl => base_1+"атам" + } ; + Gen => table { + Sg => base_1+"ата" ; + Pl => base_1+"атоў" + } ; + Loc => table { + Sg => base_1+"аце" ; + Pl => base_1+"атах" + } ; + Instr => table { + Sg => base_1+"атом" ; + Pl => base_1+"атамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN259" + } ; + +mkN260 : Str -> N ; +mkN260 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN260" + } ; + +mkN261 : Str -> N ; +mkN261 base = + case base of { + base_1+"ыца" => lin N + { s = table { + Nom => table { + Sg => base_1+"ыца" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"ыцу" ; + Pl => base_1+"эй" + } ; + Dat => table { + Sg => base_1+"ыцы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ыцы" ; + Pl => base_1+"эй" + } ; + Loc => table { + Sg => base_1+"ыцы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ыцай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN261" + } ; + +mkN262 : Str -> N ; +mkN262 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN262" + } ; + +mkN263 : Str -> N ; +mkN263 base = + case base of { + base_1+"яя" => lin N + { s = table { + Nom => table { + Sg => base_1+"яя" ; + Pl => base_1+"еі" + } ; + Acc => table { + Sg => base_1+"яю" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"яі" ; + Pl => base_1+"еям" + } ; + Gen => table { + Sg => base_1+"яі" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"яі" ; + Pl => base_1+"еях" + } ; + Instr => table { + Sg => base_1+"яёй" ; + Pl => base_1+"еямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN263" + } ; + +mkN264 : Str -> N ; +mkN264 base = + case base of { + base_1+"еў" => lin N + { s = table { + Nom => table { + Sg => base_1+"еў" ; + Pl => "і"+base_1+"ьвы" + } ; + Acc => table { + Sg => "і"+base_1+"ьва" ; + Pl => "і"+base_1+"ьвоў" + } ; + Dat => table { + Sg => "і"+base_1+"ьву" ; + Pl => "і"+base_1+"ьвам" + } ; + Gen => table { + Sg => "і"+base_1+"ьва" ; + Pl => "і"+base_1+"ьвоў" + } ; + Loc => table { + Sg => "і"+base_1+"ьве" ; + Pl => "і"+base_1+"ьвах" + } ; + Instr => table { + Sg => "і"+base_1+"ьвом" ; + Pl => "і"+base_1+"ьвамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN264" + } ; + +mkN265 : Str -> N ; +mkN265 base = + case base of { + base_1+"зе"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"зе"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN265" + } ; + +mkN266 : Str -> N ; +mkN266 base = + case base of { + base_1+"а"+base_2@(?+?+?)+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"э"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"э"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"э"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"э"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN266" + } ; + +mkN267 : Str -> N ; +mkN267 base = + case base of { + base_1+"о"+base_2@(?+?+?)+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"эй" ; + Pl => base_1+"а"+base_2+"эй" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN267" + } ; + +mkN268 : Str -> N ; +mkN268 base = + case base of { + "во"+base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => "во"+base_1+"ь" ; + Pl => "во"+base_1+"і" + } ; + Acc => table { + Sg => "во"+base_1+"ь" ; + Pl => "во"+base_1+"і" + } ; + Dat => table { + Sg => "во"+base_1+"і" ; + Pl => "а"+base_1+"ям" + } ; + Gen => table { + Sg => "во"+base_1+"і" ; + Pl => "а"+base_1+"ей" + } ; + Loc => table { + Sg => "во"+base_1+"і" ; + Pl => "а"+base_1+"ях" + } ; + Instr => table { + Sg => "во"+base_1+"ю" ; + Pl => "а"+base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN268" + } ; + +mkN269 : Str -> N ; +mkN269 base = + case base of { + base_1+"зе"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"зе"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN269" + } ; + +mkN270 : Str -> N ; +mkN270 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"ту" ; + Pl => base_1+"т" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ты" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN270" + } ; + +mkN271 : Str -> N ; +mkN271 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ей" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN271" + } ; + +mkN272 : Str -> N ; +mkN272 base = + case base of { + base_1+"вы" => lin N + { s = table { + Nom => table { + Sg => base_1+"вы" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"ў" ; + Pl => base_1+"ў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN272" + } ; + +mkN273 : Str -> N ; +mkN273 base = + case base of { + base_1+"й"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"й"+base_2+"о" ; + Pl => base_1+"й"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"і"+base_2 + } ; + Dat => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"і"+base_2 + } ; + Loc => table { + Sg => base_1+"й"+base_2+"е" ; + Pl => base_1+"й"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ом" ; + Pl => base_1+"й"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN273" + } ; + +mkN274 : Str -> N ; +mkN274 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN274" + } ; + +mkN275 : Str -> N ; +mkN275 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN275" + } ; + +mkN276 : Str -> N ; +mkN276 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN276" + } ; + +mkN277 : Str -> N ; +mkN277 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN277" + } ; + +mkN278 : Str -> N ; +mkN278 base = + case base of { + base_1+"я"+base_2@("л"|"ств"|(?+?))+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"ё"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"ё"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"ё"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"ё"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN278" + } ; + +mkN279 : Str -> N ; +mkN279 base = + case base of { + base_1+"ў"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ве"+base_2 + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"е" ; + Pl => base_1+"ў"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"ы" ; + Pl => base_1+"ве"+base_2 + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"е" ; + Pl => base_1+"ў"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ай" ; + Pl => base_1+"ў"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN279" + } ; + +mkN280 : Str -> N ; +mkN280 base = + case base of { + base_1+"ей" => lin N + { s = table { + Nom => table { + Sg => base_1+"ей" ; + Pl => base_1+"лі" + } ; + Acc => table { + Sg => base_1+"ей" ; + Pl => base_1+"лі" + } ; + Dat => table { + Sg => base_1+"ею" ; + Pl => base_1+"лям" + } ; + Gen => table { + Sg => base_1+"ея" ; + Pl => base_1+"лёў" + } ; + Loc => table { + Sg => base_1+"еі" ; + Pl => base_1+"лях" + } ; + Instr => table { + Sg => base_1+"еем" ; + Pl => base_1+"лямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN280" + } ; + +mkN281 : Str -> N ; +mkN281 base = + case base of { + base_1+"ей" => lin N + { s = table { + Nom => table { + Sg => base_1+"ей" ; + Pl => base_1+"'і" + } ; + Acc => table { + Sg => base_1+"'я" ; + Pl => base_1+"'ёў" + } ; + Dat => table { + Sg => base_1+"'ю" ; + Pl => base_1+"'ям" + } ; + Gen => table { + Sg => base_1+"'я" ; + Pl => base_1+"'ёў" + } ; + Loc => table { + Sg => base_1+"'і" ; + Pl => base_1+"'ях" + } ; + Instr => table { + Sg => base_1+"'ём" ; + Pl => base_1+"'ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN281" + } ; + +mkN282 : Str -> N ; +mkN282 base = + case base of { + base_1+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"о" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"о" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN282" + } ; + +mkN283 : Str -> N ; +mkN283 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN283" + } ; + +mkN284 : Str -> N ; +mkN284 base = + case base of { + base_1+"я"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ой" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN284" + } ; + +mkN285 : Str -> N ; +mkN285 base = + case base of { + base_1+"ын" => lin N + { s = table { + Nom => table { + Sg => base_1+"ын" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"ына" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ыну" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ына" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ыне" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ынам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN285" + } ; + +mkN286 : Str -> N ; +mkN286 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN286" + } ; + +mkN287 : Str -> N ; +mkN287 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN287" + } ; + +mkN288 : Str -> N ; +mkN288 base = + case base of { + base_1+"е"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"я"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"я"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"я"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN288" + } ; + +mkN289 : Str -> N ; +mkN289 base = + case base of { + base_1+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"га" ; + Pl => base_1+"гі" + } ; + Acc => table { + Sg => base_1+"гу" ; + Pl => base_1+"г" + } ; + Dat => table { + Sg => base_1+"зе" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"гі" ; + Pl => base_1+"г" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гай" ; + Pl => base_1+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN289" + } ; + +mkN290 : Str -> N ; +mkN290 base = + case base of { + base_1+"а"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"ей" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN290" + } ; + +mkN291 : Str -> N ; +mkN291 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ыя" + } ; + Acc => table { + Sg => base_1+"ага" ; + Pl => base_1+"ых" + } ; + Dat => table { + Sg => base_1+"аму" ; + Pl => base_1+"ым" + } ; + Gen => table { + Sg => base_1+"ага" ; + Pl => base_1+"ых" + } ; + Loc => table { + Sg => base_1+"ым" ; + Pl => base_1+"ых" + } ; + Instr => table { + Sg => base_1+"ым" ; + Pl => base_1+"ымі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN291" + } ; + +mkN292 : Str -> N ; +mkN292 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" --guessed + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" --guessed + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 --guessed + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" --guessed + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN292" + } ; + +mkN293 : Str -> N ; +mkN293 base = + case base of { + base_1+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"ь" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+base_2+"ь" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"д"+base_2+"ю" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN293" + } ; + +mkN294 : Str -> N ; +mkN294 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN294" + } ; + +mkN295 : Str -> N ; +mkN295 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN295" + } ; + +mkN296 : Str -> N ; +mkN296 base = + case base of { + base_1+"о"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN296" + } ; + +mkN297 : Str -> N ; +mkN297 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN297" + } ; + +mkN298 : Str -> N ; +mkN298 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN298" + } ; + +mkN299 : Str -> N ; +mkN299 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN299" + } ; + +mkN300 : Str -> N ; +mkN300 base = + case base of { + base_1+"ве"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ве"+base_2 ; + Pl => base_1+"ў"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"аў" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ам" ; + Pl => base_1+"ў"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN300" + } ; + +mkN301 : Str -> N ; +mkN301 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN301" + } ; + +mkN302 : Str -> N ; +mkN302 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN302" + } ; + +mkN303 : Str -> N ; +mkN303 base = + case base of { + "а"+base_1+"а" => lin N + { s = table { + Nom => table { + Sg => "а"+base_1+"а" ; + Pl => "во"+base_1+"ы" + } ; + Acc => table { + Sg => "а"+base_1+"у" ; + Pl => "во"+base_1 + } ; + Dat => table { + Sg => "а"+base_1+"е" ; + Pl => "во"+base_1+"ам" + } ; + Gen => table { + Sg => "а"+base_1+"ы" ; + Pl => "во"+base_1 + } ; + Loc => table { + Sg => "а"+base_1+"е" ; + Pl => "во"+base_1+"ах" + } ; + Instr => table { + Sg => "а"+base_1+"ой" ; + Pl => "во"+base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN303" + } ; + +mkN304 : Str -> N ; +mkN304 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"хі" + } ; + Acc => table { + Sg => base_1+"ху" ; + Pl => base_1+"хі" + } ; + Dat => table { + Sg => base_1+"се" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"хі" ; + Pl => base_1+"хаў" + } ; + Loc => table { + Sg => base_1+"се" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хай" ; + Pl => base_1+"хамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN304" + } ; + +mkN305 : Str -> N ; +mkN305 base = + case base of { + base_1+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"й" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ем" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN305" + } ; + +mkN306 : Str -> N ; +mkN306 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"эй" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"эй" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"шу" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN306" + } ; + +mkN307 : Str -> N ; +mkN307 base = + case base of { + base_1+"вей" => lin N + { s = table { + Nom => table { + Sg => base_1+"вей" ; + Pl => base_1+"ўі" + } ; + Acc => table { + Sg => base_1+"ўя" ; + Pl => base_1+"ўёў" + } ; + Dat => table { + Sg => base_1+"ўю" ; + Pl => base_1+"ўям" + } ; + Gen => table { + Sg => base_1+"ўя" ; + Pl => base_1+"ўёў" + } ; + Loc => table { + Sg => base_1+"ўі" ; + Pl => base_1+"ўях" + } ; + Instr => table { + Sg => base_1+"ўём" ; + Pl => base_1+"ўямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN307" + } ; + +mkN308 : Str -> N ; +mkN308 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"ь"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"аў" + } ; + Dat => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ь"+base_2+"ам" ; + Pl => base_1+"ь"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN308" + } ; + +mkN309 : Str -> N ; +mkN309 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"хі" + } ; + Acc => table { + Sg => base_1+"ху" ; + Pl => base_1+"хі" + } ; + Dat => table { + Sg => base_1+"се" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"хі" ; + Pl => base_1+"х" + } ; + Loc => table { + Sg => base_1+"се" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хай" ; + Pl => base_1+"хамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN309" + } ; + +mkN310 : Str -> N ; +mkN310 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ём" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN310" + } ; + +mkN311 : Str -> N ; +mkN311 base = + case base of { + base_1+"о"+base_2@(?+?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"а"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"і" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN311" + } ; + +mkN312 : Str -> N ; +mkN312 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN312" + } ; + +mkN313 : Str -> N ; +mkN313 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"ай" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"ай" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"шу" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN313" + } ; + +mkN314 : Str -> N ; +mkN314 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN314" + } ; + +mkN315 : Str -> N ; +mkN315 base = + case base of { + base_1+"а"+base_2@?+base_3@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+base_3+"а" ; + Pl => base_1+"о"+base_2+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+base_3+"у" ; + Pl => base_1+"о"+base_2+base_3+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+base_3+"е" ; + Pl => base_1+"о"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+base_3+"ы" ; + Pl => base_1+"а"+base_2+"ё"+base_3 + } ; + Loc => table { + Sg => base_1+"а"+base_2+base_3+"е" ; + Pl => base_1+"о"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+base_3+"ой" ; + Pl => base_1+"о"+base_2+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN315" + } ; + +mkN316 : Str -> N ; +mkN316 base = + case base of { + base_1@("ч"|(?+?+?))+"а"+base_2+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"о" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"о" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN316" + } ; + +mkN317 : Str -> N ; +mkN317 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"тоў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN317" + } ; + +mkN318 : Str -> N ; +mkN318 base = + case base of { + base_1+"а"+base_2@?+"а"+base_3@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а"+base_3+"а" ; + Pl => base_1+"о"+base_2+"а"+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"а"+base_3+"у" ; + Pl => base_1+"о"+base_2+"а"+base_3+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"а"+base_3+"е" ; + Pl => base_1+"а"+base_2+"а"+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а"+base_3+"ы" ; + Pl => base_1+"а"+base_2+"о"+base_3 + } ; + Loc => table { + Sg => base_1+"а"+base_2+"а"+base_3+"е" ; + Pl => base_1+"а"+base_2+"а"+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"а"+base_3+"ой" ; + Pl => base_1+"а"+base_2+"а"+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN318" + } ; + +mkN319 : Str -> N ; +mkN319 base = + case base of { + base_1+"а"+base_2@(?+?)+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2+"аў" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN319" + } ; + +mkN320 : Str -> N ; +mkN320 base = + case base of { + base_1+"я"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"я"+base_2+"эй" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN320" + } ; + +mkN321 : Str -> N ; +mkN321 base = + case base of { + base_1+"ы"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы"+base_2+"о" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ы"+base_2+"о" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ы"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ы"+base_2+"а" ; + Pl => base_1+"о"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"ы"+base_2+"е" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ы"+base_2+"ом" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN321" + } ; + +mkN322 : Str -> N ; +mkN322 base = + case base of { + base_1+base_2@?+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+"а"+base_2 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN322" + } ; + +mkN323 : Str -> N ; +mkN323 base = + case base of { + base_1@?+"о"+base_2+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"ь" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ей" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN323" + } ; + +mkN324 : Str -> N ; +mkN324 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"аў" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN324" + } ; + +mkN325 : Str -> N ; +mkN325 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"цю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN325" + } ; + +mkN326 : Str -> N ; +mkN326 base = + case base of { + base_1+"ове"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ове"+base_2 ; + Pl => base_1+"аў"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ове"+base_2 ; + Pl => base_1+"аў"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"оў"+base_2+"у" ; + Pl => base_1+"аў"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"оў"+base_2+"а" ; + Pl => base_1+"аў"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"оў"+base_2+"е" ; + Pl => base_1+"аў"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"оў"+base_2+"ам" ; + Pl => base_1+"аў"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN326" + } ; + +mkN327 : Str -> N ; +mkN327 base = + case base of { + base_1+"о"+base_2@(?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"зе" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN327" + } ; + +mkN328 : Str -> N ; +mkN328 base = + case base of { + base_1+"я"+base_2@("вак"|(?+?+?+?)) => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN328" + } ; + +mkN329 : Str -> N ; +mkN329 base = + case base of { + base_1+"е"+base_2@?+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"і" ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"я"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ей" ; + Pl => base_1+"я"+base_2+"ей" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"я"+base_2+"ях" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"я"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN329" + } ; + +mkN330 : Str -> N ; +mkN330 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"е" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN330" + } ; + +mkN331 : Str -> N ; +mkN331 base = + case base of { + base_1+"д"+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"д"+base_2+"я" ; + Pl => base_1+"д"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"д"+base_2+"ю" ; + Pl => base_1+"д"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"д"+base_2+"і" ; + Pl => base_1+"д"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"д"+base_2+"і" ; + Pl => base_1+base_2+"ей" + } ; + Loc => table { + Sg => base_1+"д"+base_2+"і" ; + Pl => base_1+"д"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"д"+base_2+"ёй" ; + Pl => base_1+"д"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN331" + } ; + +mkN332 : Str -> N ; +mkN332 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"яў" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ёй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN332" + } ; + +mkN333 : Str -> N ; +mkN333 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN333" + } ; + +mkN334 : Str -> N ; +mkN334 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN334" + } ; + +mkN335 : Str -> N ; +mkN335 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN335" + } ; + +mkN336 : Str -> N ; +mkN336 base = + case base of { + base_1+"а"+base_2@(?+?+?)+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"о"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"о"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ой" ; + Pl => base_1+"о"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN336" + } ; + +mkN337 : Str -> N ; +mkN337 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"гі" + } ; + Acc => table { + Sg => base_1+"г" ; + Pl => base_1+"гі" + } ; + Dat => table { + Sg => base_1+"гу" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"гаў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гам" ; + Pl => base_1+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN337" + } ; + +mkN338 : Str -> N ; +mkN338 base = + case base of { + base_1+"эш"+base_2@?+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"эш"+base_2+"та" ; + Pl => base_1+base_2+"шоты" + } ; + Acc => table { + Sg => base_1+"эш"+base_2+"та" ; + Pl => base_1+base_2+"шоты" + } ; + Dat => table { + Sg => base_1+"эш"+base_2+"ту" ; + Pl => base_1+base_2+"шотам" + } ; + Gen => table { + Sg => base_1+"эш"+base_2+"та" ; + Pl => base_1+base_2+"шот" + } ; + Loc => table { + Sg => base_1+"эш"+base_2+"це" ; + Pl => base_1+base_2+"шотах" + } ; + Instr => table { + Sg => base_1+"эш"+base_2+"там" ; + Pl => base_1+base_2+"шотамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN338" + } ; + +mkN339 : Str -> N ; +mkN339 base = + case base of { + base_1+"г" => lin N + { s = table { + Nom => table { + Sg => base_1+"г" ; + Pl => base_1+"гі" + } ; + Acc => table { + Sg => base_1+"га" ; + Pl => base_1+"гаў" + } ; + Dat => table { + Sg => base_1+"гу" ; + Pl => base_1+"гам" + } ; + Gen => table { + Sg => base_1+"га" ; + Pl => base_1+"гаў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"гах" + } ; + Instr => table { + Sg => base_1+"гам" ; + Pl => base_1+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN339" + } ; + +mkN340 : Str -> N ; +mkN340 base = + case base of { + base_1+"я"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"о" ; + Pl => base_1+"ё"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"ё"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"ё"+base_2 + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"ё"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"ё"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN340" + } ; + +mkN341 : Str -> N ; +mkN341 base = + case base of { + base_1+"я"+base_2@(?+?)+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"е"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ой" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN341" + } ; + +mkN342 : Str -> N ; +mkN342 base = + case base of { + base_1+"э"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"э"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"э"+base_2 ; + Pl => base_1+"а"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"э"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"э"+base_2+"у" ; + Pl => base_1+"а"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"э"+base_2+"у" ; + Pl => base_1+"а"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"э"+base_2+"ам" ; + Pl => base_1+"а"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN342" + } ; + +mkN343 : Str -> N ; +mkN343 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN343" + } ; + +mkN344 : Str -> N ; +mkN344 base = + case base of { + base_1+"а"+base_2@(?+?)+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"о" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"о" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"э"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"э"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"э"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"э"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN344" + } ; + +mkN345 : Str -> N ; +mkN345 base = + case base of { + base_1+"ака" => lin N + { s = table { + Nom => table { + Sg => base_1+"ака" ; + Pl => base_1+"окі" + } ; + Acc => table { + Sg => base_1+"аку" ; + Pl => base_1+"окі" + } ; + Dat => table { + Sg => base_1+"ацэ" ; + Pl => base_1+"окам" + } ; + Gen => table { + Sg => base_1+"акі" ; + Pl => base_1+"ок" + } ; + Loc => table { + Sg => base_1+"ацэ" ; + Pl => base_1+"оках" + } ; + Instr => table { + Sg => base_1+"акой" ; + Pl => base_1+"окамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN345" + } ; + +mkN346 : Str -> N ; +mkN346 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN346" + } ; + +mkN347 : Str -> N ; +mkN347 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN347" + } ; + +mkN348 : Str -> N ; +mkN348 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"к" + } ; + Dat => table { + Sg => base_1+"цы" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"кі" ; + Pl => base_1+"к" + } ; + Loc => table { + Sg => base_1+"цы" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кай" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN348" + } ; + +mkN349 : Str -> N ; +mkN349 base = + case base of { + base_1+"а"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"ю" ; + Pl => base_1+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN349" + } ; + +mkN350 : Str -> N ; +mkN350 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN350" + } ; + +mkN351 : Str -> N ; +mkN351 base = + case base of { + base_1+"ў" => lin N + { s = table { + Nom => table { + Sg => base_1+"ў" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => base_1+"ў" ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => base_1+"ву" ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"ва" ; + Pl => base_1+"ваў" + } ; + Loc => table { + Sg => base_1+"ве" ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => base_1+"вам" ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN351" + } ; + +mkN352 : Str -> N ; +mkN352 base = + case base of { + base_1+"во"+base_2@(?+?+?+?)+"ў" => lin N + { s = table { + Nom => table { + Sg => base_1+"во"+base_2+"ў" ; + Pl => base_1+"а"+base_2+"вы" + } ; + Acc => table { + Sg => base_1+"во"+base_2+"ў" ; + Pl => base_1+"а"+base_2+"вы" + } ; + Dat => table { + Sg => base_1+"во"+base_2+"ву" ; + Pl => base_1+"а"+base_2+"вам" + } ; + Gen => table { + Sg => base_1+"во"+base_2+"ва" ; + Pl => base_1+"а"+base_2+"воў" + } ; + Loc => table { + Sg => base_1+"во"+base_2+"ве" ; + Pl => base_1+"а"+base_2+"вах" + } ; + Instr => table { + Sg => base_1+"во"+base_2+"вам" ; + Pl => base_1+"а"+base_2+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN352" + } ; + +mkN353 : Str -> N ; +mkN353 base = + case base of { + base_1+"оў" => lin N + { s = table { + Nom => table { + Sg => base_1+"оў" ; + Pl => base_1+"авы" + } ; + Acc => table { + Sg => base_1+"оў" ; + Pl => base_1+"авы" + } ; + Dat => table { + Sg => base_1+"ову" ; + Pl => base_1+"авам" + } ; + Gen => table { + Sg => base_1+"ова" ; + Pl => base_1+"авоў" + } ; + Loc => table { + Sg => base_1+"ове" ; + Pl => base_1+"авах" + } ; + Instr => table { + Sg => base_1+"овам" ; + Pl => base_1+"авамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN353" + } ; + +mkN354 : Str -> N ; +mkN354 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN354" + } ; + +mkN355 : Str -> N ; +mkN355 base = + case base of { + base_1+"а"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN355" + } ; + +mkN356 : Str -> N ; +mkN356 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN356" + } ; + +mkN357 : Str -> N ; +mkN357 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN357" + } ; + +mkN358 : Str -> N ; +mkN358 base = + case base of { + base_1+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+"а"+base_2 + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+"а"+base_2 + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN358" + } ; + +mkN359 : Str -> N ; +mkN359 base = + case base of { + base_1+"а"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+base_2+"ю" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN359" + } ; + +mkN360 : Str -> N ; +mkN360 base = + case base of { + base_1+"ят"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"ят"+base_2+"а" ; + Pl => base_1+"ёт"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ят"+base_2+"у" ; + Pl => base_1+"ёт"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ят"+base_2+"е" ; + Pl => base_1+"ёт"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ят"+base_2+"ы" ; + Pl => base_1+"ёце"+base_2 + } ; + Loc => table { + Sg => base_1+"ят"+base_2+"е" ; + Pl => base_1+"ёт"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ят"+base_2+"ой" ; + Pl => base_1+"ёт"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN360" + } ; + +mkN361 : Str -> N ; +mkN361 base = + case base of { + base_1+"ае" => lin N + { s = table { + Nom => table { + Sg => base_1+"ае" ; + Pl => base_1+"ыя" + } ; + Acc => table { + Sg => base_1+"ае" ; + Pl => base_1+"ых" + } ; + Dat => table { + Sg => base_1+"аму" ; + Pl => base_1+"ым" + } ; + Gen => table { + Sg => base_1+"ага" ; + Pl => base_1+"ых" + } ; + Loc => table { + Sg => base_1+"ым" ; + Pl => base_1+"ых" + } ; + Instr => table { + Sg => base_1+"ым" ; + Pl => base_1+"ымі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN361" + } ; + +mkN362 : Str -> N ; +mkN362 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN362" + } ; + +mkN363 : Str -> N ; +mkN363 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"ту" ; + Pl => base_1+"т" + } ; + Dat => table { + Sg => base_1+"це" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ты" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"тай" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN363" + } ; + +mkN364 : Str -> N ; +mkN364 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?+?)+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"т" ; + Pl => base_1+"ы"+base_2+"ты" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"та" ; + Pl => base_1+"аў"+base_2+"таў" + } ; + Dat => table { + Sg => base_1+"у"+base_2+"ту" ; + Pl => base_1+"ам"+base_2+"там" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"та" ; + Pl => base_1+"аў"+base_2+"таў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"це" ; + Pl => base_1+"ах"+base_2+"тах" + } ; + Instr => table { + Sg => base_1+"ам"+base_2+"там" ; + Pl => base_1+"амі"+base_2+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN364" + } ; + +mkN365 : Str -> N ; +mkN365 base = + case base of { + base_1+"я"+base_2@(?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ы" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN365" + } ; + +mkN366 : Str -> N ; +mkN366 base = + case base of { + base_1@(?+?+?+?+?+?)+"ь"+base_2 => lin N + { s = table { + Nom => table { + Sg => base_1+"ь"+base_2 ; + Pl => base_1+"і"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"яў"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"ю"+base_2+"у" ; + Pl => base_1+"ям"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"яў"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"і"+base_2+"е" ; + Pl => base_1+"ях"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ем"+base_2+"ом" ; + Pl => base_1+"ямі"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN366" + } ; + +mkN367 : Str -> N ; +mkN367 base = + case base of { + base_1+"це"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"це"+base_2 ; + Pl => base_1+"т"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"т"+base_2+"а" ; + Pl => base_1+"т"+base_2+"аў" + } ; + Dat => table { + Sg => base_1+"т"+base_2+"у" ; + Pl => base_1+"т"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"т"+base_2+"а" ; + Pl => base_1+"т"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"т"+base_2+"е" ; + Pl => base_1+"т"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"т"+base_2+"ам" ; + Pl => base_1+"т"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN367" + } ; + +mkN368 : Str -> N ; +mkN368 base = + case base of { + base_1+"вё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"вё"+base_2 ; + Pl => base_1+"ў"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"вё"+base_2 ; + Pl => base_1+"ў"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"е" ; + Pl => base_1+"ў"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ом" ; + Pl => base_1+"ў"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN368" + } ; + +mkN369 : Str -> N ; +mkN369 base = + case base of { + base_1+"о"+base_2@(?+?+?)+"й" => lin N + { s = table { + Nom => table { + Sg => base_1+"о"+base_2+"й" ; + Pl => base_1+"а"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"а"+base_2+"яў" + } ; + Dat => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"о"+base_2+"я" ; + Pl => base_1+"а"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"о"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"о"+base_2+"ем" ; + Pl => base_1+"а"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN369" + } ; + +mkN370 : Str -> N ; +mkN370 base = + case base of { + base_1+"е"+base_2@(?+?)+"я"+base_3@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"я"+base_3+"о" ; + Pl => base_1+"я"+base_2+"ё"+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"я"+base_3+"о" ; + Pl => base_1+"я"+base_2+"ё"+base_3+"ы" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"я"+base_3+"у" ; + Pl => base_1+"я"+base_2+"ё"+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"я"+base_3+"а" ; + Pl => base_1+"я"+base_2+"ё"+base_3 + } ; + Loc => table { + Sg => base_1+"е"+base_2+"я"+base_3+"е" ; + Pl => base_1+"я"+base_2+"ё"+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"я"+base_3+"ом" ; + Pl => base_1+"я"+base_2+"ё"+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN370" + } ; + +mkN371 : Str -> N ; +mkN371 base = + case base of { + base_1+"це"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"це"+base_2+"ь" ; + Pl => base_1+"т"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"т"+base_2+"я" ; + Pl => base_1+"т"+base_2+"яў" + } ; + Dat => table { + Sg => base_1+"т"+base_2+"ю" ; + Pl => base_1+"т"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"т"+base_2+"я" ; + Pl => base_1+"т"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"т"+base_2+"і" ; + Pl => base_1+"т"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"т"+base_2+"ем" ; + Pl => base_1+"т"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN371" + } ; + +mkN372 : Str -> N ; +mkN372 base = + case base of { + base_1+"це"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"це"+base_2+"ь" ; + Pl => base_1+"т"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"т"+base_2+"я" ; + Pl => base_1+"т"+base_2+"яў" + } ; + Dat => table { + Sg => base_1+"т"+base_2+"ю" ; + Pl => base_1+"т"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"т"+base_2+"я" ; + Pl => base_1+"т"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"т"+base_2+"ю" ; + Pl => base_1+"т"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"т"+base_2+"ем" ; + Pl => base_1+"т"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN372" + } ; + +mkN373 : Str -> N ; +mkN373 base = + case base of { + base_1+"а"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"аў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ам" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN373" + } ; + +mkN374 : Str -> N ; +mkN374 base = + case base of { + base_1+"ата" => lin N + { s = table { + Nom => table { + Sg => base_1+"ата" ; + Pl => base_1+"оты" + } ; + Acc => table { + Sg => base_1+"ату" ; + Pl => base_1+"оты" + } ; + Dat => table { + Sg => base_1+"аце" ; + Pl => base_1+"отам" + } ; + Gen => table { + Sg => base_1+"аты" ; + Pl => base_1+"от" + } ; + Loc => table { + Sg => base_1+"аце" ; + Pl => base_1+"отах" + } ; + Instr => table { + Sg => base_1+"атой" ; + Pl => base_1+"отамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN374" + } ; + +mkN375 : Str -> N ; +mkN375 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"сю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN375" + } ; + +mkN376 : Str -> N ; +mkN376 base = + case base of { + base_1+"цё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"цё"+base_2 ; + Pl => base_1+"т"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"цё"+base_2 ; + Pl => base_1+"т"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"т"+base_2+"у" ; + Pl => base_1+"т"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"т"+base_2+"а" ; + Pl => base_1+"т"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"т"+base_2+"е" ; + Pl => base_1+"т"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"т"+base_2+"ом" ; + Pl => base_1+"т"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN376" + } ; + +mkN377 : Str -> N ; +mkN377 base = + case base of { + base_1+"ве"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ве"+base_2+"ь" ; + Pl => base_1+"ў"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ве"+base_2+"ь" ; + Pl => base_1+"ў"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"ю" ; + Pl => base_1+"ў"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"ю" ; + Pl => base_1+"ў"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"і" ; + Pl => base_1+"ў"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ем" ; + Pl => base_1+"ў"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN377" + } ; + +mkN378 : Str -> N ; +mkN378 base = + case base of { + base_1+"я"+base_2@(?+?)+"оў" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"оў" ; + Pl => base_1+"я"+base_2+"ові" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"оў" ; + Pl => base_1+"е"+base_2+"ывей" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ыві" ; + Pl => base_1+"е"+base_2+"ывям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"ыві" ; + Pl => base_1+"е"+base_2+"ывей" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ыві" ; + Pl => base_1+"е"+base_2+"ывях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ывёй" ; + Pl => base_1+"е"+base_2+"ывямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN378" + } ; + +mkN379 : Str -> N ; +mkN379 base = + case base of { + base_1+"ё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"я"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"я"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN379" + } ; + +mkN380 : Str -> N ; +mkN380 base = + case base of { + base_1+base_2@?+"зе"+base_3@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"зе"+base_3+"ь" ; + Pl => base_1+"а"+base_2+base_3+"і" + } ; + Acc => table { + Sg => base_1+base_2+"зе"+base_3+"ь" ; + Pl => base_1+"а"+base_2+base_3+"і" + } ; + Dat => table { + Sg => base_1+"а"+base_2+base_3+"ю" ; + Pl => base_1+"а"+base_2+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"а"+base_2+base_3+"я" ; + Pl => base_1+"а"+base_2+base_3+"яў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+base_3+"і" ; + Pl => base_1+"а"+base_2+base_3+"ях" + } ; + Instr => table { + Sg => base_1+"а"+base_2+base_3+"ем" ; + Pl => base_1+"а"+base_2+base_3+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN380" + } ; + +mkN381 : Str -> N ; +mkN381 base = + case base of { + base_1+"зё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"зё"+base_2 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"зё"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+base_2+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN381" + } ; + +mkN382 : Str -> N ; +mkN382 base = + case base of { + base_1+"ве"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ве"+base_2 ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ве"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"ы" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ам" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN382" + } ; + +mkN383 : Str -> N ; +mkN383 base = + case base of { + base_1+"ына" => lin N + { s = table { + Nom => table { + Sg => base_1+"ына" ; + Pl => base_1+"аты" + } ; + Acc => table { + Sg => base_1+"ыну" ; + Pl => base_1+"ат" + } ; + Dat => table { + Sg => base_1+"ыне" ; + Pl => base_1+"атам" + } ; + Gen => table { + Sg => base_1+"ыны" ; + Pl => base_1+"ат" + } ; + Loc => table { + Sg => base_1+"ыне" ; + Pl => base_1+"атах" + } ; + Instr => table { + Sg => base_1+"ынай" ; + Pl => base_1+"атамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN383" + } ; + +mkN384 : Str -> N ; +mkN384 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"й" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"й" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN384" + } ; + +mkN385 : Str -> N ; +mkN385 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"тоў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN385" + } ; + +mkN386 : Str -> N ; +mkN386 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"ю" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"ю" ; + Pl => base_1+"ёў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ём" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN386" + } ; + +mkN387 : Str -> N ; +mkN387 base = + case base of { + base_1+"я"+base_2@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"зе" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+"я"+base_2+"зе" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ой" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN387" + } ; + +mkN388 : Str -> N ; +mkN388 base = + case base of { + base_1+"а"+base_2@?+base_3@?+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+base_3+"а" ; + Pl => base_1+"о"+base_2+base_3+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+base_3+"у" ; + Pl => base_1+"о"+base_2+base_3+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+base_3+"е" ; + Pl => base_1+"о"+base_2+base_3+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+base_3+"ы" ; + Pl => base_1+"о"+base_2+"е"+base_3 + } ; + Loc => table { + Sg => base_1+"а"+base_2+base_3+"е" ; + Pl => base_1+"о"+base_2+base_3+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+base_3+"ой" ; + Pl => base_1+"о"+base_2+base_3+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN388" + } ; + +mkN389 : Str -> N ; +mkN389 base = + case base of { + base_1+"еў" => lin N + { s = table { + Nom => table { + Sg => base_1+"еў" ; + Pl => base_1+"явы" + } ; + Acc => table { + Sg => base_1+"еў" ; + Pl => base_1+"явы" + } ; + Dat => table { + Sg => base_1+"яву" ; + Pl => base_1+"явам" + } ; + Gen => table { + Sg => base_1+"ява" ; + Pl => base_1+"явоў" + } ; + Loc => table { + Sg => base_1+"яве" ; + Pl => base_1+"явах" + } ; + Instr => table { + Sg => base_1+"явом" ; + Pl => base_1+"явамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN389" + } ; + +mkN390 : Str -> N ; +mkN390 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+base_2+"ы" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"ы" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN390" + } ; + +mkN391 : Str -> N ; +mkN391 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ой" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN391" + } ; + +mkN392 : Str -> N ; +mkN392 base = + case base of { + base_1+"ь"+base_2@?+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь"+base_2+"о" ; + Pl => base_1+"ь"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ь"+base_2+"о" ; + Pl => base_1+"ь"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"е"+base_2 + } ; + Loc => table { + Sg => base_1+"ь"+base_2+"е" ; + Pl => base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ь"+base_2+"ом" ; + Pl => base_1+"ь"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN392" + } ; + +mkN393 : Str -> N ; +mkN393 base = + case base of { + base_1+"э"+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"э"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёны" + } ; + Acc => table { + Sg => base_1+"э"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ёны" + } ; + Dat => table { + Sg => base_1+"э"+base_2+"ю" ; + Pl => base_1+"а"+base_2+"ёнам" + } ; + Gen => table { + Sg => base_1+"э"+base_2+"я" ; + Pl => base_1+"а"+base_2+"ён" + } ; + Loc => table { + Sg => base_1+"э"+base_2+"і" ; + Pl => base_1+"а"+base_2+"ёнах" + } ; + Instr => table { + Sg => base_1+"э"+base_2+"ем" ; + Pl => base_1+"а"+base_2+"ёнамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN393" + } ; + +mkN394 : Str -> N ; +mkN394 base = + case base of { + base_1+"ха" => lin N + { s = table { + Nom => table { + Sg => base_1+"ха" ; + Pl => base_1+"хі" + } ; + Acc => table { + Sg => base_1+"ха" ; + Pl => base_1+"хі" + } ; + Dat => table { + Sg => base_1+"ху" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"ха" ; + Pl => base_1+"хаў" + } ; + Loc => table { + Sg => base_1+"се" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хам" ; + Pl => base_1+"хамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN394" + } ; + +mkN395 : Str -> N ; +mkN395 base = + case base of { + "аў"+base_1+"а" => lin N + { s = table { + Nom => table { + Sg => "аў"+base_1+"а" ; + Pl => "воў"+base_1+"ы" + } ; + Acc => table { + Sg => "аў"+base_1+"у" ; + Pl => "аве"+base_1 + } ; + Dat => table { + Sg => "аў"+base_1+"ы" ; + Pl => "воў"+base_1+"ам" + } ; + Gen => table { + Sg => "аў"+base_1+"ы" ; + Pl => "аве"+base_1 + } ; + Loc => table { + Sg => "аў"+base_1+"ы" ; + Pl => "воў"+base_1+"ах" + } ; + Instr => table { + Sg => "аў"+base_1+"ой" ; + Pl => "воў"+base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN395" + } ; + +mkN396 : Str -> N ; +mkN396 base = + case base of { + base_1+"х" => lin N + { s = table { + Nom => table { + Sg => base_1+"х" ; + Pl => base_1+"хі" + } ; + Acc => table { + Sg => base_1+"х" ; + Pl => base_1+"хі" + } ; + Dat => table { + Sg => base_1+"ху" ; + Pl => base_1+"хам" + } ; + Gen => table { + Sg => base_1+"ха" ; + Pl => base_1+"хаў" + } ; + Loc => table { + Sg => base_1+"се" ; + Pl => base_1+"хах" + } ; + Instr => table { + Sg => base_1+"хам" ; + Pl => base_1+"хамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN396" + } ; + +mkN397 : Str -> N ; +mkN397 base = + case base of { + base_1+"т" => lin N + { s = table { + Nom => table { + Sg => base_1+"т" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"т" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN397" + } ; + +mkN398 : Str -> N ; +mkN398 base = + case base of { + base_1+"е"+base_2@(?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"я"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёў" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ем" ; + Pl => base_1+"я"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN398" + } ; + +mkN399 : Str -> N ; +mkN399 base = + case base of { + base_1+"а"+base_2@?+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"га" ; + Pl => base_1+"э"+base_2+"гі" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"гу" ; + Pl => base_1+"э"+base_2+"гі" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"зе" ; + Pl => base_1+"э"+base_2+"гам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"гі" ; + Pl => base_1+"э"+base_2+"г" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"зе" ; + Pl => base_1+"э"+base_2+"гах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"гой" ; + Pl => base_1+"э"+base_2+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN399" + } ; + +mkN400 : Str -> N ; +mkN400 base = + case base of { + base_1+"э"+base_2@?+"е"+base_3@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"э"+base_2+"е"+base_3+"ь" ; + Pl => base_1+"а"+base_2+"я"+base_3+"і" + } ; + Acc => table { + Sg => base_1+"э"+base_2+"е"+base_3+"ь" ; + Pl => base_1+"а"+base_2+"я"+base_3+"і" + } ; + Dat => table { + Sg => base_1+"э"+base_2+"е"+base_3+"ю" ; + Pl => base_1+"а"+base_2+"я"+base_3+"ям" + } ; + Gen => table { + Sg => base_1+"э"+base_2+"е"+base_3+"я" ; + Pl => base_1+"а"+base_2+"я"+base_3+"ёў" + } ; + Loc => table { + Sg => base_1+"э"+base_2+"е"+base_3+"і" ; + Pl => base_1+"а"+base_2+"я"+base_3+"ях" + } ; + Instr => table { + Sg => base_1+"э"+base_2+"е"+base_3+"ем" ; + Pl => base_1+"а"+base_2+"я"+base_3+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN400" + } ; + +mkN401 : Str -> N ; +mkN401 base = + case base of { + "рабёнак" => lin N + { s = table { + Nom => table { + Sg => "рабёнак" ; + Pl => "дзеці" + } ; + Acc => table { + Sg => "рабёнка" ; + Pl => "дзяцей" + } ; + Dat => table { + Sg => "рабёнку" ; + Pl => "дзецям" + } ; + Gen => table { + Sg => "рабёнка" ; + Pl => "дзяцей" + } ; + Loc => table { + Sg => "рабёнку" ; + Pl => "дзецях" + } ; + Instr => table { + Sg => "рабёнкам" ; + Pl => "дзецьмі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN401" + } ; + +mkN402 : Str -> N ; +mkN402 base = + case base of { + base_1+"ве"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ве"+base_2+"ь" ; + Pl => base_1+"ў"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ў"+base_2+"я" ; + Pl => base_1+"ў"+base_2+"яў" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"ю" ; + Pl => base_1+"ў"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"я" ; + Pl => base_1+"ў"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"і" ; + Pl => base_1+"ў"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ем" ; + Pl => base_1+"ў"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN402" + } ; + +mkN403 : Str -> N ; +mkN403 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"яў" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"яй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN403" + } ; + +mkN404 : Str -> N ; +mkN404 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"зе" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => base_1+"зе" ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN404" + } ; + +mkN405 : Str -> N ; +mkN405 base = + case base of { + base_1+"ё"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"ь"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"ь"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ь"+base_2+"ом" ; + Pl => base_1+"ь"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN405" + } ; + +mkN406 : Str -> N ; +mkN406 base = + case base of { + base_1+"а"+base_2@?+"га" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"га" ; + Pl => base_1+"э"+base_2+"гі" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"гу" ; + Pl => base_1+"э"+base_2+"гі" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"зе" ; + Pl => base_1+"э"+base_2+"гам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"гі" ; + Pl => base_1+"э"+base_2+"гаў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"зе" ; + Pl => base_1+"э"+base_2+"гах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"гой" ; + Pl => base_1+"э"+base_2+"гамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN406" + } ; + +mkN407 : Str -> N ; +mkN407 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"ь"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ь"+base_2+"а" ; + Pl => base_1+"ь"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ь"+base_2+"у" ; + Pl => base_1+"ь"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ь"+base_2+"ом" ; + Pl => base_1+"ь"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN407" + } ; + +mkN408 : Str -> N ; +mkN408 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"ь" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ь" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ёй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN408" + } ; + +mkN409 : Str -> N ; +mkN409 base = + case base of { + base_1+"я"+base_2@("рык"|(?+?+?+?)) => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"е"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN409" + } ; + +mkN410 : Str -> N ; +mkN410 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"зю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN410" + } ; + +mkN411 : Str -> N ; +mkN411 base = + case base of { + base_1+"ня" => lin N + { s = table { + Nom => table { + Sg => base_1+"ня" ; + Pl => base_1+"ні" + } ; + Acc => table { + Sg => base_1+"ню" ; + Pl => base_1+"ей" + } ; + Dat => table { + Sg => base_1+"ні" ; + Pl => base_1+"ням" + } ; + Gen => table { + Sg => base_1+"ні" ; + Pl => base_1+"ей" + } ; + Loc => table { + Sg => base_1+"ні" ; + Pl => base_1+"нях" + } ; + Instr => table { + Sg => base_1+"нёй" ; + Pl => base_1+"нямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN411" + } ; + +mkN412 : Str -> N ; +mkN412 base = + case base of { + base_1+"ая" => lin N + { s = table { + Nom => table { + Sg => base_1+"ая" ; + Pl => base_1+"ыя" + } ; + Acc => table { + Sg => base_1+"ую" ; + Pl => base_1+"ых" + } ; + Dat => table { + Sg => base_1+"ай" ; + Pl => base_1+"ым" + } ; + Gen => table { + Sg => base_1+"ай" ; + Pl => base_1+"ых" + } ; + Loc => table { + Sg => base_1+"ай" ; + Pl => base_1+"ых" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"ымі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN412" + } ; + +mkN413 : Str -> N ; +mkN413 base = + case base of { + base_1+"ь"+base_2@(?+?+?+?+?+?)+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь"+base_2+"ь" ; + Pl => nonExist + } ; + Acc => table { + Sg => base_1+"ь"+base_2+"ь" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ю"+base_2+"ю" ; + Pl => nonExist + } ; + Gen => table { + Sg => base_1+"ю"+base_2+"ю" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"і"+base_2+"і" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ем"+base_2+"ем" ; + Pl => nonExist + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN413" + } ; + +mkN414 : Str -> N ; +mkN414 base = + case base of { + base_1+"ін" => lin N + { s = table { + Nom => table { + Sg => base_1+"ін" ; + Pl => base_1+"іны" + } ; + Acc => table { + Sg => base_1+"іна" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"іну" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"іна" ; + Pl => base_1+"інаў" + } ; + Loc => table { + Sg => base_1+"іне" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"інам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN414" + } ; + +mkN415 : Str -> N ; +mkN415 base = + case base of { + base_1+"вы" => lin N + { s = table { + Nom => table { + Sg => base_1+"вы" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"ў" ; + Pl => base_1+"ў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN415" + } ; + +mkN416 : Str -> N ; +mkN416 base = + case base of { + base_1+"я"+base_2@(?+?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"я"+base_2 ; + Pl => base_1+"е"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"е"+base_2+"а" ; + Pl => base_1+"е"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"е"+base_2+"у" ; + Pl => base_1+"е"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"е"+base_2+"ом" ; + Pl => base_1+"е"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN416" + } ; + +mkN417 : Str -> N ; +mkN417 base = + case base of { + base_1+"а"+base_2@(?+?)+"о" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"о" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"о" ; + Pl => base_1+"э"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"у" ; + Pl => base_1+"э"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"а" ; + Pl => base_1+"э"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"э"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ом" ; + Pl => base_1+"э"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN417" + } ; + +mkN418 : Str -> N ; +mkN418 base = + case base of { + base_1+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ь" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"зю" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN418" + } ; + +mkN419 : Str -> N ; +mkN419 base = + case base of { + base_1+"ынка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ынка" ; + Pl => base_1+"аткі" + } ; + Acc => table { + Sg => base_1+"ынку" ; + Pl => base_1+"атак" + } ; + Dat => table { + Sg => base_1+"ынцы" ; + Pl => base_1+"аткам" + } ; + Gen => table { + Sg => base_1+"ынкі" ; + Pl => base_1+"атак" + } ; + Loc => table { + Sg => base_1+"ынцы" ; + Pl => base_1+"атках" + } ; + Instr => table { + Sg => base_1+"ынкай" ; + Pl => base_1+"аткамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN419" + } ; + +mkN420 : Str -> N ; +mkN420 base = + case base of { + base_1+"ве"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ве"+base_2 ; + Pl => base_1+"ў"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ом" ; + Pl => base_1+"ў"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN420" + } ; + +mkN421 : Str -> N ; +mkN421 base = + case base of { + base_1+"е"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2+"ь" ; + Pl => base_1+"я"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёў" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"ю" ; + Pl => base_1+"я"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"я" ; + Pl => base_1+"я"+base_2+"ёў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"і" ; + Pl => base_1+"я"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ём" ; + Pl => base_1+"я"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN421" + } ; + +mkN422 : Str -> N ; +mkN422 base = + case base of { + base_1+"е"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"е"+base_2 ; + Pl => base_1+"я"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"я"+base_2+"а" ; + Pl => base_1+"я"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"я"+base_2+"у" ; + Pl => base_1+"я"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"я"+base_2+"ом" ; + Pl => base_1+"я"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN422" + } ; + +mkN423 : Str -> N ; +mkN423 base = + case base of { + base_1+"ў" => lin N + { s = table { + Nom => table { + Sg => base_1+"ў" ; + Pl => base_1+"вы" + } ; + Acc => table { + Sg => base_1+"ў" ; + Pl => base_1+"вы" + } ; + Dat => table { + Sg => base_1+"ву" ; + Pl => base_1+"вам" + } ; + Gen => table { + Sg => base_1+"ва" ; + Pl => base_1+"воў" + } ; + Loc => table { + Sg => base_1+"ве" ; + Pl => base_1+"вах" + } ; + Instr => table { + Sg => base_1+"вом" ; + Pl => base_1+"вамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN423" + } ; + +mkN424 : Str -> N ; +mkN424 base = + case base of { + base_1+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+"я" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"ю" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"і" ; + Pl => base_1+"ям" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1+"яў" + } ; + Loc => table { + Sg => base_1+"і" ; + Pl => base_1+"ях" + } ; + Instr => table { + Sg => base_1+"ёй" ; + Pl => base_1+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN424" + } ; + +mkN425 : Str -> N ; +mkN425 base = + case base of { + base_1+"чо"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"чо"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+"чо"+base_2 ; + Pl => base_1+base_2+"і" + } ; + Dat => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ам" + } ; + Gen => table { + Sg => base_1+base_2+"а" ; + Pl => base_1+base_2+"оў" + } ; + Loc => table { + Sg => base_1+base_2+"у" ; + Pl => base_1+base_2+"ах" + } ; + Instr => table { + Sg => base_1+base_2+"ом" ; + Pl => base_1+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN425" + } ; + +mkN426 : Str -> N ; +mkN426 base = + case base of { + base_1+base_2@?+"я" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ь" + } ; + Dat => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+"е"+base_2+"ь" + } ; + Loc => table { + Sg => base_1+base_2+"і" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"яй" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN426" + } ; + +mkN427 : Str -> N ; +mkN427 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ыя" + } ; + Acc => table { + Sg => base_1+"ога" ; + Pl => base_1+"ых" + } ; + Dat => table { + Sg => base_1+"ому" ; + Pl => base_1+"ым" + } ; + Gen => table { + Sg => base_1+"ога" ; + Pl => base_1+"ых" + } ; + Loc => table { + Sg => base_1+"ым" ; + Pl => base_1+"ых" + } ; + Instr => table { + Sg => base_1+"ым" ; + Pl => base_1+"ымі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN427" + } ; + +mkN428 : Str -> N ; +mkN428 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN428" + } ; + +mkN429 : Str -> N ; +mkN429 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"ы" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN429" + } ; + +mkN430 : Str -> N ; +mkN430 base = + case base of { + base_1+"дзе"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"дзе"+base_2 ; + Pl => base_1+"й"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"оў" + } ; + Dat => table { + Sg => base_1+"й"+base_2+"у" ; + Pl => base_1+"й"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"й"+base_2+"а" ; + Pl => base_1+"й"+base_2+"оў" + } ; + Loc => table { + Sg => base_1+"й"+base_2+"е" ; + Pl => base_1+"й"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"й"+base_2+"ом" ; + Pl => base_1+"й"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN430" + } ; + +mkN431 : Str -> N ; +mkN431 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1 ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"у" ; + Pl => base_1+"оў" + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ом" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN431" + } ; + +mkN432 : Str -> N ; +mkN432 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"ту" ; + Pl => base_1+"таў" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ты" ; + Pl => base_1+"таў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN432" + } ; + +mkN433 : Str -> N ; +mkN433 base = + case base of { + base_1+"ё" => lin N + { s = table { + Nom => table { + Sg => base_1+"ё" ; + Pl => base_1+"яты" + } ; + Acc => table { + Sg => base_1+"ё" ; + Pl => base_1+"ят" + } ; + Dat => table { + Sg => base_1+"яці" ; + Pl => base_1+"ятам" + } ; + Gen => table { + Sg => base_1+"яці" ; + Pl => base_1+"ят" + } ; + Loc => table { + Sg => base_1+"яці" ; + Pl => base_1+"ятах" + } ; + Instr => table { + Sg => base_1+"ём" ; + Pl => base_1+"ятамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN433" + } ; + +mkN434 : Str -> N ; +mkN434 base = + case base of { + base_1+"а"+base_2@?+"ь" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ь" ; + Pl => base_1+base_2+"і" + } ; + Acc => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Dat => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ям" + } ; + Gen => table { + Sg => base_1+base_2+"я" ; + Pl => base_1+base_2+"яў" + } ; + Loc => table { + Sg => base_1+base_2+"ю" ; + Pl => base_1+base_2+"ях" + } ; + Instr => table { + Sg => base_1+base_2+"ем" ; + Pl => base_1+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN434" + } ; + +mkN435 : Str -> N ; +mkN435 base = + case base of { + base_1+"ве"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ве"+base_2 ; + Pl => base_1+"ў"+base_2+"ы" + } ; + Acc => table { + Sg => base_1+"ве"+base_2 ; + Pl => base_1+"ў"+base_2+"ы" + } ; + Dat => table { + Sg => base_1+"ў"+base_2+"у" ; + Pl => base_1+"ў"+base_2+"ам" + } ; + Gen => table { + Sg => base_1+"ў"+base_2+"а" ; + Pl => base_1+"ў"+base_2+"аў" + } ; + Loc => table { + Sg => base_1+"ў"+base_2+"ы" ; + Pl => base_1+"ў"+base_2+"ах" + } ; + Instr => table { + Sg => base_1+"ў"+base_2+"ам" ; + Pl => base_1+"ў"+base_2+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN435" + } ; + +mkN436 : Str -> N ; +mkN436 base = + case base of { + base_1+"яя" => lin N + { s = table { + Nom => table { + Sg => base_1+"яя" ; + Pl => base_1+"еі" + } ; + Acc => table { + Sg => base_1+"яю" ; + Pl => base_1+"еі" + } ; + Dat => table { + Sg => base_1+"яі" ; + Pl => base_1+"еям" + } ; + Gen => table { + Sg => base_1+"яі" ; + Pl => base_1+"еяў" + } ; + Loc => table { + Sg => base_1+"яі" ; + Pl => base_1+"еях" + } ; + Instr => table { + Sg => base_1+"яёй" ; + Pl => base_1+"еямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN436" + } ; + +mkN437 : Str -> N ; +mkN437 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" --guessed + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1 --guessed + } ; + Dat => table { + Sg => base_1+"е" ; + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 --guessed + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ай" ; + Pl => base_1+"амі" --guessed + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN437" + } ; + +mkN438 : Str -> N ; +mkN438 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Dat => table { + Sg => base_1+"ту" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"та" ; + Pl => base_1+"таў" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"там" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN438" + } ; + +mkN439 : Str -> N ; +mkN439 base = + case base of { + base_1+"та" => lin N + { s = table { + Nom => table { + Sg => base_1+"та" ; + Pl => base_1+"ты" + } ; + Acc => table { + Sg => base_1+"ту" ; + Pl => base_1+"т" + } ; + Dat => table { + Sg => base_1+"це" ; + Pl => base_1+"там" + } ; + Gen => table { + Sg => base_1+"ту" ; + Pl => base_1+"т" + } ; + Loc => table { + Sg => base_1+"це" ; + Pl => base_1+"тах" + } ; + Instr => table { + Sg => base_1+"тай" ; + Pl => base_1+"тамі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN439" + } ; + +mkN440 : Str -> N ; +mkN440 base = + case base of { + base_1+"ка" => lin N + { s = table { + Nom => table { + Sg => base_1+"ка" ; + Pl => base_1+"кі" + } ; + Acc => table { + Sg => base_1+"ку" ; + Pl => base_1+"кі" + } ; + Dat => table { + Sg => base_1+"цы" ; + Pl => base_1+"кам" + } ; + Gen => table { + Sg => base_1+"кі" ; + Pl => base_1+"каў" + } ; + Loc => table { + Sg => base_1+"цы" ; + Pl => base_1+"ках" + } ; + Instr => table { + Sg => base_1+"кай" ; + Pl => base_1+"камі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN440" + } ; + +mkN441 : Str -> N ; +mkN441 base = + case base of { + base_1+"і" => lin N + { s = table { + Nom => table { + Sg => base_1+"і" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"аў" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN441" + } ; + +mkN442 : Str -> N ; +mkN442 base = + case base of { + base_1+"а"+base_2@(?+?)+"ё" => lin N + { s = table { + Nom => table { + Sg => base_1+"а"+base_2+"ё" ; + Pl => base_1+"о"+base_2+"і" + } ; + Acc => table { + Sg => base_1+"а"+base_2+"ё" ; + Pl => base_1+"о"+base_2+"і" + } ; + Dat => table { + Sg => base_1+"а"+base_2+"ю" ; + Pl => base_1+"о"+base_2+"ям" + } ; + Gen => table { + Sg => base_1+"а"+base_2+"я" ; + Pl => base_1+"о"+base_2+"яў" + } ; + Loc => table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"о"+base_2+"ях" + } ; + Instr => table { + Sg => base_1+"а"+base_2+"ём" ; + Pl => base_1+"о"+base_2+"ямі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN442" + } ; + +mkN443 : Str -> N ; +mkN443 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" --guessed + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" --guessed + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" --guessed + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1+"аў" --guessed + } ; + Loc => table { + Sg => base_1+"е" ; + Pl => base_1+"ах" --guessed + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" --guessed + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN443" + } ; + +mkN444 : Str -> N ; +mkN444 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1 + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1 ; + Pl => base_1 + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN444" + } ; + +mkN445 : Str -> N ; +mkN445 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"ы" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"ы" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN445" + } ; + +mkN446 : Str -> N ; +mkN446 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"а" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Neuter + }; + _ => error "Can't apply paradigm mkN446" + } ; + +mkN447 : Str -> N ; +mkN447 base = + case base of { + base_1+"ы" => lin N + { s = table { + Nom => table { + Sg => base_1+"ы" ; + Pl => base_1+"ы" + } ; + Acc => table { + Sg => nonExist ; + Pl => base_1+"ы" + } ; + Dat => table { + Sg => nonExist ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"аў" ; + Pl => base_1+"аў" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => nonExist ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Fem + }; + _ => error "Can't apply paradigm mkN447" + } ; + +mkN448 : Str -> N ; +mkN448 base = + case base of { + base_1+"а" => lin N + { s = table { + Nom => table { + Sg => base_1+"а" ; + Pl => base_1+"і" + } ; + Acc => table { + Sg => base_1+"у" ; + Pl => base_1+"і" + } ; + Dat => table { + Sg => base_1+"у" ; + Pl => base_1+"ам" + } ; + Gen => table { + Sg => base_1+"і" ; + Pl => base_1 + } ; + Loc => table { + Sg => base_1+"у" ; + Pl => base_1+"ах" + } ; + Instr => table { + Sg => base_1+"ам" ; + Pl => base_1+"амі" + } + } ; + Voc = table { + Sg => nonExist ; + Pl => nonExist + } ; + g = Masc + }; + _ => error "Can't apply paradigm mkN448" + } ; + +mkV001 : Str -> V ; +mkV001 base = + case base of { + base_1+"віць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"віць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"віць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ві" ; + Pl => base_1+"віце" + } ; + infinitive = base_1+"віць" ; + participle = table { + Masc => table { + Sg => base_1+"віў" ; + Pl => base_1+"вілі" + } ; + Fem => table { + Sg => base_1+"віла" ; + Pl => base_1+"вілі" + } ; + Neuter => table { + Sg => base_1+"віла" ; + Pl => base_1+"вілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ўлены" + } + } + }; + _ => error "Can't apply paradigm mkV001" + } ; + +mkV002 : Str -> V ; +mkV002 base = + case base of { + "брак" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "brak" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = "брак" ; + participle = table { + Masc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Fem => table { + Sg => nonExist ; + Pl => nonExist + } ; + Neuter => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV002" + } ; + +mkV003 : Str -> V ; +mkV003 base = + case base of { + base_1+"е"+base_2@("рк"|?)+"аваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"аваць" ; + Pl => base_1+"я"+base_2+"уем" + } ; + P2 => table { + Sg => base_1+"я"+base_2+"уеш" ; + Pl => base_1+"я"+base_2+"уеце" + } ; + P3 => table { + Sg => base_1+"я"+base_2+"уе" ; + Pl => base_1+"я"+base_2+"уюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"аваць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"я"+base_2+"уй" ; + Pl => base_1+"я"+base_2+"уйце" + } ; + infinitive = base_1+"е"+base_2+"аваць" ; + participle = table { + Masc => table { + Sg => base_1+"е"+base_2+"аваў" ; + Pl => base_1+"е"+base_2+"авалі" + } ; + Fem => table { + Sg => base_1+"е"+base_2+"авала" ; + Pl => base_1+"е"+base_2+"авалі" + } ; + Neuter => table { + Sg => base_1+"е"+base_2+"авала" ; + Pl => base_1+"е"+base_2+"авалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"аваны" + } + } + }; + _ => error "Can't apply paradigm mkV003" + } ; + +mkV004 : Str -> V ; +mkV004 base = + case base of { + "быць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "bycʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => "ёсць" ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "будзь" ; + Pl => "будзьце" + } ; + infinitive = "быць" ; + participle = table { + Masc => table { + Sg => "быў" ; + Pl => "былі" + } ; + Fem => table { + Sg => "была" ; + Pl => "былі" + } ; + Neuter => table { + Sg => "было" ; + Pl => "былі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV004" + } ; + +mkV005 : Str -> V ; +mkV005 base = + case base of { + "есьці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "есьці" ; + Pl => "ядзім" + } ; + P2 => table { + Sg => "ясі" ; + Pl => "ясце" + } ; + P3 => table { + Sg => "есць" ; + Pl => "ядуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "еш" ; + Pl => "ешце" + } ; + infinitive = "есьці" ; + participle = table { + Masc => table { + Sg => "еў" ; + Pl => "елі" + } ; + Fem => table { + Sg => "ела" ; + Pl => "елі" + } ; + Neuter => table { + Sg => "ела" ; + Pl => "елі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV005" + } ; + +mkV006 : Str -> V ; +mkV006 base = + case base of { + "піць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "picʹ" ; + Pl => "п'ём" + } ; + P2 => table { + Sg => "п'еш" ; + Pl => "п'яце" + } ; + P3 => table { + Sg => "п'е" ; + Pl => "п'юць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "пі" ; + Pl => "піце" + } ; + infinitive = "піць" ; + participle = table { + Masc => table { + Sg => "піў" ; + Pl => "пілі" + } ; + Fem => table { + Sg => "піла" ; + Pl => "пілі" + } ; + Neuter => table { + Sg => "піло" ; + Pl => "пілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "піты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV006" + } ; + +mkV007 : Str -> V ; +mkV007 base = + case base of { + "спаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "spacʹ" ; + Pl => "спім" + } ; + P2 => table { + Sg => "спіш" ; + Pl => "спіце" + } ; + P3 => table { + Sg => "спіць" ; + Pl => "спяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "спі" ; + Pl => "спіце" + } ; + infinitive = "спаць" ; + participle = table { + Masc => table { + Sg => "спаў" ; + Pl => "спалі" + } ; + Fem => table { + Sg => "спала" ; + Pl => "спалі" + } ; + Neuter => table { + Sg => "спала" ; + Pl => "спалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV007" + } ; + +mkV008 : Str -> V ; +mkV008 base = + case base of { + "жыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "žycʹ" ; + Pl => "жывём" + } ; + P2 => table { + Sg => "жывеш" ; + Pl => "жывяце" + } ; + P3 => table { + Sg => "жыве" ; + Pl => "жывуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "жыві" ; + Pl => "жывіце" + } ; + infinitive = "жыць" ; + participle = table { + Masc => table { + Sg => "жыў" ; + Pl => "жылі" + } ; + Fem => table { + Sg => "жыла" ; + Pl => "жылі" + } ; + Neuter => table { + Sg => "жыло" ; + Pl => "жылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV008" + } ; + +mkV009 : Str -> V ; +mkV009 base = + case base of { + base_1+"ацець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ацець" ; + Pl => base_1+"очам" + } ; + P2 => table { + Sg => base_1+"очаш" ; + Pl => base_1+"очаце" + } ; + P3 => table { + Sg => base_1+"оча" ; + Pl => base_1+"очуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"аці" ; + Pl => base_1+"аціце" + } ; + infinitive = base_1+"ацець" ; + participle = table { + Masc => table { + Sg => base_1+"ацеў" ; + Pl => base_1+"ацелі" + } ; + Fem => table { + Sg => base_1+"ацела" ; + Pl => base_1+"ацелі" + } ; + Neuter => table { + Sg => base_1+"ацела" ; + Pl => base_1+"ацелі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV009" + } ; + +mkV010 : Str -> V ; +mkV010 base = + case base of { + "знаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "znacʹ" ; + Pl => "знаем" + } ; + P2 => table { + Sg => "знаеш" ; + Pl => "знаеце" + } ; + P3 => table { + Sg => "знае" ; + Pl => "знаюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "знай" ; + Pl => "знайце" + } ; + infinitive = "знаць" ; + participle = table { + Masc => table { + Sg => "знаў" ; + Pl => "зналі" + } ; + Fem => table { + Sg => "знала" ; + Pl => "зналі" + } ; + Neuter => table { + Sg => "знала" ; + Pl => "зналі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV010" + } ; + +mkV011 : Str -> V ; +mkV011 base = + case base of { + base_1+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => base_1+"ім" + } ; + P2 => table { + Sg => base_1+"іш" ; + Pl => base_1+"іце" + } ; + P3 => table { + Sg => base_1+"іць" ; + Pl => base_1+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"іў" ; + Pl => base_1+"ілі" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } ; + Neuter => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ены" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ены" + } + } + }; + _ => error "Can't apply paradigm mkV011" + } ; + +mkV012 : Str -> V ; +mkV012 base = + case base of { + "есці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "есці" ; + Pl => "ядзім" + } ; + P2 => table { + Sg => "ясі" ; + Pl => "ясце" + } ; + P3 => table { + Sg => "есць" ; + Pl => "ядуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "еш" ; + Pl => "ешце" + } ; + infinitive = "есці" ; + participle = table { + Masc => table { + Sg => "еў" ; + Pl => "елі" + } ; + Fem => table { + Sg => "ела" ; + Pl => "елі" + } ; + Neuter => table { + Sg => "ела" ; + Pl => "елі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV012" + } ; + +mkV013 : Str -> V ; +mkV013 base = + case base of { + base_1 => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1 ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = base_1 ; + participle = table { + Masc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Fem => table { + Sg => nonExist ; + Pl => nonExist + } ; + Neuter => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV013" + } ; + +mkV014 : Str -> V ; +mkV014 base = + case base of { + base_1+"няць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"няць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"няць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"мі" ; + Pl => base_1+"міце" + } ; + infinitive = base_1+"няць" ; + participle = table { + Masc => table { + Sg => base_1+"няў" ; + Pl => base_1+"нялі" + } ; + Fem => table { + Sg => base_1+"няла" ; + Pl => base_1+"нялі" + } ; + Neuter => table { + Sg => base_1+"няло" ; + Pl => base_1+"нялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"няты" + } + } + }; + _ => error "Can't apply paradigm mkV014" + } ; + +mkV015 : Str -> V ; +mkV015 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"еце" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"юць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"й" ; + Pl => base_1+"йце" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ны" + } + } + }; + _ => error "Can't apply paradigm mkV015" + } ; + +mkV016 : Str -> V ; +mkV016 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => base_1+"дзём" + } ; + P2 => table { + Sg => base_1+"дзеш" ; + Pl => base_1+"дзяце" + } ; + P3 => table { + Sg => base_1+"дзе" ; + Pl => base_1+"дуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"дзі" ; + Pl => base_1+"дзіце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"шоў" ; + Pl => base_1+"шлі" + } ; + Fem => table { + Sg => base_1+"шла" ; + Pl => base_1+"шлі" + } ; + Neuter => table { + Sg => base_1+"шло" ; + Pl => base_1+"шлі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV016" + } ; + +mkV017 : Str -> V ; +mkV017 base = + case base of { + base_1+"а"+base_2@("дз"|?)+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"іць" ; + Pl => base_1+"о"+base_2+"ім" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"іш" ; + Pl => base_1+"о"+base_2+"іце" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"іць" ; + Pl => base_1+"о"+base_2+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+"а"+base_2+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"іў" ; + Pl => base_1+"а"+base_2+"ілі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"іла" ; + Pl => base_1+"а"+base_2+"ілі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"іла" ; + Pl => base_1+"а"+base_2+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"лены" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"лены" + } + } + }; + _ => error "Can't apply paradigm mkV017" + } ; + +mkV018 : Str -> V ; +mkV018 base = + case base of { + base_1+"хаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хаць" ; + Pl => base_1+"дзем" + } ; + P2 => table { + Sg => base_1+"дзеш" ; + Pl => base_1+"дзеце" + } ; + P3 => table { + Sg => base_1+"дзе" ; + Pl => base_1+"дуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"хаць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"дзь" ; + Pl => base_1+"дзьце" + } ; + infinitive = base_1+"хаць" ; + participle = table { + Masc => table { + Sg => base_1+"хаў" ; + Pl => base_1+"халі" + } ; + Fem => table { + Sg => base_1+"хала" ; + Pl => base_1+"халі" + } ; + Neuter => table { + Sg => base_1+"хала" ; + Pl => base_1+"халі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV018" + } ; + +mkV019 : Str -> V ; +mkV019 base = + case base of { + base_1+"а"+base_2@?+"ыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"ыць" ; + Pl => base_1+"о"+base_2+"ым" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"ыш" ; + Pl => base_1+"о"+base_2+"ыце" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"ыць" ; + Pl => base_1+"о"+base_2+"аць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"ыце" + } ; + infinitive = base_1+"а"+base_2+"ыць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"ыў" ; + Pl => base_1+"а"+base_2+"ылі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ыла" ; + Pl => base_1+"а"+base_2+"ылі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ыла" ; + Pl => base_1+"а"+base_2+"ылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"аны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV019" + } ; + +mkV020 : Str -> V ; +mkV020 base = + case base of { + base_1+"ыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыць" ; + Pl => base_1+"ым" + } ; + P2 => table { + Sg => base_1+"ыш" ; + Pl => base_1+"ыце" + } ; + P3 => table { + Sg => base_1+"ыць" ; + Pl => base_1+"аць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1 ; + Pl => base_1+"це" + } ; + infinitive = base_1+"ыць" ; + participle = table { + Masc => table { + Sg => base_1+"ыў" ; + Pl => base_1+"ылі" + } ; + Fem => table { + Sg => base_1+"ыла" ; + Pl => base_1+"ылі" + } ; + Neuter => table { + Sg => base_1+"ыла" ; + Pl => base_1+"ылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аны" + } + } + }; + _ => error "Can't apply paradigm mkV020" + } ; + +mkV021 : Str -> V ; +mkV021 base = + case base of { + base_1+"агчы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"агчы" ; + Pl => base_1+"ожам" + } ; + P2 => table { + Sg => base_1+"ожаш" ; + Pl => base_1+"ожаце" + } ; + P3 => table { + Sg => base_1+"ожа" ; + Pl => base_1+"огуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"агчы" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ажы" ; + Pl => base_1+"ажыце" + } ; + infinitive = base_1+"агчы" ; + participle = table { + Masc => table { + Sg => base_1+"ог" ; + Pl => base_1+"аглі" + } ; + Fem => table { + Sg => base_1+"агла" ; + Pl => base_1+"аглі" + } ; + Neuter => table { + Sg => base_1+"агло" ; + Pl => base_1+"аглі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV021" + } ; + +mkV022 : Str -> V ; +mkV022 base = + case base of { + base_1+"ваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ваць" ; + Pl => base_1+"ём" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"яце" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"юць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"вай" ; + Pl => base_1+"вайце" + } ; + infinitive = base_1+"ваць" ; + participle = table { + Masc => table { + Sg => base_1+"ваў" ; + Pl => base_1+"валі" + } ; + Fem => table { + Sg => base_1+"вала" ; + Pl => base_1+"валі" + } ; + Neuter => table { + Sg => base_1+"вала" ; + Pl => base_1+"валі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV022" + } ; + +mkV023 : Str -> V ; +mkV023 base = + case base of { + "чуць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "čucʹ" ; + Pl => "чуем" + } ; + P2 => table { + Sg => "чуеш" ; + Pl => "чуеце" + } ; + P3 => table { + Sg => "чуе" ; + Pl => "чуюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "чуй" ; + Pl => "чуйце" + } ; + infinitive = "чуць" ; + participle = table { + Masc => table { + Sg => "чуў" ; + Pl => "чулі" + } ; + Fem => table { + Sg => "чула" ; + Pl => "чулі" + } ; + Neuter => table { + Sg => "чула" ; + Pl => "чулі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "чуты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV023" + } ; + +mkV024 : Str -> V ; +mkV024 base = + case base of { + "стаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "stacʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "стаць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "стань" ; + Pl => "станьце" + } ; + infinitive = "стаць" ; + participle = table { + Masc => table { + Sg => "стаў" ; + Pl => "сталі" + } ; + Fem => table { + Sg => "стала" ; + Pl => "сталі" + } ; + Neuter => table { + Sg => "стала" ; + Pl => "сталі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV024" + } ; + +mkV025 : Str -> V ; +mkV025 base = + case base of { + base_1+"аяць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аяць" ; + Pl => base_1+"аім" + } ; + P2 => table { + Sg => base_1+"аіш" ; + Pl => base_1+"аіце" + } ; + P3 => table { + Sg => base_1+"аіць" ; + Pl => base_1+"аяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аяць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ой" ; + Pl => base_1+"ойце" + } ; + infinitive = base_1+"аяць" ; + participle = table { + Masc => table { + Sg => base_1+"аяў" ; + Pl => base_1+"аялі" + } ; + Fem => table { + Sg => base_1+"аяла" ; + Pl => base_1+"аялі" + } ; + Neuter => table { + Sg => base_1+"аяла" ; + Pl => base_1+"аялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV025" + } ; + +mkV026 : Str -> V ; +mkV026 base = + case base of { + base_1+"а"+base_2@?+"іцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"іцца" ; + Pl => base_1+"о"+base_2+"імся" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"ішся" ; + Pl => base_1+"о"+base_2+"іцеся" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"іцца" ; + Pl => base_1+"о"+base_2+"яцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"іся" ; + Pl => base_1+"а"+base_2+"іцеся" + } ; + infinitive = base_1+"а"+base_2+"іцца" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"іўся" ; + Pl => base_1+"а"+base_2+"іліся" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ілася" ; + Pl => base_1+"а"+base_2+"іліся" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ілася" ; + Pl => base_1+"а"+base_2+"іліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV026" + } ; + +mkV027 : Str -> V ; +mkV027 base = + case base of { + "мыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "mycʹ" ; + Pl => "мыем" + } ; + P2 => table { + Sg => "мыеш" ; + Pl => "мыеце" + } ; + P3 => table { + Sg => "мые" ; + Pl => "мыюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "мый" ; + Pl => "мыйце" + } ; + infinitive = "мыць" ; + participle = table { + Masc => table { + Sg => "мыў" ; + Pl => "мылі" + } ; + Fem => table { + Sg => "мыла" ; + Pl => "мылі" + } ; + Neuter => table { + Sg => "мыла" ; + Pl => "мылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "мыты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV027" + } ; + +mkV028 : Str -> V ; +mkV028 base = + case base of { + base_1+"саць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"саць" ; + Pl => base_1+"шам" + } ; + P2 => table { + Sg => base_1+"шаш" ; + Pl => base_1+"шаце" + } ; + P3 => table { + Sg => base_1+"ша" ; + Pl => base_1+"шуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"саць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"шы" ; + Pl => base_1+"шыце" + } ; + infinitive = base_1+"саць" ; + participle = table { + Masc => table { + Sg => base_1+"саў" ; + Pl => base_1+"салі" + } ; + Fem => table { + Sg => base_1+"сала" ; + Pl => base_1+"салі" + } ; + Neuter => table { + Sg => base_1+"сала" ; + Pl => base_1+"салі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"саны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"саны" + } + } + }; + _ => error "Can't apply paradigm mkV028" + } ; + +mkV029 : Str -> V ; +mkV029 base = + case base of { + base_1+"аваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аваць" ; + Pl => base_1+"уем" + } ; + P2 => table { + Sg => base_1+"уеш" ; + Pl => base_1+"уеце" + } ; + P3 => table { + Sg => base_1+"уе" ; + Pl => base_1+"уюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аваць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"уй" ; + Pl => base_1+"уйце" + } ; + infinitive = base_1+"аваць" ; + participle = table { + Masc => table { + Sg => base_1+"аваў" ; + Pl => base_1+"авалі" + } ; + Fem => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } ; + Neuter => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аваны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аваны" + } + } + }; + _ => error "Can't apply paradigm mkV029" + } ; + +mkV030 : Str -> V ; +mkV030 base = + case base of { + base_1+"вацца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"вацца" ; + Pl => base_1+"ёмся" + } ; + P2 => table { + Sg => base_1+"ешся" ; + Pl => base_1+"яцеся" + } ; + P3 => table { + Sg => base_1+"ецца" ; + Pl => base_1+"юцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"вайся" ; + Pl => base_1+"вайцеся" + } ; + infinitive = base_1+"вацца" ; + participle = table { + Masc => table { + Sg => base_1+"ваўся" ; + Pl => base_1+"валіся" + } ; + Fem => table { + Sg => base_1+"валася" ; + Pl => base_1+"валіся" + } ; + Neuter => table { + Sg => base_1+"валася" ; + Pl => base_1+"валіся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV030" + } ; + +mkV031 : Str -> V ; +mkV031 base = + case base of { + base_1+"а"+base_2@?+"ыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"ыць" ; + Pl => base_1+"о"+base_2+"ым" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"ыш" ; + Pl => base_1+"о"+base_2+"ыце" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"ыць" ; + Pl => base_1+"о"+base_2+"аць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"ы" ; + Pl => base_1+"а"+base_2+"ыце" + } ; + infinitive = base_1+"а"+base_2+"ыць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"ыў" ; + Pl => base_1+"а"+base_2+"ылі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ыла" ; + Pl => base_1+"а"+base_2+"ылі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ыла" ; + Pl => base_1+"а"+base_2+"ылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"а"+base_2+"оны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV031" + } ; + +mkV032 : Str -> V ; +mkV032 base = + case base of { + "праць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "pracʹ" ; + Pl => "пяром" + } ; + P2 => table { + Sg => "пярэш" ; + Pl => "пераце" + } ; + P3 => table { + Sg => "пярэ" ; + Pl => "пяруць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "пяры" ; + Pl => "пярыце" + } ; + infinitive = "праць" ; + participle = table { + Masc => table { + Sg => "праў" ; + Pl => "пралі" + } ; + Fem => table { + Sg => "прала" ; + Pl => "пралі" + } ; + Neuter => table { + Sg => "прала" ; + Pl => "пралі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV032" + } ; + +mkV033 : Str -> V ; +mkV033 base = + case base of { + base_1+"ціць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ціць" ; + Pl => base_1+"цім" + } ; + P2 => table { + Sg => base_1+"ціш" ; + Pl => base_1+"ціце" + } ; + P3 => table { + Sg => base_1+"ціць" ; + Pl => base_1+"цяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ціць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ці" ; + Pl => base_1+"ціце" + } ; + infinitive = base_1+"ціць" ; + participle = table { + Masc => table { + Sg => base_1+"ціў" ; + Pl => base_1+"цілі" + } ; + Fem => table { + Sg => base_1+"ціла" ; + Pl => base_1+"цілі" + } ; + Neuter => table { + Sg => base_1+"ціла" ; + Pl => base_1+"цілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"чаны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"чаны" + } + } + }; + _ => error "Can't apply paradigm mkV033" + } ; + +mkV034 : Str -> V ; +mkV034 base = + case base of { + base_1+"каць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"каць" ; + Pl => base_1+"чам" + } ; + P2 => table { + Sg => base_1+"чаш" ; + Pl => base_1+"чаце" + } ; + P3 => table { + Sg => base_1+"ча" ; + Pl => base_1+"чуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ч" ; + Pl => base_1+"чце" + } ; + infinitive = base_1+"каць" ; + participle = table { + Masc => table { + Sg => base_1+"каў" ; + Pl => base_1+"калі" + } ; + Fem => table { + Sg => base_1+"кала" ; + Pl => base_1+"калі" + } ; + Neuter => table { + Sg => base_1+"кала" ; + Pl => base_1+"калі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"каны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV034" + } ; + +mkV035 : Str -> V ; +mkV035 base = + case base of { + base_1+"заць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"заць" ; + Pl => base_1+"жам" + } ; + P2 => table { + Sg => base_1+"жаш" ; + Pl => base_1+"жаце" + } ; + P3 => table { + Sg => base_1+"жа" ; + Pl => base_1+"жуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ж" ; + Pl => base_1+"жце" + } ; + infinitive = base_1+"заць" ; + participle = table { + Masc => table { + Sg => base_1+"заў" ; + Pl => base_1+"залі" + } ; + Fem => table { + Sg => base_1+"зала" ; + Pl => base_1+"залі" + } ; + Neuter => table { + Sg => base_1+"зала" ; + Pl => base_1+"залі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"заны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV035" + } ; + +mkV036 : Str -> V ; +mkV036 base = + case base of { + base_1+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => base_1+"ім" + } ; + P2 => table { + Sg => base_1+"іш" ; + Pl => base_1+"іце" + } ; + P3 => table { + Sg => base_1+"іць" ; + Pl => base_1+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьце" + } ; + infinitive = base_1+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"іў" ; + Pl => base_1+"ілі" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } ; + Neuter => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ены" + } + } + }; + _ => error "Can't apply paradigm mkV036" + } ; + +mkV037 : Str -> V ; +mkV037 base = + case base of { + base_1+"уць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьце" + } ; + infinitive = base_1+"уць" ; + participle = table { + Masc => table { + Sg => base_1+"уў" ; + Pl => base_1+"улі" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } ; + Neuter => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"уты" + } + } + }; + _ => error "Can't apply paradigm mkV037" + } ; + +mkV038 : Str -> V ; +mkV038 base = + case base of { + base_1+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ні" ; + Pl => base_1+"ніце" + } ; + infinitive = base_1+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"аў" ; + Pl => base_1+"алі" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } ; + Neuter => table { + Sg => base_1+"ало" ; + Pl => base_1+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аты" + } + } + }; + _ => error "Can't apply paradigm mkV038" + } ; + +mkV039 : Str -> V ; +mkV039 base = + case base of { + base_1+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => base_1+"ём" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"яце" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"аў" ; + Pl => base_1+"алі" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } ; + Neuter => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ланы" + } + } + }; + _ => error "Can't apply paradigm mkV039" + } ; + +mkV040 : Str -> V ; +mkV040 base = + case base of { + base_1+"а"+base_2@?+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"аць" ; + Pl => base_1+"о"+base_2+"ім" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"іш" ; + Pl => base_1+"о"+base_2+"іце" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"іць" ; + Pl => base_1+"о"+base_2+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+"а"+base_2+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"аў" ; + Pl => base_1+"а"+base_2+"алі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ала" ; + Pl => base_1+"а"+base_2+"алі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ала" ; + Pl => base_1+"а"+base_2+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV040" + } ; + +mkV041 : Str -> V ; +mkV041 base = + case base of { + "у"+base_1+"яць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "у"+base_1+"яць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "у"+base_1+"яць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "ва"+base_1+"ьмі" ; + Pl => "ва"+base_1+"ьміце" + } ; + infinitive = "у"+base_1+"яць" ; + participle = table { + Masc => table { + Sg => "у"+base_1+"яў" ; + Pl => "у"+base_1+"ялі" + } ; + Fem => table { + Sg => "у"+base_1+"яла" ; + Pl => "у"+base_1+"ялі" + } ; + Neuter => table { + Sg => "у"+base_1+"яло" ; + Pl => "у"+base_1+"ялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "у"+base_1+"яты" + } + } + }; + _ => error "Can't apply paradigm mkV041" + } ; + +mkV042 : Str -> V ; +mkV042 base = + case base of { + "браць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "bracʹ" ; + Pl => "бяром" + } ; + P2 => table { + Sg => "бярэш" ; + Pl => "бераце" + } ; + P3 => table { + Sg => "бярэ" ; + Pl => "бяруць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "бяры" ; + Pl => "бярыце" + } ; + infinitive = "браць" ; + participle = table { + Masc => table { + Sg => "браў" ; + Pl => "бралі" + } ; + Fem => table { + Sg => "брала" ; + Pl => "бралі" + } ; + Neuter => table { + Sg => "брала" ; + Pl => "бралі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV042" + } ; + +mkV043 : Str -> V ; +mkV043 base = + case base of { + base_1+"цца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"цца" ; + Pl => base_1+"емся" + } ; + P2 => table { + Sg => base_1+"ешся" ; + Pl => base_1+"ецеся" + } ; + P3 => table { + Sg => base_1+"ецца" ; + Pl => base_1+"юцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"цца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"йся" ; + Pl => base_1+"йцеся" + } ; + infinitive = base_1+"цца" ; + participle = table { + Masc => table { + Sg => base_1+"ўся" ; + Pl => base_1+"ліся" + } ; + Fem => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } ; + Neuter => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV043" + } ; + +mkV044 : Str -> V ; +mkV044 base = + case base of { + "ўзяць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ŭzjacʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ўзяць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "вазьмі" ; + Pl => "вазьміце" + } ; + infinitive = "ўзяць" ; + participle = table { + Masc => table { + Sg => "ўзяў" ; + Pl => "ўзялі" + } ; + Fem => table { + Sg => "ўзяла" ; + Pl => "ўзялі" + } ; + Neuter => table { + Sg => "ўзяло" ; + Pl => "ўзялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "ўзяты" + } + } + }; + _ => error "Can't apply paradigm mkV044" + } ; + +mkV045 : Str -> V ; +mkV045 base = + case base of { + base_1+"уць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"еце" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"уць" ; + participle = table { + Masc => table { + Sg => base_1+"уў" ; + Pl => base_1+"улі" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } ; + Neuter => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"уты" + } + } + }; + _ => error "Can't apply paradigm mkV045" + } ; + +mkV046 : Str -> V ; +mkV046 base = + case base of { + base_1+"цца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"цца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"цца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ся" ; + Pl => base_1+"цеся" + } ; + infinitive = base_1+"цца" ; + participle = table { + Masc => table { + Sg => base_1+"ўся" ; + Pl => base_1+"ліся" + } ; + Fem => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } ; + Neuter => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV046" + } ; + +mkV047 : Str -> V ; +mkV047 base = + case base of { + base_1+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => base_1+"ім" --guessed + } ; + P2 => table { + Sg => base_1+"іш" ; --guessed + Pl => base_1+"іце" --guessed + } ; + P3 => table { + Sg => base_1+"іць" ; --guessed + Pl => base_1+"яць" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"іў" ; + Pl => base_1+"ілі" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } ; + Neuter => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ены" --guessed + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лены" + } + } + }; + _ => error "Can't apply paradigm mkV047" + } ; + +mkV048 : Str -> V ; +mkV048 base = + case base of { + base_1+"эць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"эць" ; + Pl => base_1+"ым" + } ; + P2 => table { + Sg => base_1+"ыш" ; + Pl => base_1+"ыце" + } ; + P3 => table { + Sg => base_1+"ыць" ; + Pl => base_1+"аць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"эць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ы" ; + Pl => base_1+"ыце" + } ; + infinitive = base_1+"эць" ; + participle = table { + Masc => table { + Sg => base_1+"эў" ; + Pl => base_1+"элі" + } ; + Fem => table { + Sg => base_1+"эла" ; + Pl => base_1+"элі" + } ; + Neuter => table { + Sg => base_1+"эла" ; + Pl => base_1+"элі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV048" + } ; + +mkV049 : Str -> V ; +mkV049 base = + case base of { + base_1+"е"+base_2@?+"ці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ці" ; + Pl => base_1+"я"+base_2+"ём" + } ; + P2 => table { + Sg => base_1+"я"+base_2+"еш" ; + Pl => base_1+"е"+base_2+"яце" + } ; + P3 => table { + Sg => base_1+"я"+base_2+"е" ; + Pl => base_1+"я"+base_2+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"ці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"я"+base_2+"і" ; + Pl => base_1+"я"+base_2+"іце" + } ; + infinitive = base_1+"е"+base_2+"ці" ; + participle = table { + Masc => table { + Sg => base_1+"ё"+base_2 ; + Pl => base_1+"е"+base_2+"лі" + } ; + Fem => table { + Sg => base_1+"е"+base_2+"ла" ; + Pl => base_1+"е"+base_2+"лі" + } ; + Neuter => table { + Sg => base_1+"е"+base_2+"ла" ; + Pl => base_1+"е"+base_2+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"ены" + } + } + }; + _ => error "Can't apply paradigm mkV049" + } ; + +mkV050 : Str -> V ; +mkV050 base = + case base of { + base_1+base_2@?+"сіць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"сіць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"сіць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+base_2+"сі" ; + Pl => base_1+base_2+"сіце" + } ; + infinitive = base_1+base_2+"сіць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"сіў" ; + Pl => base_1+base_2+"сілі" + } ; + Fem => table { + Sg => base_1+base_2+"сіла" ; + Pl => base_1+base_2+"сілі" + } ; + Neuter => table { + Sg => base_1+base_2+"сіла" ; + Pl => base_1+base_2+"сілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ош"+base_2+"ны" + } + } + }; + _ => error "Can't apply paradigm mkV050" + } ; + +mkV051 : Str -> V ; +mkV051 base = + case base of { + base_1+"асіць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"асіць" ; + Pl => base_1+"осім" + } ; + P2 => table { + Sg => base_1+"осіш" ; + Pl => base_1+"осіце" + } ; + P3 => table { + Sg => base_1+"осіць" ; + Pl => base_1+"осяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"асі" ; + Pl => base_1+"асіце" + } ; + infinitive = base_1+"асіць" ; + participle = table { + Masc => table { + Sg => base_1+"асіў" ; + Pl => base_1+"асілі" + } ; + Fem => table { + Sg => base_1+"асіла" ; + Pl => base_1+"асілі" + } ; + Neuter => table { + Sg => base_1+"асіла" ; + Pl => base_1+"асілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ошаны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV051" + } ; + +mkV052 : Str -> V ; +mkV052 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => base_1+"дзём" + } ; + P2 => table { + Sg => base_1+"дзеш" ; + Pl => base_1+"дзяце" + } ; + P3 => table { + Sg => base_1+"дзе" ; + Pl => base_1+"дуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"дзі" ; + Pl => base_1+"дзіце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"дзены" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дзены" + } + } + }; + _ => error "Can't apply paradigm mkV052" + } ; + +mkV053 : Str -> V ; +mkV053 base = + case base of { + base_1+"ыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"удзь" ; + Pl => base_1+"удзьце" + } ; + infinitive = base_1+"ыць" ; + participle = table { + Masc => table { + Sg => base_1+"ыў" ; + Pl => base_1+"ылі" + } ; + Fem => table { + Sg => base_1+"ыла" ; + Pl => base_1+"ылі" + } ; + Neuter => table { + Sg => base_1+"ыла" ; + Pl => base_1+"ылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ыты" + } + } + }; + _ => error "Can't apply paradigm mkV053" + } ; + +mkV054 : Str -> V ; +mkV054 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => base_1+"дзем" + } ; + P2 => table { + Sg => base_1+"дзеш" ; + Pl => base_1+"дзеце" + } ; + P3 => table { + Sg => base_1+"дзе" ; + Pl => base_1+"дуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"дзь" ; + Pl => base_1+"дзьце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"дзены" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дзены" + } + } + }; + _ => error "Can't apply paradigm mkV054" + } ; + +mkV055 : Str -> V ; +mkV055 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => "будзем "+base_1+"ць" + } ; + P2 => table { + Sg => "будзеш "+base_1+"ць" ; + Pl => "будзеце "+base_1+"ць" + } ; + P3 => table { + Sg => "будзе "+base_1+"ць" ; + Pl => "будуць "+base_1+"ць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"й" ; + Pl => base_1+"йце" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ты" + } + } + }; + _ => error "Can't apply paradigm mkV055" + } ; + +mkV056 : Str -> V ; +mkV056 base = + case base of { + base_1+"есці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"есці" ; + Pl => base_1+"яцём" + } ; + P2 => table { + Sg => base_1+"яцеш" ; + Pl => base_1+"ецяце" + } ; + P3 => table { + Sg => base_1+"яце" ; + Pl => base_1+"ятуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"яці" ; + Pl => base_1+"яціце" + } ; + infinitive = base_1+"есці" ; + participle = table { + Masc => table { + Sg => base_1+"ёў" ; + Pl => base_1+"ялі" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"ялі" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"ялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ецены" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV056" + } ; + +mkV057 : Str -> V ; +mkV057 base = + case base of { + base_1+"а"+base_2@?+base_3@?+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+base_3+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+base_3+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+base_3 ; + Pl => base_1+"а"+base_2+base_3+"це" + } ; + infinitive = base_1+"а"+base_2+base_3+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+base_3+"ў" ; + Pl => base_1+"а"+base_2+base_3+"лі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+base_3+"ла" ; + Pl => base_1+"а"+base_2+base_3+"лі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+base_3+"ла" ; + Pl => base_1+"а"+base_2+base_3+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"ан"+base_3 + } + } + }; + _ => error "Can't apply paradigm mkV057" + } ; + +mkV058 : Str -> V ; +mkV058 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"е" ; --guessed + Pl => base_1+"юць" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1 ; + Pl => base_1+"це" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ты" + } + } + }; + _ => error "Can't apply paradigm mkV058" + } ; + +mkV059 : Str -> V ; +mkV059 base = + case base of { + "даць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "dacʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "даць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "дай" ; + Pl => "дайце" + } ; + infinitive = "даць" ; + participle = table { + Masc => table { + Sg => "даў" ; + Pl => "далі" + } ; + Fem => table { + Sg => "дала" ; + Pl => "далі" + } ; + Neuter => table { + Sg => "дало" ; + Pl => "далі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "дадзены" + } + } + }; + _ => error "Can't apply paradigm mkV059" + } ; + +mkV060 : Str -> V ; +mkV060 base = + case base of { + base_1+"ціць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ціць" ; + Pl => base_1+"цім" + } ; + P2 => table { + Sg => base_1+"ціш" ; + Pl => base_1+"ціце" + } ; + P3 => table { + Sg => base_1+"ціць" ; + Pl => base_1+"цяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ціць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ць" ; + Pl => base_1+"цьце" + } ; + infinitive = base_1+"ціць" ; + participle = table { + Masc => table { + Sg => base_1+"ціў" ; + Pl => base_1+"цілі" + } ; + Fem => table { + Sg => base_1+"ціла" ; + Pl => base_1+"цілі" + } ; + Neuter => table { + Sg => base_1+"ціла" ; + Pl => base_1+"цілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"чаны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"чаны" + } + } + }; + _ => error "Can't apply paradigm mkV060" + } ; + +mkV061 : Str -> V ; +mkV061 base = + case base of { + base_1+"яць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"імі" ; + Pl => base_1+"іміце" + } ; + infinitive = base_1+"яць" ; + participle = table { + Masc => table { + Sg => base_1+"яў" ; + Pl => base_1+"ялі" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"ялі" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"ялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"яты" + } + } + }; + _ => error "Can't apply paradigm mkV061" + } ; + +mkV062 : Str -> V ; +mkV062 base = + case base of { + base_1+"уць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => base_1+"ем" --guessed + } ; + P2 => table { + Sg => base_1+"еш" ; --guessed + Pl => base_1+"еце" --guessed + } ; + P3 => table { + Sg => base_1+"е" ; --guessed + Pl => base_1+"уць" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"уць" ; + participle = table { + Masc => table { + Sg => base_1+"уў" ; + Pl => base_1+"улі" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } ; + Neuter => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ёны" + } + } + }; + _ => error "Can't apply paradigm mkV062" + } ; + +mkV063 : Str -> V ; +mkV063 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"е" ; --guessed + Pl => base_1+"юць" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"нь" ; + Pl => base_1+"ньце" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ты" + } + } + }; + _ => error "Can't apply paradigm mkV063" + } ; + +mkV064 : Str -> V ; +mkV064 base = + case base of { + base_1+"ыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыць" ; + Pl => base_1+"ым" + } ; + P2 => table { + Sg => base_1+"ыш" ; + Pl => base_1+"ыце" + } ; + P3 => table { + Sg => base_1+"ыць" ; + Pl => base_1+"аць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ы" ; + Pl => base_1+"ыце" + } ; + infinitive = base_1+"ыць" ; + participle = table { + Masc => table { + Sg => base_1+"ыў" ; + Pl => base_1+"ылі" + } ; + Fem => table { + Sg => base_1+"ыла" ; + Pl => base_1+"ылі" + } ; + Neuter => table { + Sg => base_1+"ыла" ; + Pl => base_1+"ылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV064" + } ; + +mkV065 : Str -> V ; +mkV065 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"дзі" ; + Pl => base_1+"дзіце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"шаў" ; + Pl => base_1+"шлі" + } ; + Fem => table { + Sg => base_1+"шла" ; + Pl => base_1+"шлі" + } ; + Neuter => table { + Sg => base_1+"шла" ; + Pl => base_1+"шлі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV065" + } ; + +mkV066 : Str -> V ; +mkV066 base = + case base of { + base_1+"заць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"заць" ; + Pl => base_1+"жам" + } ; + P2 => table { + Sg => base_1+"жаш" ; + Pl => base_1+"жаце" + } ; + P3 => table { + Sg => base_1+"жа" ; + Pl => base_1+"жуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"заць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"жы" ; + Pl => base_1+"жыце" + } ; + infinitive = base_1+"заць" ; + participle = table { + Masc => table { + Sg => base_1+"заў" ; + Pl => base_1+"залі" + } ; + Fem => table { + Sg => base_1+"зала" ; + Pl => base_1+"залі" + } ; + Neuter => table { + Sg => base_1+"зала" ; + Pl => base_1+"залі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"заны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"заны" + } + } + }; + _ => error "Can't apply paradigm mkV066" + } ; + +mkV067 : Str -> V ; +mkV067 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"й" ; + Pl => base_1+"йце" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дзены" + } + } + }; + _ => error "Can't apply paradigm mkV067" + } ; + +mkV068 : Str -> V ; +mkV068 base = + case base of { + base_1+"ацца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ацца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ацца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ніся" ; + Pl => base_1+"ніцеся" + } ; + infinitive = base_1+"ацца" ; + participle = table { + Masc => table { + Sg => base_1+"аўся" ; + Pl => base_1+"аліся" + } ; + Fem => table { + Sg => base_1+"алася" ; + Pl => base_1+"аліся" + } ; + Neuter => table { + Sg => base_1+"алося" ; + Pl => base_1+"аліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV068" + } ; + +mkV069 : Str -> V ; +mkV069 base = + case base of { + base_1+"ець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ець" ; + Pl => base_1+"ім" + } ; + P2 => table { + Sg => base_1+"іш" ; + Pl => base_1+"іце" + } ; + P3 => table { + Sg => base_1+"іць" ; + Pl => base_1+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ець" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"ець" ; + participle = table { + Masc => table { + Sg => base_1+"еў" ; + Pl => base_1+"елі" + } ; + Fem => table { + Sg => base_1+"ела" ; + Pl => base_1+"елі" + } ; + Neuter => table { + Sg => base_1+"ела" ; + Pl => base_1+"елі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV069" + } ; + +mkV070 : Str -> V ; +mkV070 base = + case base of { + base_1+base_2@?+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"це" + } ; + infinitive = base_1+base_2+"ць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ў" ; + Pl => base_1+base_2+"лі" + } ; + Fem => table { + Sg => base_1+base_2+"ла" ; + Pl => base_1+base_2+"лі" + } ; + Neuter => table { + Sg => base_1+base_2+"ла" ; + Pl => base_1+base_2+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ан"+base_2 + } + } + }; + _ => error "Can't apply paradigm mkV070" + } ; + +mkV071 : Str -> V ; +mkV071 base = + case base of { + "мець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "mjecʹ" ; + Pl => "маем" + } ; + P2 => table { + Sg => "маеш" ; + Pl => "маеце" + } ; + P3 => table { + Sg => "мае" ; + Pl => "маюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "май" ; + Pl => "майце" + } ; + infinitive = "мець" ; + participle = table { + Masc => table { + Sg => "меў" ; + Pl => "мелі" + } ; + Fem => table { + Sg => "мела" ; + Pl => "мелі" + } ; + Neuter => table { + Sg => "мела" ; + Pl => "мелі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV071" + } ; + +mkV072 : Str -> V ; +mkV072 base = + case base of { + base_1+"ячы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ячы" ; + Pl => base_1+"ячом" + } ; + P2 => table { + Sg => base_1+"ячэш" ; + Pl => base_1+"ечаце" + } ; + P3 => table { + Sg => base_1+"ячэ" ; + Pl => base_1+"якуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ячы" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ячы" ; + Pl => base_1+"ячыце" + } ; + infinitive = base_1+"ячы" ; + participle = table { + Masc => table { + Sg => base_1+"ёк" ; + Pl => base_1+"яклі" + } ; + Fem => table { + Sg => base_1+"якла" ; + Pl => base_1+"яклі" + } ; + Neuter => table { + Sg => base_1+"якло" ; + Pl => base_1+"яклі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ечаны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ечаны" + } + } + }; + _ => error "Can't apply paradigm mkV072" + } ; + +mkV073 : Str -> V ; +mkV073 base = + case base of { + "плыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "plycʹ" ; + Pl => "плывём" + } ; + P2 => table { + Sg => "плывеш" ; + Pl => "плывяце" + } ; + P3 => table { + Sg => "плыве" ; + Pl => "плывуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "плыві" ; + Pl => "плывіце" + } ; + infinitive = "плыць" ; + participle = table { + Masc => table { + Sg => "плыў" ; + Pl => "плылі" + } ; + Fem => table { + Sg => "плыла" ; + Pl => "плылі" + } ; + Neuter => table { + Sg => "плыло" ; + Pl => "плылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV073" + } ; + +mkV074 : Str -> V ; +mkV074 base = + case base of { + base_1+"нуць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нуць" ; + Pl => base_1+"нем" + } ; + P2 => table { + Sg => base_1+"неш" ; + Pl => base_1+"неце" + } ; + P3 => table { + Sg => base_1+"не" ; + Pl => base_1+"нуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"нуць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ні" ; + Pl => base_1+"ніце" + } ; + infinitive = base_1+"нуць" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV074" + } ; + +mkV075 : Str -> V ; +mkV075 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ш" ; + Pl => base_1+"шце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дзены" + } + } + }; + _ => error "Can't apply paradigm mkV075" + } ; + +mkV076 : Str -> V ; +mkV076 base = + case base of { + base_1+base_2@?+"ціць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ціць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ціць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+base_2+"ці" ; + Pl => base_1+base_2+"ціце" + } ; + infinitive = base_1+base_2+"ціць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ціў" ; + Pl => base_1+base_2+"цілі" + } ; + Fem => table { + Sg => base_1+base_2+"ціла" ; + Pl => base_1+base_2+"цілі" + } ; + Neuter => table { + Sg => base_1+base_2+"ціла" ; + Pl => base_1+base_2+"цілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"оч"+base_2+"ны" + } + } + }; + _ => error "Can't apply paradigm mkV076" + } ; + +mkV077 : Str -> V ; +mkV077 base = + case base of { + base_1+"я"+base_2@?+"зець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"я"+base_2+"зець" ; + Pl => base_1+"я"+base_2+"зім" + } ; + P2 => table { + Sg => base_1+"я"+base_2+"зіш" ; + Pl => base_1+"е"+base_2+"зіце" + } ; + P3 => table { + Sg => base_1+"я"+base_2+"зіць" ; + Pl => base_1+"я"+base_2+"зяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"я"+base_2+"зі" ; + Pl => base_1+"я"+base_2+"зіце" + } ; + infinitive = base_1+"я"+base_2+"зець" ; + participle = table { + Masc => table { + Sg => base_1+"я"+base_2+"зеў" ; + Pl => base_1+"я"+base_2+"зелі" + } ; + Fem => table { + Sg => base_1+"я"+base_2+"зела" ; + Pl => base_1+"я"+base_2+"зелі" + } ; + Neuter => table { + Sg => base_1+"я"+base_2+"зела" ; + Pl => base_1+"я"+base_2+"зелі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"жаны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV077" + } ; + +mkV078 : Str -> V ; +mkV078 base = + case base of { + base_1+"сціць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сціць" ; + Pl => base_1+"сцім" + } ; + P2 => table { + Sg => base_1+"сціш" ; + Pl => base_1+"сціце" + } ; + P3 => table { + Sg => base_1+"сціць" ; + Pl => base_1+"сцяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сціць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"сці" ; + Pl => base_1+"сціце" + } ; + infinitive = base_1+"сціць" ; + participle = table { + Masc => table { + Sg => base_1+"сціў" ; + Pl => base_1+"сцілі" + } ; + Fem => table { + Sg => base_1+"сціла" ; + Pl => base_1+"сцілі" + } ; + Neuter => table { + Sg => base_1+"сціла" ; + Pl => base_1+"сцілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"шчаны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"шчаны" + } + } + }; + _ => error "Can't apply paradigm mkV078" + } ; + +mkV079 : Str -> V ; +mkV079 base = + case base of { + base_1+"я"+base_2@?+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"я"+base_2+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"я"+base_2+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"я"+base_2+"і" ; + Pl => base_1+"я"+base_2+"іце" + } ; + infinitive = base_1+"я"+base_2+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"я"+base_2+"іў" ; + Pl => base_1+"я"+base_2+"ілі" + } ; + Fem => table { + Sg => base_1+"я"+base_2+"іла" ; + Pl => base_1+"я"+base_2+"ілі" + } ; + Neuter => table { + Sg => base_1+"я"+base_2+"іла" ; + Pl => base_1+"я"+base_2+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"ены" + } + } + }; + _ => error "Can't apply paradigm mkV079" + } ; + +mkV080 : Str -> V ; +mkV080 base = + case base of { + base_1+"цца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"цца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"цца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"нься" ; + Pl => base_1+"ньцеся" + } ; + infinitive = base_1+"цца" ; + participle = table { + Masc => table { + Sg => base_1+"ўся" ; + Pl => base_1+"ліся" + } ; + Fem => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } ; + Neuter => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV080" + } ; + +mkV081 : Str -> V ; +mkV081 base = + case base of { + "ўмець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ŭmjecʹ" ; + Pl => "ўмеем" + } ; + P2 => table { + Sg => "ўмееш" ; + Pl => "ўмееце" + } ; + P3 => table { + Sg => "ўмее" ; + Pl => "ўмеюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "ўмей" ; + Pl => "ўмейце" + } ; + infinitive = "ўмець" ; + participle = table { + Masc => table { + Sg => "ўмеў" ; + Pl => "ўмелі" + } ; + Fem => table { + Sg => "ўмела" ; + Pl => "ўмелі" + } ; + Neuter => table { + Sg => "ўмела" ; + Pl => "ўмелі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV081" + } ; + +mkV082 : Str -> V ; +mkV082 base = + case base of { + base_1+"ацца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ацца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ацца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"іся" ; + Pl => base_1+"іцеся" + } ; + infinitive = base_1+"ацца" ; + participle = table { + Masc => table { + Sg => base_1+"аўся" ; + Pl => base_1+"аліся" + } ; + Fem => table { + Sg => base_1+"алася" ; + Pl => base_1+"аліся" + } ; + Neuter => table { + Sg => base_1+"алася" ; + Pl => base_1+"аліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV082" + } ; + +mkV083 : Str -> V ; +mkV083 base = + case base of { + base_1+"а"+base_2@?+"ацца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"ацца" ; + Pl => base_1+"о"+base_2+"імся" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"ішся" ; + Pl => base_1+"о"+base_2+"іцеся" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"іцца" ; + Pl => base_1+"о"+base_2+"яцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"іся" ; + Pl => base_1+"а"+base_2+"іцеся" + } ; + infinitive = base_1+"а"+base_2+"ацца" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"аўся" ; + Pl => base_1+"а"+base_2+"аліся" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"алася" ; + Pl => base_1+"а"+base_2+"аліся" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"алася" ; + Pl => base_1+"а"+base_2+"аліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV083" + } ; + +mkV084 : Str -> V ; +mkV084 base = + case base of { + base_1+"яваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яваць" ; + Pl => base_1+"юём" + } ; + P2 => table { + Sg => base_1+"юеш" ; + Pl => base_1+"юяце" + } ; + P3 => table { + Sg => base_1+"юе" ; + Pl => base_1+"ююць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яваць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"юй" ; + Pl => base_1+"юйце" + } ; + infinitive = base_1+"яваць" ; + participle = table { + Masc => table { + Sg => base_1+"яваў" ; + Pl => base_1+"явалі" + } ; + Fem => table { + Sg => base_1+"явала" ; + Pl => base_1+"явалі" + } ; + Neuter => table { + Sg => base_1+"явала" ; + Pl => base_1+"явалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"яваны" --guessed + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV084" + } ; + +mkV085 : Str -> V ; +mkV085 base = + case base of { + "біць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "bicʹ" ; + Pl => "б'ём" + } ; + P2 => table { + Sg => "б'еш" ; + Pl => "б'яце" + } ; + P3 => table { + Sg => "б'е" ; + Pl => "б'юць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "бі" ; + Pl => "біце" + } ; + infinitive = "біць" ; + participle = table { + Masc => table { + Sg => "біў" ; + Pl => "білі" + } ; + Fem => table { + Sg => "біла" ; + Pl => "білі" + } ; + Neuter => table { + Sg => "біла" ; + Pl => "білі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "біты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV085" + } ; + +mkV086 : Str -> V ; +mkV086 base = + case base of { + base_1+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => base_1+"ом" + } ; + P2 => table { + Sg => base_1+"эш" ; + Pl => base_1+"аце" + } ; + P3 => table { + Sg => base_1+"э" ; + Pl => base_1+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ы" ; + Pl => base_1+"ыце" + } ; + infinitive = base_1+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"аў" ; + Pl => base_1+"алі" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } ; + Neuter => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV086" + } ; + +mkV087 : Str -> V ; +mkV087 base = + case base of { + base_1+"ыцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыцца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => base_1+"ыцца" ; + Pl => base_1+"ацца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыцца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ся" ; + Pl => base_1+"цеся" + } ; + infinitive = base_1+"ыцца" ; + participle = table { + Masc => table { + Sg => base_1+"ыўся" ; + Pl => base_1+"ыліся" + } ; + Fem => table { + Sg => base_1+"ылася" ; + Pl => base_1+"ыліся" + } ; + Neuter => table { + Sg => base_1+"ылася" ; + Pl => base_1+"ыліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV087" + } ; + +mkV088 : Str -> V ; +mkV088 base = + case base of { + "са"+base_1+base_2@?+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "са"+base_1+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "са"+base_1+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "з"+base_1+"я"+base_2+"ы" ; + Pl => "з"+base_1+"я"+base_2+"ыце" + } ; + infinitive = "са"+base_1+base_2+"аць" ; + participle = table { + Masc => table { + Sg => "са"+base_1+base_2+"аў" ; + Pl => "са"+base_1+base_2+"алі" + } ; + Fem => table { + Sg => "са"+base_1+base_2+"ала" ; + Pl => "са"+base_1+base_2+"алі" + } ; + Neuter => table { + Sg => "са"+base_1+base_2+"ала" ; + Pl => "са"+base_1+base_2+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "са"+base_1+base_2+"аны" + } + } + }; + _ => error "Can't apply paradigm mkV088" + } ; + +mkV089 : Str -> V ; +mkV089 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ві" ; + Pl => base_1+"віце" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ты" + } + } + }; + _ => error "Can't apply paradigm mkV089" + } ; + +mkV090 : Str -> V ; +mkV090 base = + case base of { + "гнаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "hnacʹ" ; + Pl => "гонім" + } ; + P2 => table { + Sg => "гоніш" ; + Pl => "гоніце" + } ; + P3 => table { + Sg => "гоніць" ; + Pl => "гоняць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "гані" ; + Pl => "ганіце" + } ; + infinitive = "гнаць" ; + participle = table { + Masc => table { + Sg => "гнаў" ; + Pl => "гналі" + } ; + Fem => table { + Sg => "гнала" ; + Pl => "гналі" + } ; + Neuter => table { + Sg => "гнала" ; + Pl => "гналі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "гнаны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV090" + } ; + +mkV091 : Str -> V ; +mkV091 base = + case base of { + "ўжыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ŭžycʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ўжыць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "ўжыві" ; + Pl => "ўжывіце" + } ; + infinitive = "ўжыць" ; + participle = table { + Masc => table { + Sg => "ўжыў" ; + Pl => "ўжылі" + } ; + Fem => table { + Sg => "ўжыла" ; + Pl => "ўжылі" + } ; + Neuter => table { + Sg => "ўжыло" ; + Pl => "ўжылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "ўжыты" + } + } + }; + _ => error "Can't apply paradigm mkV091" + } ; + +mkV092 : Str -> V ; +mkV092 base = + case base of { + base_1+"ці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ці" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"еце" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьце" + } ; + infinitive = base_1+"ці" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV092" + } ; + +mkV093 : Str -> V ; +mkV093 base = + case base of { + base_1+base_2@?+"яцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"яцца" ; + Pl => base_1+base_2+"ёмся" + } ; + P2 => table { + Sg => base_1+base_2+"ешся" ; + Pl => base_1+"е"+base_2+"цеся" + } ; + P3 => table { + Sg => base_1+base_2+"ецца" ; + Pl => base_1+base_2+"юцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ейс"+base_2 ; + Pl => base_1+"ейцес"+base_2 + } ; + infinitive = base_1+base_2+"яцца" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"яўся" ; + Pl => base_1+base_2+"яліся" + } ; + Fem => table { + Sg => base_1+base_2+"ялася" ; + Pl => base_1+base_2+"яліся" + } ; + Neuter => table { + Sg => base_1+base_2+"ялася" ; + Pl => base_1+base_2+"яліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV093" + } ; + +mkV094 : Str -> V ; +mkV094 base = + case base of { + "слаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "slacʹ" ; + Pl => "шлём" + } ; + P2 => table { + Sg => "шлеш" ; + Pl => "шляце" + } ; + P3 => table { + Sg => "шле" ; + Pl => "шлюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "шлі" ; + Pl => "шліце" + } ; + infinitive = "слаць" ; + participle = table { + Masc => table { + Sg => "слаў" ; + Pl => "слалі" + } ; + Fem => table { + Sg => "слала" ; + Pl => "слалі" + } ; + Neuter => table { + Sg => "слала" ; + Pl => "слалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "сланы" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV094" + } ; + +mkV095 : Str -> V ; +mkV095 base = + case base of { + "слаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "slacʹ" ; + Pl => "сцелем" + } ; + P2 => table { + Sg => "сцелеш" ; + Pl => "сцелеце" + } ; + P3 => table { + Sg => "сцеле" ; + Pl => "сцелюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "сцялі" ; + Pl => "сцяліце" + } ; + infinitive = "слаць" ; + participle = table { + Masc => table { + Sg => "слаў" ; + Pl => "слалі" + } ; + Fem => table { + Sg => "слала" ; + Pl => "слалі" + } ; + Neuter => table { + Sg => "слала" ; + Pl => "слалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "сланы" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV095" + } ; + +mkV096 : Str -> V ; +mkV096 base = + case base of { + base_1+"а"+base_2@?+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+"а"+base_2+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"іў" ; + Pl => base_1+"а"+base_2+"ілі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"іла" ; + Pl => base_1+"а"+base_2+"ілі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"іла" ; + Pl => base_1+"а"+base_2+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"ены" + } + } + }; + _ => error "Can't apply paradigm mkV096" + } ; + +mkV097 : Str -> V ; +mkV097 base = + case base of { + "я"+base_1+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "я"+base_1+"аць" ; + Pl => "я"+base_1+"ём" + } ; + P2 => table { + Sg => "я"+base_1+"еш" ; + Pl => "е"+base_1+"яце" + } ; + P3 => table { + Sg => "я"+base_1+"е" ; + Pl => "я"+base_1+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "я"+base_1+"і" ; + Pl => "я"+base_1+"іце" + } ; + infinitive = "я"+base_1+"аць" ; + participle = table { + Masc => table { + Sg => "я"+base_1+"аў" ; + Pl => "я"+base_1+"алі" + } ; + Fem => table { + Sg => "я"+base_1+"ала" ; + Pl => "я"+base_1+"алі" + } ; + Neuter => table { + Sg => "я"+base_1+"ала" ; + Pl => "я"+base_1+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "я"+base_1+"аны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV097" + } ; + +mkV098 : Str -> V ; +mkV098 base = + case base of { + "ўстаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ŭstacʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ўстаць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "ўстань" ; + Pl => "ўстаньце" + } ; + infinitive = "ўстаць" ; + participle = table { + Masc => table { + Sg => "ўстаў" ; + Pl => "ўсталі" + } ; + Fem => table { + Sg => "ўстала" ; + Pl => "ўсталі" + } ; + Neuter => table { + Sg => "ўстала" ; + Pl => "ўсталі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV098" + } ; + +mkV099 : Str -> V ; +mkV099 base = + case base of { + base_1+"есці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"есці" ; + Pl => base_1+"ядзём" + } ; + P2 => table { + Sg => base_1+"ядзеш" ; + Pl => base_1+"едзяце" + } ; + P3 => table { + Sg => base_1+"ядзе" ; + Pl => base_1+"ядуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"есці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ядзі" ; + Pl => base_1+"ядзіце" + } ; + infinitive = base_1+"есці" ; + participle = table { + Masc => table { + Sg => base_1+"ёў" ; + Pl => base_1+"ялі" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"ялі" + } ; + Neuter => table { + Sg => base_1+"яло" ; + Pl => base_1+"ялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"едзены" + } + } + }; + _ => error "Can't apply paradigm mkV099" + } ; + +mkV100 : Str -> V ; +mkV100 base = + case base of { + base_1+"с"+base_2@?+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"с"+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"с"+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ш"+base_2+"і" ; + Pl => base_1+"ш"+base_2+"іце" + } ; + infinitive = base_1+"с"+base_2+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"с"+base_2+"аў" ; + Pl => base_1+"с"+base_2+"алі" + } ; + Fem => table { + Sg => base_1+"с"+base_2+"ала" ; + Pl => base_1+"с"+base_2+"алі" + } ; + Neuter => table { + Sg => base_1+"с"+base_2+"ала" ; + Pl => base_1+"с"+base_2+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"с"+base_2+"аны" + } + } + }; + _ => error "Can't apply paradigm mkV100" + } ; + +mkV101 : Str -> V ; +mkV101 base = + case base of { + base_1+base_2@?+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"це"+base_2+"і" ; + Pl => base_1+"це"+base_2+"іце" + } ; + infinitive = base_1+base_2+"аць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"аў" ; + Pl => base_1+base_2+"алі" + } ; + Fem => table { + Sg => base_1+base_2+"ала" ; + Pl => base_1+base_2+"алі" + } ; + Neuter => table { + Sg => base_1+base_2+"ала" ; + Pl => base_1+base_2+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+base_2+"аны" + } + } + }; + _ => error "Can't apply paradigm mkV101" + } ; + +mkV102 : Str -> V ; +mkV102 base = + case base of { + base_1+base_2@?+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+base_2+"аць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"аў" ; + Pl => base_1+base_2+"алі" + } ; + Fem => table { + Sg => base_1+base_2+"ала" ; + Pl => base_1+base_2+"алі" + } ; + Neuter => table { + Sg => base_1+base_2+"ала" ; + Pl => base_1+base_2+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+base_2+"аны" + } + } + }; + _ => error "Can't apply paradigm mkV102" + } ; + +mkV103 : Str -> V ; +mkV103 base = + case base of { + base_1+"уцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уцца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уцца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"іся" ; + Pl => base_1+"іцеся" + } ; + infinitive = base_1+"уцца" ; + participle = table { + Masc => table { + Sg => base_1+"уўся" ; + Pl => base_1+"уліся" + } ; + Fem => table { + Sg => base_1+"улася" ; + Pl => base_1+"уліся" + } ; + Neuter => table { + Sg => base_1+"улася" ; + Pl => base_1+"уліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV103" + } ; + +mkV104 : Str -> V ; +mkV104 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => "будзем "+base_1+"ць" --guessed + } ; + P2 => table { + Sg => "будзеш "+base_1+"ць" ; --guessed + Pl => "будзеце "+base_1+"ць" --guessed + } ; + P3 => table { + Sg => "будзе "+base_1+"ць" ; --guessed + Pl => "будуць "+base_1+"ць" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"й" ; + Pl => base_1+"йце" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ны" --guessed + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"дзены" + } + } + }; + _ => error "Can't apply paradigm mkV104" + } ; + +mkV105 : Str -> V ; +mkV105 base = + case base of { + "пазнаёміць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "paznajómicʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "пазнаёміць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "пазнаёмь" ; + Pl => "пазнаёмьце" + } ; + infinitive = "пазнаёміць" ; + participle = table { + Masc => table { + Sg => "пазнаёміў" ; + Pl => "пазнаёмілі" + } ; + Fem => table { + Sg => "пазнаёміла" ; + Pl => "пазнаёмілі" + } ; + Neuter => table { + Sg => "пазнаёміла" ; + Pl => "пазнаёмілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "пазнаёмлены" + } + } + }; + _ => error "Can't apply paradigm mkV105" + } ; + +mkV106 : Str -> V ; +mkV106 base = + case base of { + base_1+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => base_1+"ім" --guessed + } ; + P2 => table { + Sg => base_1+"іш" ; --guessed + Pl => base_1+"іце" --guessed + } ; + P3 => table { + Sg => base_1+"іць" ; --guessed + Pl => base_1+"яць" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьце" + } ; + infinitive = base_1+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"іў" ; + Pl => base_1+"ілі" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } ; + Neuter => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"лены" + } + } + }; + _ => error "Can't apply paradigm mkV106" + } ; + +mkV107 : Str -> V ; +mkV107 base = + case base of { + "знаёміць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "znajómicʹ" ; + Pl => "знаёмім" + } ; + P2 => table { + Sg => "знаёміш" ; + Pl => "знаёміце" + } ; + P3 => table { + Sg => "знаёміць" ; + Pl => "знаёмяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "знаёмь" ; + Pl => "знаёмьце" + } ; + infinitive = "знаёміць" ; + participle = table { + Masc => table { + Sg => "знаёміў" ; + Pl => "знаёмілі" + } ; + Fem => table { + Sg => "знаёміла" ; + Pl => "знаёмілі" + } ; + Neuter => table { + Sg => "знаёміла" ; + Pl => "знаёмілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV107" + } ; + +mkV108 : Str -> V ; +mkV108 base = + case base of { + "ўчуць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ŭčucʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ўчуць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "ўчуй" ; + Pl => "ўчуйце" + } ; + infinitive = "ўчуць" ; + participle = table { + Masc => table { + Sg => "ўчуў" ; + Pl => "ўчулі" + } ; + Fem => table { + Sg => "ўчула" ; + Pl => "ўчулі" + } ; + Neuter => table { + Sg => "ўчула" ; + Pl => "ўчулі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "ўчуты" + } + } + }; + _ => error "Can't apply paradigm mkV108" + } ; + +mkV109 : Str -> V ; +mkV109 base = + case base of { + base_1+"зець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зець" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зець" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"зь" ; + Pl => base_1+"зьце" + } ; + infinitive = base_1+"зець" ; + participle = table { + Masc => table { + Sg => base_1+"зеў" ; + Pl => base_1+"зелі" + } ; + Fem => table { + Sg => base_1+"зела" ; + Pl => base_1+"зелі" + } ; + Neuter => table { + Sg => base_1+"зела" ; + Pl => base_1+"зелі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жаны" + } + } + }; + _ => error "Can't apply paradigm mkV109" + } ; + +mkV110 : Str -> V ; +mkV110 base = + case base of { + base_1+base_2@?+"рціць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"рціць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"рціць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+base_2+"рці" ; + Pl => base_1+base_2+"рціце" + } ; + infinitive = base_1+base_2+"рціць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"рціў" ; + Pl => base_1+base_2+"рцілі" + } ; + Fem => table { + Sg => base_1+base_2+"рціла" ; + Pl => base_1+base_2+"рцілі" + } ; + Neuter => table { + Sg => base_1+base_2+"рціла" ; + Pl => base_1+base_2+"рцілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"эрч"+base_2+"ны" + } + } + }; + _ => error "Can't apply paradigm mkV110" + } ; + +mkV111 : Str -> V ; +mkV111 base = + case base of { + base_1+"а"+base_2@?+"ціць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"ціць" ; + Pl => base_1+"э"+base_2+"цім" + } ; + P2 => table { + Sg => base_1+"э"+base_2+"ціш" ; + Pl => base_1+"э"+base_2+"ціце" + } ; + P3 => table { + Sg => base_1+"э"+base_2+"ціць" ; + Pl => base_1+"э"+base_2+"цяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"ці" ; + Pl => base_1+"а"+base_2+"ціце" + } ; + infinitive = base_1+"а"+base_2+"ціць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"ціў" ; + Pl => base_1+"а"+base_2+"цілі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ціла" ; + Pl => base_1+"а"+base_2+"цілі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ціла" ; + Pl => base_1+"а"+base_2+"цілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"э"+base_2+"чаны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV111" + } ; + +mkV112 : Str -> V ; +mkV112 base = + case base of { + base_1+base_2@?+"р"+base_3@?+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"р"+base_3+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"р"+base_3+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+base_2+"р"+base_3 ; + Pl => base_1+base_2+"р"+base_3+"це" + } ; + infinitive = base_1+base_2+"р"+base_3+"ць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"р"+base_3+"ў" ; + Pl => base_1+base_2+"р"+base_3+"лі" + } ; + Fem => table { + Sg => base_1+base_2+"р"+base_3+"ла" ; + Pl => base_1+base_2+"р"+base_3+"лі" + } ; + Neuter => table { + Sg => base_1+base_2+"р"+base_3+"ла" ; + Pl => base_1+base_2+"р"+base_3+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ор"+base_2+"н"+base_3 + } + } + }; + _ => error "Can't apply paradigm mkV112" + } ; + +mkV113 : Str -> V ; +mkV113 base = + case base of { + base_1+"ыцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыцца" ; + Pl => base_1+"ымся" + } ; + P2 => table { + Sg => base_1+"ышся" ; + Pl => base_1+"ыцеся" + } ; + P3 => table { + Sg => base_1+"ыцца" ; + Pl => base_1+"ацца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ыся" ; + Pl => base_1+"ыцеся" + } ; + infinitive = base_1+"ыцца" ; + participle = table { + Masc => table { + Sg => base_1+"ыўся" ; + Pl => base_1+"ыліся" + } ; + Fem => table { + Sg => base_1+"ылася" ; + Pl => base_1+"ыліся" + } ; + Neuter => table { + Sg => base_1+"ылася" ; + Pl => base_1+"ыліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV113" + } ; + +mkV114 : Str -> V ; +mkV114 base = + case base of { + "ліць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "licʹ" ; + Pl => "льём" + } ; + P2 => table { + Sg => "льеш" ; + Pl => "льяце" + } ; + P3 => table { + Sg => "лье" ; + Pl => "льюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "лі" ; + Pl => "ліце" + } ; + infinitive = "ліць" ; + participle = table { + Masc => table { + Sg => "ліў" ; + Pl => "лілі" + } ; + Fem => table { + Sg => "ліла" ; + Pl => "лілі" + } ; + Neuter => table { + Sg => "ліло" ; + Pl => "лілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "літы" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV114" + } ; + +mkV115 : Str -> V ; +mkV115 base = + case base of { + base_1@("см"|?)+"я"+base_2+"ець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"я"+base_2+"ець" ; + Pl => base_1+"я"+base_2+"ім" + } ; + P2 => table { + Sg => base_1+"я"+base_2+"іш" ; + Pl => base_1+"е"+base_2+"іце" + } ; + P3 => table { + Sg => base_1+"я"+base_2+"іць" ; + Pl => base_1+"я"+base_2+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"я"+base_2+"і" ; + Pl => base_1+"я"+base_2+"іце" + } ; + infinitive = base_1+"я"+base_2+"ець" ; + participle = table { + Masc => table { + Sg => base_1+"я"+base_2+"еў" ; + Pl => base_1+"я"+base_2+"елі" + } ; + Fem => table { + Sg => base_1+"я"+base_2+"ела" ; + Pl => base_1+"я"+base_2+"елі" + } ; + Neuter => table { + Sg => base_1+"я"+base_2+"ела" ; + Pl => base_1+"я"+base_2+"елі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV115" + } ; + +mkV116 : Str -> V ; +mkV116 base = + case base of { + base_1+"а"+base_2@?+"таць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"таць" ; + Pl => base_1+"о"+base_2+"чам" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"чаш" ; + Pl => base_1+"о"+base_2+"чаце" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"ча" ; + Pl => base_1+"о"+base_2+"чуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"чы" ; + Pl => base_1+"а"+base_2+"чыце" + } ; + infinitive = base_1+"а"+base_2+"таць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"таў" ; + Pl => base_1+"а"+base_2+"талі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"тала" ; + Pl => base_1+"а"+base_2+"талі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"тала" ; + Pl => base_1+"а"+base_2+"талі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV116" + } ; + +mkV117 : Str -> V ; +mkV117 base = + case base of { + base_1+"а"+base_2@?+"оць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"оць" ; + Pl => base_1+"о"+base_2+"ем" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"еш" ; + Pl => base_1+"о"+base_2+"еце" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"юць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+"а"+base_2+"оць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"оў" ; + Pl => base_1+"а"+base_2+"олі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ола" ; + Pl => base_1+"а"+base_2+"олі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ола" ; + Pl => base_1+"а"+base_2+"олі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"аты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV117" + } ; + +mkV118 : Str -> V ; +mkV118 base = + case base of { + base_1+"я"+base_2@?+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"я"+base_2+"аць" ; + Pl => base_1+"я"+base_2+"ым" + } ; + P2 => table { + Sg => base_1+"я"+base_2+"ыш" ; + Pl => base_1+"е"+base_2+"ыце" + } ; + P3 => table { + Sg => base_1+"я"+base_2+"ыць" ; + Pl => base_1+"я"+base_2+"аць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"я"+base_2+"ы" ; + Pl => base_1+"я"+base_2+"ыце" + } ; + infinitive = base_1+"я"+base_2+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"я"+base_2+"аў" ; + Pl => base_1+"я"+base_2+"алі" + } ; + Fem => table { + Sg => base_1+"я"+base_2+"ала" ; + Pl => base_1+"я"+base_2+"алі" + } ; + Neuter => table { + Sg => base_1+"я"+base_2+"ала" ; + Pl => base_1+"я"+base_2+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV118" + } ; + +mkV119 : Str -> V ; +mkV119 base = + case base of { + base_1+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1 ; + Pl => base_1+"це" + } ; + infinitive = base_1+"ць" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ты" + } + } + }; + _ => error "Can't apply paradigm mkV119" + } ; + +mkV120 : Str -> V ; +mkV120 base = + case base of { + base_1+"яваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яваць" ; + Pl => base_1+"юем" + } ; + P2 => table { + Sg => base_1+"юеш" ; + Pl => base_1+"юеце" + } ; + P3 => table { + Sg => base_1+"юе" ; + Pl => base_1+"ююць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"юй" ; + Pl => base_1+"юйце" + } ; + infinitive = base_1+"яваць" ; + participle = table { + Masc => table { + Sg => base_1+"яваў" ; + Pl => base_1+"явалі" + } ; + Fem => table { + Sg => base_1+"явала" ; + Pl => base_1+"явалі" + } ; + Neuter => table { + Sg => base_1+"явала" ; + Pl => base_1+"явалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"яваны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV120" + } ; + +mkV121 : Str -> V ; +mkV121 base = + case base of { + "дзьмуць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "dzʹmucʹ" ; + Pl => "дзьмём" + } ; + P2 => table { + Sg => "дзьмеш" ; + Pl => "дзьмяце" + } ; + P3 => table { + Sg => "дзьме" ; + Pl => "дзьмуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "дзьмі" ; + Pl => "дзьміце" + } ; + infinitive = "дзьмуць" ; + participle = table { + Masc => table { + Sg => "дзьмуў" ; + Pl => "дзьмулі" + } ; + Fem => table { + Sg => "дзьмула" ; + Pl => "дзьмулі" + } ; + Neuter => table { + Sg => "дзьмула" ; + Pl => "дзьмулі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV121" + } ; + +mkV122 : Str -> V ; +mkV122 base = + case base of { + "шыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "šycʹ" ; + Pl => "шыем" + } ; + P2 => table { + Sg => "шыеш" ; + Pl => "шыеце" + } ; + P3 => table { + Sg => "шые" ; + Pl => "шыюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "шый" ; + Pl => "шыйце" + } ; + infinitive = "шыць" ; + participle = table { + Masc => table { + Sg => "шыў" ; + Pl => "шылі" + } ; + Fem => table { + Sg => "шыла" ; + Pl => "шылі" + } ; + Neuter => table { + Sg => "шыла" ; + Pl => "шылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "шыты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV122" + } ; + +mkV123 : Str -> V ; +mkV123 base = + case base of { + "рыць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "rycʹ" ; + Pl => "рыем" + } ; + P2 => table { + Sg => "рыеш" ; + Pl => "рыеце" + } ; + P3 => table { + Sg => "рые" ; + Pl => "рыюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "рый" ; + Pl => "рыйце" + } ; + infinitive = "рыць" ; + participle = table { + Masc => table { + Sg => "рыў" ; + Pl => "рылі" + } ; + Fem => table { + Sg => "рыла" ; + Pl => "рылі" + } ; + Neuter => table { + Sg => "рыла" ; + Pl => "рылі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "рыты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV123" + } ; + +mkV124 : Str -> V ; +mkV124 base = + case base of { + "па"+base_1+"яць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "па"+base_1+"яць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "па"+base_1+"яць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ні" ; + Pl => base_1+"ніце" + } ; + infinitive = "па"+base_1+"яць" ; + participle = table { + Masc => table { + Sg => "па"+base_1+"яў" ; + Pl => "па"+base_1+"ялі" + } ; + Fem => table { + Sg => "па"+base_1+"яла" ; + Pl => "па"+base_1+"ялі" + } ; + Neuter => table { + Sg => "па"+base_1+"яла" ; + Pl => "па"+base_1+"ялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "па"+base_1+"яты" + } + } + }; + _ => error "Can't apply paradigm mkV124" + } ; + +mkV125 : Str -> V ; +mkV125 base = + case base of { + base_1+"гаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гаць" ; + Pl => base_1+"жом" + } ; + P2 => table { + Sg => base_1+"жэш" ; + Pl => base_1+"жаце" + } ; + P3 => table { + Sg => base_1+"жэ" ; + Pl => base_1+"гуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гаць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"жы" ; + Pl => base_1+"жыце" + } ; + infinitive = base_1+"гаць" ; + participle = table { + Masc => table { + Sg => base_1+"гаў" ; + Pl => base_1+"галі" + } ; + Fem => table { + Sg => base_1+"гала" ; + Pl => base_1+"галі" + } ; + Neuter => table { + Sg => base_1+"гала" ; + Pl => base_1+"галі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV125" + } ; + +mkV126 : Str -> V ; +mkV126 base = + case base of { + base_1+base_2@?+"дзіць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"дзіць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"дзіць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+base_2+"дзі" ; + Pl => base_1+base_2+"дзіце" + } ; + infinitive = base_1+base_2+"дзіць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"дзіў" ; + Pl => base_1+base_2+"дзілі" + } ; + Fem => table { + Sg => base_1+base_2+"дзіла" ; + Pl => base_1+base_2+"дзілі" + } ; + Neuter => table { + Sg => base_1+base_2+"дзіла" ; + Pl => base_1+base_2+"дзілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"одж"+base_2+"ны" + } + } + }; + _ => error "Can't apply paradigm mkV126" + } ; + +mkV127 : Str -> V ; +mkV127 base = + case base of { + "джгаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "džhacʹ" ; + Pl => "джгаем" + } ; + P2 => table { + Sg => "джгаеш" ; + Pl => "джгаеце" + } ; + P3 => table { + Sg => "джгае" ; + Pl => "джгаюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "джгай" ; + Pl => "джгайце" + } ; + infinitive = "джгаць" ; + participle = table { + Masc => table { + Sg => "джгаў" ; + Pl => "джгалі" + } ; + Fem => table { + Sg => "джгала" ; + Pl => "джгалі" + } ; + Neuter => table { + Sg => "джгала" ; + Pl => "джгалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV127" + } ; + +mkV128 : Str -> V ; +mkV128 base = + case base of { + base_1+"яць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"яць" ; + Pl => base_1+"ем" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"еце" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"юць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"й" ; + Pl => base_1+"йце" + } ; + infinitive = base_1+"яць" ; + participle = table { + Masc => table { + Sg => base_1+"яў" ; + Pl => base_1+"ялі" + } ; + Fem => table { + Sg => base_1+"яла" ; + Pl => base_1+"ялі" + } ; + Neuter => table { + Sg => base_1+"яла" ; + Pl => base_1+"ялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"яны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV128" + } ; + +mkV129 : Str -> V ; +mkV129 base = + case base of { + "ссаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ssacʹ" ; + Pl => "ссём" + } ; + P2 => table { + Sg => "ссеш" ; + Pl => "ссяце" + } ; + P3 => table { + Sg => "ссе" ; + Pl => "ссуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "ссі" ; + Pl => "ссіце" + } ; + infinitive = "ссаць" ; + participle = table { + Masc => table { + Sg => "ссаў" ; + Pl => "ссалі" + } ; + Fem => table { + Sg => "ссала" ; + Pl => "ссалі" + } ; + Neuter => table { + Sg => "ссала" ; + Pl => "ссалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV129" + } ; + +mkV130 : Str -> V ; +mkV130 base = + case base of { + base_1+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => base_1+"ым" + } ; + P2 => table { + Sg => base_1+"ыш" ; + Pl => base_1+"ыце" + } ; + P3 => table { + Sg => base_1+"ыць" ; + Pl => base_1+"аць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ы" ; + Pl => base_1+"ыце" + } ; + infinitive = base_1+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"аў" ; + Pl => base_1+"алі" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } ; + Neuter => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV130" + } ; + +mkV131 : Str -> V ; +mkV131 base = + case base of { + base_1+"егчы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"егчы" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"егчы" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"яж" ; + Pl => base_1+"яжце" + } ; + infinitive = base_1+"егчы" ; + participle = table { + Masc => table { + Sg => base_1+"ёг" ; + Pl => base_1+"яглі" + } ; + Fem => table { + Sg => base_1+"ягла" ; + Pl => base_1+"яглі" + } ; + Neuter => table { + Sg => base_1+"ягло" ; + Pl => base_1+"яглі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV131" + } ; + +mkV132 : Str -> V ; +mkV132 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => base_1+"вём" + } ; + P2 => table { + Sg => base_1+"веш" ; + Pl => base_1+"вяце" + } ; + P3 => table { + Sg => base_1+"ве" ; + Pl => base_1+"вуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ві" ; + Pl => base_1+"віце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV132" + } ; + +mkV133 : Str -> V ; +mkV133 base = + case base of { + base_1+"е"+base_2@?+"агчы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"агчы" ; + Pl => base_1+"е"+base_2+"ажом" + } ; + P2 => table { + Sg => base_1+"е"+base_2+"ажэш" ; + Pl => base_1+"е"+base_2+"ажаце" + } ; + P3 => table { + Sg => base_1+"е"+base_2+"ажэ" ; + Pl => base_1+"е"+base_2+"агуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"е"+base_2+"агчы" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"е"+base_2+"ажы" ; + Pl => base_1+"е"+base_2+"ажыце" + } ; + infinitive = base_1+"е"+base_2+"агчы" ; + participle = table { + Masc => table { + Sg => base_1+"я"+base_2+"ог" ; + Pl => base_1+"е"+base_2+"аглі" + } ; + Fem => table { + Sg => base_1+"е"+base_2+"агла" ; + Pl => base_1+"е"+base_2+"аглі" + } ; + Neuter => table { + Sg => base_1+"е"+base_2+"агло" ; + Pl => base_1+"е"+base_2+"аглі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"ажоны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"е"+base_2+"ажоны" + } + } + }; + _ => error "Can't apply paradigm mkV133" + } ; + +mkV134 : Str -> V ; +mkV134 base = + case base of { + base_1+"а"+base_2@(?+?)+"ці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"ці" ; + Pl => base_1+"а"+base_2+"ём" + } ; + P2 => table { + Sg => base_1+"а"+base_2+"еш" ; + Pl => base_1+"а"+base_2+"яце" + } ; + P3 => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"а"+base_2+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+"а"+base_2+"ці" ; + participle = table { + Masc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"лі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ла" ; + Pl => base_1+"а"+base_2+"лі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ло" ; + Pl => base_1+"а"+base_2+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV134" + } ; + +mkV135 : Str -> V ; +mkV135 base = + case base of { + base_1+"а"+base_2@?+"ці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"ці" ; + Pl => base_1+"а"+base_2+"цём" + } ; + P2 => table { + Sg => base_1+"а"+base_2+"цеш" ; + Pl => base_1+"а"+base_2+"цяце" + } ; + P3 => table { + Sg => base_1+"а"+base_2+"це" ; + Pl => base_1+"а"+base_2+"туць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"ці" ; + Pl => base_1+"а"+base_2+"ціце" + } ; + infinitive = base_1+"а"+base_2+"ці" ; + participle = table { + Masc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"а"+base_2+"лі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ла" ; + Pl => base_1+"а"+base_2+"лі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ло" ; + Pl => base_1+"а"+base_2+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV135" + } ; + +mkV136 : Str -> V ; +mkV136 base = + case base of { + base_1+"ці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ці" ; + Pl => base_1+"ём" + } ; + P2 => table { + Sg => base_1+"еш" ; + Pl => base_1+"яце" + } ; + P3 => table { + Sg => base_1+"е" ; + Pl => base_1+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"ці" ; + participle = table { + Masc => table { + Sg => base_1 ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ены" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV136" + } ; + +mkV137 : Str -> V ; +mkV137 base = + case base of { + base_1+"э"+base_2@?+"ці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"э"+base_2+"ці" ; + Pl => base_1+"а"+base_2+"ём" + } ; + P2 => table { + Sg => base_1+"а"+base_2+"еш" ; + Pl => base_1+"а"+base_2+"яце" + } ; + P3 => table { + Sg => base_1+"а"+base_2+"е" ; + Pl => base_1+"а"+base_2+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+"э"+base_2+"ці" ; + participle = table { + Masc => table { + Sg => base_1+"о"+base_2 ; + Pl => base_1+"э"+base_2+"лі" + } ; + Fem => table { + Sg => base_1+"э"+base_2+"ла" ; + Pl => base_1+"э"+base_2+"лі" + } ; + Neuter => table { + Sg => base_1+"э"+base_2+"ла" ; + Pl => base_1+"э"+base_2+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV137" + } ; + +mkV138 : Str -> V ; +mkV138 base = + case base of { + base_1+"есці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"есці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"есці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ядзь" ; + Pl => base_1+"ядзьце" + } ; + infinitive = base_1+"есці" ; + participle = table { + Masc => table { + Sg => base_1+"еў" ; + Pl => base_1+"елі" + } ; + Fem => table { + Sg => base_1+"ела" ; + Pl => base_1+"елі" + } ; + Neuter => table { + Sg => base_1+"ела" ; + Pl => base_1+"елі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV138" + } ; + +mkV139 : Str -> V ; +mkV139 base = + case base of { + base_1+"віць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"віць" ; + Pl => base_1+"вім" + } ; + P2 => table { + Sg => base_1+"віш" ; + Pl => base_1+"віце" + } ; + P3 => table { + Sg => base_1+"віць" ; + Pl => base_1+"вяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"віць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ў" ; + Pl => base_1+"ўце" + } ; + infinitive = base_1+"віць" ; + participle = table { + Masc => table { + Sg => base_1+"віў" ; + Pl => base_1+"вілі" + } ; + Fem => table { + Sg => base_1+"віла" ; + Pl => base_1+"вілі" + } ; + Neuter => table { + Sg => base_1+"віла" ; + Pl => base_1+"вілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ўлены" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ўлены" + } + } + }; + _ => error "Can't apply paradigm mkV139" + } ; + +mkV140 : Str -> V ; +mkV140 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => base_1+"цём" + } ; + P2 => table { + Sg => base_1+"цеш" ; + Pl => base_1+"цяце" + } ; + P3 => table { + Sg => base_1+"це" ; + Pl => base_1+"туць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ці" ; + Pl => base_1+"ціце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV140" + } ; + +mkV141 : Str -> V ; +mkV141 base = + case base of { + base_1+"гчы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"гчы" ; + Pl => base_1+"жом" + } ; + P2 => table { + Sg => base_1+"жэш" ; + Pl => base_1+"жаце" + } ; + P3 => table { + Sg => base_1+"жэ" ; + Pl => base_1+"гуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"жы" ; + Pl => base_1+"жыце" + } ; + infinitive = base_1+"гчы" ; + participle = table { + Masc => table { + Sg => base_1+"г" ; + Pl => base_1+"глі" + } ; + Fem => table { + Sg => base_1+"гла" ; + Pl => base_1+"глі" + } ; + Neuter => table { + Sg => base_1+"гла" ; + Pl => base_1+"глі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жаны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV141" + } ; + +mkV142 : Str -> V ; +mkV142 base = + case base of { + "це"+base_1+"ці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "це"+base_1+"ці" ; + Pl => "т"+base_1+"ом" + } ; + P2 => table { + Sg => "т"+base_1+"эш" ; + Pl => "т"+base_1+"аце" + } ; + P3 => table { + Sg => "т"+base_1+"э" ; + Pl => "т"+base_1+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "т"+base_1+"ы" ; + Pl => "т"+base_1+"ыце" + } ; + infinitive = "це"+base_1+"ці" ; + participle = table { + Masc => table { + Sg => "цё"+base_1 ; + Pl => "цё"+base_1+"лі" + } ; + Fem => table { + Sg => "цё"+base_1+"ла" ; + Pl => "цё"+base_1+"лі" + } ; + Neuter => table { + Sg => "цё"+base_1+"ла" ; + Pl => "цё"+base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "цё"+base_1+"ты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV142" + } ; + +mkV143 : Str -> V ; +mkV143 base = + case base of { + base_1+"егчы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"егчы" ; + Pl => base_1+"яжым" + } ; + P2 => table { + Sg => base_1+"яжыш" ; + Pl => base_1+"яжыце" + } ; + P3 => table { + Sg => base_1+"яжыць" ; + Pl => base_1+"ягуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"егчы" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"яжы" ; + Pl => base_1+"яжыце" + } ; + infinitive = base_1+"егчы" ; + participle = table { + Masc => table { + Sg => base_1+"ег" ; + Pl => base_1+"еглі" + } ; + Fem => table { + Sg => base_1+"егла" ; + Pl => base_1+"еглі" + } ; + Neuter => table { + Sg => base_1+"егла" ; + Pl => base_1+"еглі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV143" + } ; + +mkV144 : Str -> V ; +mkV144 base = + case base of { + base_1+"ачы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ачы" ; + Pl => base_1+"ачом" + } ; + P2 => table { + Sg => base_1+"ачэш" ; + Pl => base_1+"ачаце" + } ; + P3 => table { + Sg => base_1+"ачэ" ; + Pl => base_1+"акуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ачы" ; + Pl => base_1+"ачыце" + } ; + infinitive = base_1+"ачы" ; + participle = table { + Masc => table { + Sg => base_1+"ок" ; + Pl => base_1+"аклі" + } ; + Fem => table { + Sg => base_1+"акла" ; + Pl => base_1+"аклі" + } ; + Neuter => table { + Sg => base_1+"акло" ; + Pl => base_1+"аклі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV144" + } ; + +mkV145 : Str -> V ; +mkV145 base = + case base of { + base_1+"аць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => base_1+"ём" --guessed + } ; + P2 => table { + Sg => base_1+"еш" ; --guessed + Pl => base_1+"яце" --guessed + } ; + P3 => table { + Sg => base_1+"е" ; --guessed + Pl => base_1+"уць" --guessed + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"аць" ; + participle = table { + Masc => table { + Sg => base_1+"аў" ; + Pl => base_1+"алі" + } ; + Fem => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } ; + Neuter => table { + Sg => base_1+"ала" ; + Pl => base_1+"алі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аны" --guessed + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"аны" + } + } + }; + _ => error "Can't apply paradigm mkV145" + } ; + +mkV146 : Str -> V ; +mkV146 base = + case base of { + "лгаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "lhacʹ" ; + Pl => "лжом" + } ; + P2 => table { + Sg => "лжэш" ; + Pl => "лжаце" + } ; + P3 => table { + Sg => "лжэ" ; + Pl => "лгуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "лжы" ; + Pl => "лжыце" + } ; + infinitive = "лгаць" ; + participle = table { + Masc => table { + Sg => "лгаў" ; + Pl => "лгалі" + } ; + Fem => table { + Sg => "лгала" ; + Pl => "лгалі" + } ; + Neuter => table { + Sg => "лгала" ; + Pl => "лгалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV146" + } ; + +mkV147 : Str -> V ; +mkV147 base = + case base of { + "ржаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "ržacʹ" ; + Pl => "ржом" + } ; + P2 => table { + Sg => "ржэш" ; + Pl => "ржаце" + } ; + P3 => table { + Sg => "ржэ" ; + Pl => "ржуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "ржы" ; + Pl => "ржыце" + } ; + infinitive = "ржаць" ; + participle = table { + Masc => table { + Sg => "ржаў" ; + Pl => "ржалі" + } ; + Fem => table { + Sg => "ржала" ; + Pl => "ржалі" + } ; + Neuter => table { + Sg => "ржала" ; + Pl => "ржалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV147" + } ; + +mkV148 : Str -> V ; +mkV148 base = + case base of { + "граць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "hracʹ" ; + Pl => "граем" + } ; + P2 => table { + Sg => "граеш" ; + Pl => "граеце" + } ; + P3 => table { + Sg => "грае" ; + Pl => "граюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "грай" ; + Pl => "грайце" + } ; + infinitive = "граць" ; + participle = table { + Masc => table { + Sg => "граў" ; + Pl => "гралі" + } ; + Fem => table { + Sg => "грала" ; + Pl => "гралі" + } ; + Neuter => table { + Sg => "грала" ; + Pl => "гралі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "граны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV148" + } ; + +mkV149 : Str -> V ; +mkV149 base = + case base of { + "рваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "rvacʹ" ; + Pl => "рвём" + } ; + P2 => table { + Sg => "рвеш" ; + Pl => "рвяце" + } ; + P3 => table { + Sg => "рве" ; + Pl => "рвуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "рві" ; + Pl => "рвіце" + } ; + infinitive = "рваць" ; + participle = table { + Masc => table { + Sg => "рваў" ; + Pl => "рвалі" + } ; + Fem => table { + Sg => "рвала" ; + Pl => "рвалі" + } ; + Neuter => table { + Sg => "рвала" ; + Pl => "рвалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "рваны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV149" + } ; + +mkV150 : Str -> V ; +mkV150 base = + case base of { + "мяць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "mjacʹ" ; + Pl => "мнём" + } ; + P2 => table { + Sg => "мнеш" ; + Pl => "мняце" + } ; + P3 => table { + Sg => "мне" ; + Pl => "мнуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "мні" ; + Pl => "мніце" + } ; + infinitive = "мяць" ; + participle = table { + Masc => table { + Sg => "мяў" ; + Pl => "мялі" + } ; + Fem => table { + Sg => "мяла" ; + Pl => "мялі" + } ; + Neuter => table { + Sg => "мяла" ; + Pl => "мялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "мяты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV150" + } ; + +mkV151 : Str -> V ; +mkV151 base = + case base of { + "гнуць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "hnucʹ" ; + Pl => "гнём" + } ; + P2 => table { + Sg => "гнеш" ; + Pl => "гняце" + } ; + P3 => table { + Sg => "гне" ; + Pl => "гнуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "гні" ; + Pl => "гніце" + } ; + infinitive = "гнуць" ; + participle = table { + Masc => table { + Sg => "гнуў" ; + Pl => "гнулі" + } ; + Fem => table { + Sg => "гнула" ; + Pl => "гнулі" + } ; + Neuter => table { + Sg => "гнула" ; + Pl => "гнулі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "гнуты" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV151" + } ; + +mkV152 : Str -> V ; +mkV152 base = + case base of { + "зваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "zvacʹ" ; + Pl => "завём" + } ; + P2 => table { + Sg => "завеш" ; + Pl => "завяце" + } ; + P3 => table { + Sg => "заве" ; + Pl => "завуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "заві" ; + Pl => "завіце" + } ; + infinitive = "зваць" ; + participle = table { + Masc => table { + Sg => "зваў" ; + Pl => "звалі" + } ; + Fem => table { + Sg => "звала" ; + Pl => "звалі" + } ; + Neuter => table { + Sg => "звала" ; + Pl => "звалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "званы" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV152" + } ; + +mkV153 : Str -> V ; +mkV153 base = + case base of { + "дзець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "dzjecʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "дзець" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "дзень" ; + Pl => "дзеньце" + } ; + infinitive = "дзець" ; + participle = table { + Masc => table { + Sg => "дзеў" ; + Pl => "дзелі" + } ; + Fem => table { + Sg => "дзела" ; + Pl => "дзелі" + } ; + Neuter => table { + Sg => "дзела" ; + Pl => "дзелі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "дзеты" + } + } + }; + _ => error "Can't apply paradigm mkV153" + } ; + +mkV154 : Str -> V ; +mkV154 base = + case base of { + base_1+"ець" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ець" ; + Pl => base_1+"ім" + } ; + P2 => table { + Sg => base_1+"іш" ; + Pl => base_1+"іце" + } ; + P3 => table { + Sg => base_1+"іць" ; + Pl => base_1+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ь" ; + Pl => base_1+"ьце" + } ; + infinitive = base_1+"ець" ; + participle = table { + Masc => table { + Sg => base_1+"еў" ; + Pl => base_1+"елі" + } ; + Fem => table { + Sg => base_1+"ела" ; + Pl => base_1+"елі" + } ; + Neuter => table { + Sg => base_1+"ела" ; + Pl => base_1+"елі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV154" + } ; + +mkV155 : Str -> V ; +mkV155 base = + case base of { + base_1+"аіць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аіць" ; + Pl => base_1+"оім" + } ; + P2 => table { + Sg => base_1+"оіш" ; + Pl => base_1+"оіце" + } ; + P3 => table { + Sg => base_1+"оіць" ; + Pl => base_1+"ояць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"аі" ; + Pl => base_1+"аіце" + } ; + infinitive = base_1+"аіць" ; + participle = table { + Masc => table { + Sg => base_1+"аіў" ; + Pl => base_1+"аілі" + } ; + Fem => table { + Sg => base_1+"аіла" ; + Pl => base_1+"аілі" + } ; + Neuter => table { + Sg => base_1+"аіла" ; + Pl => base_1+"аілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"оены" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV155" + } ; + +mkV156 : Str -> V ; +mkV156 base = + case base of { + base_1+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => base_1+"ім" + } ; + P2 => table { + Sg => base_1+"іш" ; + Pl => base_1+"іце" + } ; + P3 => table { + Sg => base_1+"іць" ; + Pl => base_1+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"й" ; + Pl => base_1+"йце" + } ; + infinitive = base_1+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"іў" ; + Pl => base_1+"ілі" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } ; + Neuter => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ены" + } + } + }; + _ => error "Can't apply paradigm mkV156" + } ; + +mkV157 : Str -> V ; +mkV157 base = + case base of { + base_1+"аяцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аяцца" ; + Pl => base_1+"аімся" + } ; + P2 => table { + Sg => base_1+"аішся" ; + Pl => base_1+"аіцеся" + } ; + P3 => table { + Sg => base_1+"аіцца" ; + Pl => base_1+"аяцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ойся" ; + Pl => base_1+"ойцеся" + } ; + infinitive = base_1+"аяцца" ; + participle = table { + Masc => table { + Sg => base_1+"аяўся" ; + Pl => base_1+"аяліся" + } ; + Fem => table { + Sg => base_1+"аялася" ; + Pl => base_1+"аяліся" + } ; + Neuter => table { + Sg => base_1+"аялася" ; + Pl => base_1+"аяліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV157" + } ; + +mkV158 : Str -> V ; +mkV158 base = + case base of { + base_1+"віць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"віць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"віць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ві" ; + Pl => base_1+"віце" + } ; + infinitive = base_1+"віць" ; + participle = table { + Masc => table { + Sg => base_1+"віў" ; + Pl => base_1+"вілі" + } ; + Fem => table { + Sg => base_1+"віла" ; + Pl => base_1+"вілі" + } ; + Neuter => table { + Sg => base_1+"віла" ; + Pl => base_1+"вілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ўлёны" + } + } + }; + _ => error "Can't apply paradigm mkV158" + } ; + +mkV159 : Str -> V ; +mkV159 base = + case base of { + base_1+"сці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сці" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"дзі" ; + Pl => base_1+"дзіце" + } ; + infinitive = base_1+"сці" ; + participle = table { + Masc => table { + Sg => base_1+"ў" ; + Pl => base_1+"лі" + } ; + Fem => table { + Sg => base_1+"ла" ; + Pl => base_1+"лі" + } ; + Neuter => table { + Sg => base_1+"ло" ; + Pl => base_1+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV159" + } ; + +mkV160 : Str -> V ; +mkV160 base = + case base of { + "зняць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "znjacʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "зняць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "здымі" ; + Pl => "здыміце" + } ; + infinitive = "зняць" ; + participle = table { + Masc => table { + Sg => "зняў" ; + Pl => "знялі" + } ; + Fem => table { + Sg => "зняла" ; + Pl => "знялі" + } ; + Neuter => table { + Sg => "зняла" ; + Pl => "знялі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => "зняты" + } + } + }; + _ => error "Can't apply paradigm mkV160" + } ; + +mkV161 : Str -> V ; +mkV161 base = + case base of { + base_1+"іць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іць" ; + Pl => base_1+"ім" + } ; + P2 => table { + Sg => base_1+"іш" ; + Pl => base_1+"іце" + } ; + P3 => table { + Sg => base_1+"іць" ; + Pl => base_1+"яць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"іць" ; + participle = table { + Masc => table { + Sg => base_1+"іў" ; + Pl => base_1+"ілі" + } ; + Fem => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } ; + Neuter => table { + Sg => base_1+"іла" ; + Pl => base_1+"ілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"лёны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV161" + } ; + +mkV162 : Str -> V ; +mkV162 base = + case base of { + base_1+"аўці" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аўці" ; + Pl => base_1+"авём" + } ; + P2 => table { + Sg => base_1+"авеш" ; + Pl => base_1+"авяце" + } ; + P3 => table { + Sg => base_1+"аве" ; + Pl => base_1+"авуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"аві" ; + Pl => base_1+"авіце" + } ; + infinitive = base_1+"аўці" ; + participle = table { + Masc => table { + Sg => base_1+"оў" ; + Pl => base_1+"аўлі" + } ; + Fem => table { + Sg => base_1+"аўла" ; + Pl => base_1+"аўлі" + } ; + Neuter => table { + Sg => base_1+"аўло" ; + Pl => base_1+"аўлі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV162" + } ; + +mkV163 : Str -> V ; +mkV163 base = + case base of { + base_1+"іцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іцца" ; + Pl => base_1+"імся" + } ; + P2 => table { + Sg => base_1+"ішся" ; + Pl => base_1+"іцеся" + } ; + P3 => table { + Sg => base_1+"іцца" ; + Pl => base_1+"яцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"іся" ; + Pl => base_1+"іцеся" + } ; + infinitive = base_1+"іцца" ; + participle = table { + Masc => table { + Sg => base_1+"іўся" ; + Pl => base_1+"іліся" + } ; + Fem => table { + Sg => base_1+"ілася" ; + Pl => base_1+"іліся" + } ; + Neuter => table { + Sg => base_1+"ілася" ; + Pl => base_1+"іліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV163" + } ; + +mkV164 : Str -> V ; +mkV164 base = + case base of { + "сраць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "sracʹ" ; + Pl => "серам" + } ; + P2 => table { + Sg => "сераш" ; + Pl => "сераце" + } ; + P3 => table { + Sg => "сера" ; + Pl => "серуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "сяры" ; + Pl => "сярыце" + } ; + infinitive = "сраць" ; + participle = table { + Masc => table { + Sg => "сраў" ; + Pl => "сралі" + } ; + Fem => table { + Sg => "срала" ; + Pl => "сралі" + } ; + Neuter => table { + Sg => "срала" ; + Pl => "сралі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "сраны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV164" + } ; + +mkV165 : Str -> V ; +mkV165 base = + case base of { + "сцаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "scacʹ" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => nonExist ; + Pl => nonExist + } ; + infinitive = "сцаць" ; + participle = table { + Masc => table { + Sg => nonExist ; + Pl => nonExist + } ; + Fem => table { + Sg => nonExist ; + Pl => nonExist + } ; + Neuter => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV165" + } ; + +mkV166 : Str -> V ; +mkV166 base = + case base of { + base_1+"а"+base_2@?+"чы" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"чы" ; + Pl => base_1+"а"+base_2+"чом" + } ; + P2 => table { + Sg => base_1+"а"+base_2+"чэш" ; + Pl => base_1+"а"+base_2+"чаце" + } ; + P3 => table { + Sg => base_1+"а"+base_2+"чэ" ; + Pl => base_1+"а"+base_2+"куць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"чы" ; + Pl => base_1+"а"+base_2+"чыце" + } ; + infinitive = base_1+"а"+base_2+"чы" ; + participle = table { + Masc => table { + Sg => base_1+"о"+base_2+"к" ; + Pl => base_1+"а"+base_2+"клі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"кла" ; + Pl => base_1+"а"+base_2+"клі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"кло" ; + Pl => base_1+"а"+base_2+"клі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"о"+base_2+"чаны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV166" + } ; + +mkV167 : Str -> V ; +mkV167 base = + case base of { + base_1+"ахаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ахаць" ; + Pl => base_1+"эшам" + } ; + P2 => table { + Sg => base_1+"эшаш" ; + Pl => base_1+"эшаце" + } ; + P3 => table { + Sg => base_1+"эша" ; + Pl => base_1+"эшуць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ашы" ; + Pl => base_1+"ашыце" + } ; + infinitive = base_1+"ахаць" ; + participle = table { + Masc => table { + Sg => base_1+"ахаў" ; + Pl => base_1+"ахалі" + } ; + Fem => table { + Sg => base_1+"ахала" ; + Pl => base_1+"ахалі" + } ; + Neuter => table { + Sg => base_1+"ахала" ; + Pl => base_1+"ахалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV167" + } ; + +mkV168 : Str -> V ; +mkV168 base = + case base of { + base_1+"сціся" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сціся" ; + Pl => base_1+"дзёмся" + } ; + P2 => table { + Sg => base_1+"дзешся" ; + Pl => base_1+"дзяцеся" + } ; + P3 => table { + Sg => base_1+"дзецца" ; + Pl => base_1+"дуцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"дзіся" ; + Pl => base_1+"дзіцеся" + } ; + infinitive = base_1+"сціся" ; + participle = table { + Masc => table { + Sg => base_1+"ўся" ; + Pl => base_1+"ліся" + } ; + Fem => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } ; + Neuter => table { + Sg => base_1+"лася" ; + Pl => base_1+"ліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV168" + } ; + +mkV169 : Str -> V ; +mkV169 base = + case base of { + base_1+"аваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аваць" ; + Pl => base_1+"уём" + } ; + P2 => table { + Sg => base_1+"уеш" ; + Pl => base_1+"уяце" + } ; + P3 => table { + Sg => base_1+"уе" ; + Pl => base_1+"уюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"уй" ; + Pl => base_1+"уйце" + } ; + infinitive = base_1+"аваць" ; + participle = table { + Masc => table { + Sg => base_1+"аваў" ; + Pl => base_1+"авалі" + } ; + Fem => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } ; + Neuter => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV169" + } ; + +mkV170 : Str -> V ; +mkV170 base = + case base of { + base_1+"явацца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"явацца" ; + Pl => base_1+"юемся" + } ; + P2 => table { + Sg => base_1+"юешся" ; + Pl => base_1+"юецеся" + } ; + P3 => table { + Sg => base_1+"юецца" ; + Pl => base_1+"ююцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"юйся" ; + Pl => base_1+"юйцеся" + } ; + infinitive = base_1+"явацца" ; + participle = table { + Masc => table { + Sg => base_1+"яваўся" ; + Pl => base_1+"яваліся" + } ; + Fem => table { + Sg => base_1+"явалася" ; + Pl => base_1+"яваліся" + } ; + Neuter => table { + Sg => base_1+"явалася" ; + Pl => base_1+"яваліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV170" + } ; + +mkV171 : Str -> V ; +mkV171 base = + case base of { + base_1+"ыцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыцца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"ыцца" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"удзься" ; + Pl => base_1+"удзьцеся" + } ; + infinitive = base_1+"ыцца" ; + participle = table { + Masc => table { + Sg => base_1+"ыўся" ; + Pl => base_1+"ыліся" + } ; + Fem => table { + Sg => base_1+"ылася" ; + Pl => base_1+"ыліся" + } ; + Neuter => table { + Sg => base_1+"ылося" ; + Pl => base_1+"ыліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV171" + } ; + +mkV172 : Str -> V ; +mkV172 base = + case base of { + "дбаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "dbacʹ" ; + Pl => "дбаем" + } ; + P2 => table { + Sg => "дбаеш" ; + Pl => "дбаеце" + } ; + P3 => table { + Sg => "дбае" ; + Pl => "дбаюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "дбай" ; + Pl => "дбайце" + } ; + infinitive = "дбаць" ; + participle = table { + Masc => table { + Sg => "дбаў" ; + Pl => "дбалі" + } ; + Fem => table { + Sg => "дбала" ; + Pl => "дбалі" + } ; + Neuter => table { + Sg => "дбала" ; + Pl => "дбалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV172" + } ; + +mkV173 : Str -> V ; +mkV173 base = + case base of { + base_1+"іцца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"іцца" ; + Pl => base_1+"імся" + } ; + P2 => table { + Sg => base_1+"ішся" ; + Pl => base_1+"іцеся" + } ; + P3 => table { + Sg => base_1+"іцца" ; + Pl => base_1+"яцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"ься" ; + Pl => base_1+"ьцеся" + } ; + infinitive = base_1+"іцца" ; + participle = table { + Masc => table { + Sg => base_1+"іўся" ; + Pl => base_1+"іліся" + } ; + Fem => table { + Sg => base_1+"ілася" ; + Pl => base_1+"іліся" + } ; + Neuter => table { + Sg => base_1+"ілася" ; + Pl => base_1+"іліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV173" + } ; + +mkV174 : Str -> V ; +mkV174 base = + case base of { + base_1+"аваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аваць" ; + Pl => "будзем "+base_1+"аваць" + } ; + P2 => table { + Sg => "будзеш "+base_1+"аваць" ; + Pl => "будзеце "+base_1+"аваць" + } ; + P3 => table { + Sg => "будзе "+base_1+"аваць" ; + Pl => "будуць "+base_1+"аваць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"уй" ; + Pl => base_1+"уйце" + } ; + infinitive = base_1+"аваць" ; + participle = table { + Masc => table { + Sg => base_1+"аваў" ; + Pl => base_1+"авалі" + } ; + Fem => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } ; + Neuter => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"аваны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV174" + } ; + +mkV175 : Str -> V ; +mkV175 base = + case base of { + base_1+base_2@?+"ць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+base_2+"ць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"це" + } ; + infinitive = base_1+base_2+"ць" ; + participle = table { + Masc => table { + Sg => base_1+base_2+"ў" ; + Pl => base_1+base_2+"лі" + } ; + Fem => table { + Sg => base_1+base_2+"ла" ; + Pl => base_1+base_2+"лі" + } ; + Neuter => table { + Sg => base_1+base_2+"ла" ; + Pl => base_1+base_2+"лі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"он"+base_2 + } + } + }; + _ => error "Can't apply paradigm mkV175" + } ; + +mkV176 : Str -> V ; +mkV176 base = + case base of { + base_1+"авацца" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"авацца" ; + Pl => base_1+"уемся" + } ; + P2 => table { + Sg => base_1+"уешся" ; + Pl => base_1+"уецеся" + } ; + P3 => table { + Sg => base_1+"уецца" ; + Pl => base_1+"уюцца" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"уйся" ; + Pl => base_1+"уйцеся" + } ; + infinitive = base_1+"авацца" ; + participle = table { + Masc => table { + Sg => base_1+"аваўся" ; + Pl => base_1+"аваліся" + } ; + Fem => table { + Sg => base_1+"авалася" ; + Pl => base_1+"аваліся" + } ; + Neuter => table { + Sg => base_1+"авалася" ; + Pl => base_1+"аваліся" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV176" + } ; + +mkV177 : Str -> V ; +mkV177 base = + case base of { + base_1+"зіць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зіць" ; + Pl => base_1+"зім" + } ; + P2 => table { + Sg => base_1+"зіш" ; + Pl => base_1+"зіце" + } ; + P3 => table { + Sg => base_1+"зіць" ; + Pl => base_1+"зяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"зі" ; + Pl => base_1+"зіце" + } ; + infinitive = base_1+"зіць" ; + participle = table { + Masc => table { + Sg => base_1+"зіў" ; + Pl => base_1+"зілі" + } ; + Fem => table { + Sg => base_1+"зіла" ; + Pl => base_1+"зілі" + } ; + Neuter => table { + Sg => base_1+"зіла" ; + Pl => base_1+"зілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жаны" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV177" + } ; + +mkV178 : Str -> V ; +mkV178 base = + case base of { + "пхаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "pxacʹ" ; + Pl => "пхаем" + } ; + P2 => table { + Sg => "пхаеш" ; + Pl => "пхаеце" + } ; + P3 => table { + Sg => "пхае" ; + Pl => "пхаюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "пхай" ; + Pl => "пхайце" + } ; + infinitive = "пхаць" ; + participle = table { + Masc => table { + Sg => "пхаў" ; + Pl => "пхалі" + } ; + Fem => table { + Sg => "пхала" ; + Pl => "пхалі" + } ; + Neuter => table { + Sg => "пхала" ; + Pl => "пхалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV178" + } ; + +mkV179 : Str -> V ; +mkV179 base = + case base of { + base_1+"зіць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зіць" ; + Pl => base_1+"зім" + } ; + P2 => table { + Sg => base_1+"зіш" ; + Pl => base_1+"зіце" + } ; + P3 => table { + Sg => base_1+"зіць" ; + Pl => base_1+"зяць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"зіць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"зь" ; + Pl => base_1+"зьце" + } ; + infinitive = base_1+"зіць" ; + participle = table { + Masc => table { + Sg => base_1+"зіў" ; + Pl => base_1+"зілі" + } ; + Fem => table { + Sg => base_1+"зіла" ; + Pl => base_1+"зілі" + } ; + Neuter => table { + Sg => base_1+"зіла" ; + Pl => base_1+"зілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"жаны" + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"жаны" + } + } + }; + _ => error "Can't apply paradigm mkV179" + } ; + +mkV180 : Str -> V ; +mkV180 base = + case base of { + base_1+"а"+base_2@?+"уць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"а"+base_2+"уць" ; + Pl => base_1+"о"+base_2+"ем" + } ; + P2 => table { + Sg => base_1+"о"+base_2+"еш" ; + Pl => base_1+"о"+base_2+"еце" + } ; + P3 => table { + Sg => base_1+"о"+base_2+"е" ; + Pl => base_1+"о"+base_2+"уць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"а"+base_2+"і" ; + Pl => base_1+"а"+base_2+"іце" + } ; + infinitive = base_1+"а"+base_2+"уць" ; + participle = table { + Masc => table { + Sg => base_1+"а"+base_2+"уў" ; + Pl => base_1+"а"+base_2+"улі" + } ; + Fem => table { + Sg => base_1+"а"+base_2+"ула" ; + Pl => base_1+"а"+base_2+"улі" + } ; + Neuter => table { + Sg => base_1+"а"+base_2+"ула" ; + Pl => base_1+"а"+base_2+"улі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV180" + } ; + +mkV181 : Str -> V ; +mkV181 base = + case base of { + base_1+"уць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"уць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"і" ; + Pl => base_1+"іце" + } ; + infinitive = base_1+"уць" ; + participle = table { + Masc => table { + Sg => base_1+"уў" ; + Pl => base_1+"улі" + } ; + Fem => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } ; + Neuter => table { + Sg => base_1+"ула" ; + Pl => base_1+"улі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"ены" + } + } + }; + _ => error "Can't apply paradigm mkV181" + } ; + +mkV182 : Str -> V ; +mkV182 base = + case base of { + "хлёбаць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "xljóbacʹ" ; + Pl => "хлёбаем" + } ; + P2 => table { + Sg => "хлёбаеш" ; + Pl => "хлёбаеце" + } ; + P3 => table { + Sg => "хлёбае" ; + Pl => "хлёбаюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "хлёбай" ; + Pl => "хлёбайце" + } ; + infinitive = "хлёбаць" ; + participle = table { + Masc => table { + Sg => "хлёбаў" ; + Pl => "хлёбалі" + } ; + Fem => table { + Sg => "хлёбала" ; + Pl => "хлёбалі" + } ; + Neuter => table { + Sg => "хлёбала" ; + Pl => "хлёбалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV182" + } ; + +mkV183 : Str -> V ; +mkV183 base = + case base of { + base_1+"аваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"аваць" ; + Pl => "будзем "+base_1+"аваць" + } ; + P2 => table { + Sg => "будзеш "+base_1+"аваць" ; + Pl => "будзеце "+base_1+"аваць" + } ; + P3 => table { + Sg => "будзе "+base_1+"аваць" ; + Pl => "будуць "+base_1+"аваць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"уй" ; + Pl => base_1+"уйце" + } ; + infinitive = base_1+"аваць" ; + participle = table { + Masc => table { + Sg => base_1+"аваў" ; + Pl => base_1+"авалі" + } ; + Fem => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } ; + Neuter => table { + Sg => base_1+"авала" ; + Pl => base_1+"авалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => base_1+"ованы" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV183" + } ; + +mkV184 : Str -> V ; +mkV184 base = + case base of { + "і"+base_1+"аваць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "і"+base_1+"аваць" ; + Pl => "будзем і"+base_1+"аваць" + } ; + P2 => table { + Sg => "будзеш і"+base_1+"аваць" ; + Pl => "будзеце й"+base_1+"аваць" + } ; + P3 => table { + Sg => "будзе й"+base_1+"аваць" ; + Pl => "будуць і"+base_1+"аваць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "і"+base_1+"уй" ; + Pl => "і"+base_1+"уйце" + } ; + infinitive = "і"+base_1+"аваць" ; + participle = table { + Masc => table { + Sg => "і"+base_1+"аваў" ; + Pl => "і"+base_1+"авалі" + } ; + Fem => table { + Sg => "і"+base_1+"авала" ; + Pl => "і"+base_1+"авалі" + } ; + Neuter => table { + Sg => "і"+base_1+"авала" ; + Pl => "і"+base_1+"авалі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => "і"+base_1+"ованы" + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV184" + } ; + +mkV185 : Str -> V ; +mkV185 base = + case base of { + "грэць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => "hrecʹ" ; + Pl => "грэем" + } ; + P2 => table { + Sg => "грэеш" ; + Pl => "грэеце" + } ; + P3 => table { + Sg => "грэе" ; + Pl => "грэюць" + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => "грэй" ; + Pl => "грэйце" + } ; + infinitive = "грэць" ; + participle = table { + Masc => table { + Sg => "грэў" ; + Pl => "грэлі" + } ; + Fem => table { + Sg => "грэла" ; + Pl => "грэлі" + } ; + Neuter => table { + Sg => "грэла" ; + Pl => "грэлі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => nonExist + } + } + }; + _ => error "Can't apply paradigm mkV185" + } ; + +mkV186 : Str -> V ; +mkV186 base = + case base of { + base_1+"сіць" => lin V + { active = table { + Imperf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сіць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } ; + Perf => { Past = nonExist ; + Pres = table { + P1 => table { + Sg => base_1+"сіць" ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } + } + } ; + imperative = table { + Sg => base_1+"сь" ; + Pl => base_1+"сьце" + } ; + infinitive = base_1+"сіць" ; + participle = table { + Masc => table { + Sg => base_1+"сіў" ; + Pl => base_1+"сілі" + } ; + Fem => table { + Sg => base_1+"сіла" ; + Pl => base_1+"сілі" + } ; + Neuter => table { + Sg => base_1+"сіла" ; + Pl => base_1+"сілі" + } + } ; + passive = table { + Imperf => table { + Pres => nonExist ; + Past => nonExist + } ; + Perf => table { + Pres => nonExist ; + Past => base_1+"шаны" + } + } + }; + _ => error "Can't apply paradigm mkV186" + } ; + +mkA001 : Str -> A ; +mkA001 base = + case base of { + base_1+"ы" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ы" ; + GSg Fem => base_1+"ая" ; + GSg Neuter => base_1+"ае" ; + GPl => base_1+"ыя" + } ; + Acc => table { + GSg Masc => base_1+"ага" ; + GSg Fem => base_1+"ую" ; + GSg Neuter => base_1+"ае" ; + GPl => base_1+"ых" + } ; + Dat => table { + GSg Masc => base_1+"аму" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ым" + } ; + Gen => table { + GSg Masc => base_1+"ага" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ых" + } ; + Loc => table { + GSg Masc => base_1+"ым" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ых" + } ; + Instr => table { + GSg Masc => base_1+"ым" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ымі" + } + } + }; + _ => error "Can't apply paradigm mkA001" + } ; + +mkA002 : Str -> A ; +mkA002 base = + case base of { + base_1+"ы" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ы" ; + GSg Fem => base_1+"ая" ; + GSg Neuter => base_1+"ое" ; + GPl => base_1+"ыя" + } ; + Acc => table { + GSg Masc => base_1+"ога" ; + GSg Fem => base_1+"ую" ; + GSg Neuter => base_1+"ое" ; + GPl => base_1+"ых" + } ; + Dat => table { + GSg Masc => base_1+"ому" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"ым" + } ; + Gen => table { + GSg Masc => base_1+"ога" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"ых" + } ; + Loc => table { + GSg Masc => base_1+"ым" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"ых" + } ; + Instr => table { + GSg Masc => base_1+"ым" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"ымі" + } + } + }; + _ => error "Can't apply paradigm mkA002" + } ; + +mkA003 : Str -> A ; +mkA003 base = + case base of { + base_1+"і" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"і" ; + GSg Fem => base_1+"ая" ; + GSg Neuter => base_1+"ае" ; + GPl => base_1+"ія" + } ; + Acc => table { + GSg Masc => base_1+"ага" ; + GSg Fem => base_1+"ую" ; + GSg Neuter => base_1+"ае" ; + GPl => base_1+"іх" + } ; + Dat => table { + GSg Masc => base_1+"аму" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ім" + } ; + Gen => table { + GSg Masc => base_1+"ага" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Loc => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Instr => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"імі" + } + } + }; + _ => error "Can't apply paradigm mkA003" + } ; + +mkA004 : Str -> A ; +mkA004 base = + case base of { + base_1 => lin A + { s = table { + Nom => table { + GSg Masc => base_1 ; + GSg Fem => base_1+"яя" ; + GSg Neuter => base_1+"яе" ; + GPl => base_1+"ія" + } ; + Acc => table { + GSg Masc => base_1+"яга" ; + GSg Fem => base_1+"юю" ; + GSg Neuter => base_1+"яе" ; + GPl => base_1+"іх" + } ; + Dat => table { + GSg Masc => base_1+"яму" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"ім" + } ; + Gen => table { + GSg Masc => base_1+"яга" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Loc => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Instr => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"імі" + } + } + }; + _ => error "Can't apply paradigm mkA004" + } ; + +mkA005 : Str -> A ; +mkA005 base = + case base of { + base_1+"і" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"і" ; + GSg Fem => base_1+"яя" ; + GSg Neuter => base_1+"яе" ; + GPl => base_1+"ія" + } ; + Acc => table { + GSg Masc => base_1+"яга" ; + GSg Fem => base_1+"юю" ; + GSg Neuter => base_1+"яе" ; + GPl => base_1+"іх" + } ; + Dat => table { + GSg Masc => base_1+"яму" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"ім" + } ; + Gen => table { + GSg Masc => base_1+"яга" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Loc => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Instr => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"яй" ; + GSg Neuter => nonExist ; + GPl => base_1+"імі" + } + } + }; + _ => error "Can't apply paradigm mkA005" + } ; + +mkA006 : Str -> A ; +mkA006 base = + case base of { + base_1+"і" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"і" ; + GSg Fem => base_1+"ая" ; + GSg Neuter => base_1+"ое" ; + GPl => base_1+"ія" + } ; + Acc => table { + GSg Masc => base_1+"ога" ; + GSg Fem => base_1+"ую" ; + GSg Neuter => base_1+"ое" ; + GPl => base_1+"іх" + } ; + Dat => table { + GSg Masc => base_1+"ому" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"ім" + } ; + Gen => table { + GSg Masc => base_1+"ога" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Loc => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"іх" + } ; + Instr => table { + GSg Masc => base_1+"ім" ; + GSg Fem => base_1+"ой" ; + GSg Neuter => nonExist ; + GPl => base_1+"імі" + } + } + }; + _ => error "Can't apply paradigm mkA006" + } ; + +mkA007 : Str -> A ; +mkA007 base = + case base of { + base_1+"ны" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ны" ; + GSg Fem => base_1+"ая" ; + GSg Neuter => base_1+"ае" ; + GPl => base_1+"ыя" + } ; + Acc => table { + GSg Masc => base_1+"ага" ; + GSg Fem => base_1+"ую" ; + GSg Neuter => base_1+"ае" ; + GPl => base_1+"ых" + } ; + Dat => table { + GSg Masc => base_1+"аму" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ым" + } ; + Gen => table { + GSg Masc => base_1+"ага" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ых" + } ; + Loc => table { + GSg Masc => base_1+"ым" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ых" + } ; + Instr => table { + GSg Masc => base_1+"ым" ; + GSg Fem => base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"ымі" + } + } + }; + _ => error "Can't apply paradigm mkA007" + } ; + +mkA008 : Str -> A ; +mkA008 base = + case base of { + "м"+base_1+"ўк"+base_2@(?+?+?)+"ы" => lin A + { s = table { + Nom => table { + GSg Masc => "м"+base_1+"ўк"+base_2+"ы" ; + GSg Fem => "гав"+base_1+"р"+base_2+"ая" ; + GSg Neuter => "гав"+base_1+"р"+base_2+"ае" ; + GPl => "гав"+base_1+"р"+base_2+"ыя" + } ; + Acc => table { + GSg Masc => "гав"+base_1+"р"+base_2+"ага" ; + GSg Fem => "гав"+base_1+"р"+base_2+"ую" ; + GSg Neuter => "гав"+base_1+"р"+base_2+"ае" ; + GPl => "гав"+base_1+"р"+base_2+"ых" + } ; + Dat => table { + GSg Masc => "гав"+base_1+"р"+base_2+"аму" ; + GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => "гав"+base_1+"р"+base_2+"ым" + } ; + Gen => table { + GSg Masc => "гав"+base_1+"р"+base_2+"ага" ; + GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => "гав"+base_1+"р"+base_2+"ых" + } ; + Loc => table { + GSg Masc => "гав"+base_1+"р"+base_2+"ым" ; + GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => "гав"+base_1+"р"+base_2+"ых" + } ; + Instr => table { + GSg Masc => "гав"+base_1+"р"+base_2+"ым" ; + GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => "гав"+base_1+"р"+base_2+"ымі" + } + } + }; + _ => error "Can't apply paradigm mkA008" + } ; + +mkA009 : Str -> A ; +mkA009 base = + case base of { + "невым"+base_1+"ы" => lin A + { s = table { + Nom => table { + GSg Masc => "невым"+base_1+"ы" ; + GSg Fem => "ах"+base_1+"ая" ; + GSg Neuter => "ах"+base_1+"ае" ; + GPl => "ах"+base_1+"ыя" + } ; + Acc => table { + GSg Masc => "ах"+base_1+"ага" ; + GSg Fem => "ах"+base_1+"ую" ; + GSg Neuter => "ах"+base_1+"ае" ; + GPl => "ах"+base_1+"ых" + } ; + Dat => table { + GSg Masc => "ах"+base_1+"аму" ; + GSg Fem => "ах"+base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => "ах"+base_1+"ым" + } ; + Gen => table { + GSg Masc => "ах"+base_1+"ага" ; + GSg Fem => "ах"+base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => "ах"+base_1+"ых" + } ; + Loc => table { + GSg Masc => "ах"+base_1+"ым" ; + GSg Fem => "ах"+base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => "ах"+base_1+"ых" + } ; + Instr => table { + GSg Masc => "ах"+base_1+"ым" ; + GSg Fem => "ах"+base_1+"ай" ; + GSg Neuter => nonExist ; + GPl => "ах"+base_1+"ымі" + } + } + }; + _ => error "Can't apply paradigm mkA009" + } ; + +mkA010 : Str -> A ; +mkA010 base = + case base of { + base_1+"е"+base_2@(?+?+?)+"ы" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"е"+base_2+"ы" ; + GSg Fem => base_1+"я"+base_2+"ая" ; + GSg Neuter => base_1+"я"+base_2+"ае" ; + GPl => base_1+"я"+base_2+"ыя" + } ; + Acc => table { + GSg Masc => base_1+"я"+base_2+"ага" ; + GSg Fem => base_1+"я"+base_2+"ую" ; + GSg Neuter => base_1+"я"+base_2+"ае" ; + GPl => base_1+"я"+base_2+"ых" + } ; + Dat => table { + GSg Masc => base_1+"я"+base_2+"аму" ; + GSg Fem => base_1+"я"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"я"+base_2+"ым" + } ; + Gen => table { + GSg Masc => base_1+"я"+base_2+"ага" ; + GSg Fem => base_1+"я"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"я"+base_2+"ых" + } ; + Loc => table { + GSg Masc => base_1+"я"+base_2+"ым" ; + GSg Fem => base_1+"я"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"я"+base_2+"ых" + } ; + Instr => table { + GSg Masc => base_1+"я"+base_2+"ым" ; + GSg Fem => base_1+"я"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"я"+base_2+"ымі" + } + } + }; + _ => error "Can't apply paradigm mkA010" + } ; + +mkA011 : Str -> A ; +mkA011 base = + case base of { + base_1+base_2@(?+?+?+?+?+?)+"і" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+base_2+"і" ; + GSg Fem => base_1+"̀"+base_2+"ая" ; + GSg Neuter => base_1+"̀"+base_2+"ае" ; + GPl => base_1+"̀"+base_2+"ія" + } ; + Acc => table { + GSg Masc => base_1+"̀"+base_2+"ага" ; + GSg Fem => base_1+"̀"+base_2+"ую" ; + GSg Neuter => base_1+"̀"+base_2+"ае" ; + GPl => base_1+"̀"+base_2+"іх" + } ; + Dat => table { + GSg Masc => base_1+"̀"+base_2+"аму" ; + GSg Fem => base_1+"̀"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"̀"+base_2+"ім" + } ; + Gen => table { + GSg Masc => base_1+"̀"+base_2+"ага" ; + GSg Fem => base_1+"̀"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"̀"+base_2+"іх" + } ; + Loc => table { + GSg Masc => base_1+"̀"+base_2+"ім" ; + GSg Fem => base_1+"̀"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"̀"+base_2+"іх" + } ; + Instr => table { + GSg Masc => base_1+"̀"+base_2+"ім" ; + GSg Fem => base_1+"̀"+base_2+"ай" ; + GSg Neuter => nonExist ; + GPl => base_1+"̀"+base_2+"імі" + } + } + }; + _ => error "Can't apply paradigm mkA011" + } ; + +mkA012 : Str -> A ; +mkA012 base = + case base of { + base_1+"ь" => lin A + { s = table { + Nom => table { + GSg Masc => base_1+"ь" ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => base_1+"і" + } ; + Acc => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => base_1+"і" + } ; + Dat => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => base_1+"ям" + } ; + Gen => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => base_1+"ей" + } ; + Loc => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => base_1+"ях" + } ; + Instr => table { + GSg Masc => nonExist ; + GSg Fem => nonExist ; + GSg Neuter => nonExist ; + GPl => base_1+"ямі" + } + } + }; + _ => error "Can't apply paradigm mkA012" + } ; +} diff --git a/src/belarusian/NounBel.gf b/src/belarusian/NounBel.gf new file mode 100644 index 00000000..c70c89f8 --- /dev/null +++ b/src/belarusian/NounBel.gf @@ -0,0 +1,4 @@ +concrete NounBel of Noun = CatBel ** { +--lin +-- UseN n = n ; +} diff --git a/src/belarusian/ParadigmsBel.gf b/src/belarusian/ParadigmsBel.gf new file mode 100644 index 00000000..284eb22e --- /dev/null +++ b/src/belarusian/ParadigmsBel.gf @@ -0,0 +1,839 @@ +resource ParadigmsBel = MorphoBel ** open Predef, Prelude, CatBel, ResBel in { +oper + regN : Str -> N -- s;Nom;Sg + = \form -> case form of { + _ + "цат" => mkN056 form; + _ + "фат" => mkN099 form; + _ + "бат" => mkN131 form; + _ + "ват" => mkN131 form; + _ + "кат" => mkN131 form; + _ + "энт" => mkN131 form; + _ + "онт" => mkN056 form; + _ + "ікт" => mkN056 form; + _ + "укт" => mkN056 form; + _ + "сіт" => mkN131 form; + _ + "біт" => mkN131 form; + _ + "ірт" => mkN205 form; + _ + "ост" => mkN056 form; + _ + "уст" => mkN125 form; + _ + "эфт" => mkN056 form; + _ + "нёт" => mkN056 form; + _ + "ыёт" => mkN131 form; + _ + "аэт" => mkN131 form; + _ + "цэт" => mkN131 form; + _ + "чыт" => mkN125 form; + _ + "гут" => mkN125 form; + _ + "'ят" => mkN131 form; + _ + "лец" => mkN002 form; + _ + "аец" => mkN235 form; + _ + "еец" => mkN235 form; + _ + "ыец" => mkN235 form; + _ + "іец" => mkN235 form; + _ + "зец" => mkN265 form; + _ + "вец" => mkN300 form; + _ + "рац" => mkN286 form; + _ + "рка" => mkN003 form; + _ + "іка" => mkN003 form; + _ + "ека" => mkN003 form; + _ + "ыка" => mkN003 form; + _ + "ўка" => mkN217 form; + _ + "ука" => mkN026 form; + _ + "эка" => mkN026 form; + _ + "ока" => mkN026 form; + _ + "ака" => mkN026 form; + _ + "яка" => mkN026 form; + _ + "йка" => mkN124 form; + _ + "ька" => mkN196 form; + _ + "ква" => mkN039 form; + _ + "ова" => mkN150 form; + _ + "зва" => mkN039 form; + _ + "хва" => mkN039 form; + _ + "рва" => mkN039 form; + _ + "ева" => mkN138 form; + _ + "ява" => mkN150 form; + _ + "эва" => mkN166 form; + _ + "уза" => mkN012 form; + _ + "аза" => mkN012 form; + _ + "нза" => mkN012 form; + _ + "еза" => mkN024 form; + _ + "ўза" => mkN039 form; + _ + "яза" => mkN187 form; + _ + "іма" => mkN012 form; + _ + "ома" => mkN012 form; + _ + "ьма" => mkN091 form; + _ + "чма" => mkN215 form; + _ + "ьба" => mkN012 form; + _ + "аба" => mkN012 form; + _ + "ыба" => mkN012 form; + _ + "ёба" => mkN024 form; + _ + "жба" => mkN039 form; + _ + "чба" => mkN039 form; + _ + "ўба" => mkN091 form; + _ + "ўна" => mkN012 form; + _ + "ына" => mkN012 form; + _ + "ана" => mkN012 form; + _ + "рна" => mkN012 form; + _ + "дна" => mkN024 form; + _ + "нна" => mkN039 form; + _ + "яна" => mkN061 form; + _ + "уна" => mkN091 form; + _ + "спа" => mkN012 form; + _ + "лпа" => mkN083 form; + _ + "гла" => mkN012 form; + _ + "ула" => mkN188 form; + _ + "ёла" => mkN012 form; + _ + "іла" => mkN188 form; + _ + "ела" => mkN188 form; + _ + "яла" => mkN091 form; + _ + "сла" => mkN260 form; + _ + "ыса" => mkN012 form; + _ + "оса" => mkN024 form; + _ + "йга" => mkN020 form; + _ + "рга" => mkN061 form; + _ + "ьга" => mkN088 form; + _ + "ята" => mkN245 form; + _ + "ыта" => mkN245 form; + _ + "дра" => mkN102 form; + _ + "тра" => mkN080 form; + _ + "бра" => mkN080 form; + _ + "ўра" => mkN099 form; + _ + "кра" => mkN102 form; + _ + "ыца" => mkN137 form; + _ + "ўца" => mkN137 form; + _ + "дца" => mkN078 form; + _ + "йца" => mkN078 form; + _ + "чца" => mkN078 form; + _ + "нца" => mkN080 form; + _ + "рца" => mkN080 form; + _ + "сца" => mkN080 form; + _ + "ржа" => mkN064 form; + _ + "жжа" => mkN080 form; + _ + "джа" => mkN102 form; + _ + "ыча" => mkN036 form; + _ + "эча" => mkN036 form; + _ + "яча" => mkN064 form; + _ + "чча" => mkN080 form; + _ + "нча" => mkN102 form; + _ + "оха" => mkN309 form; + _ + "ьха" => mkN309 form; + _ + "зык" => mkN005 form; + _ + "мык" => mkN005 form; + _ + "тык" => mkN043 form; + _ + "аяк" => mkN005 form; + _ + "пяк" => mkN005 form; + _ + "ляк" => mkN063 form; + _ + "мак" => mkN006 form; + _ + "пак" => mkN006 form; + _ + "шак" => mkN006 form; + _ + "сак" => mkN006 form; + _ + "вак" => mkN063 form; + _ + "зак" => mkN251 form; + _ + "вік" => mkN005 form; + _ + "лік" => mkN043 form; + _ + "вук" => mkN006 form; + _ + "цук" => mkN006 form; + _ + "рук" => mkN043 form; + _ + "шук" => mkN043 form; + _ + "нук" => mkN063 form; + _ + "чук" => mkN328 form; + _ + "шок" => mkN015 form; + _ + "мок" => mkN063 form; + _ + "чок" => mkN015 form; + _ + "нок" => mkN015 form; + _ + "рэк" => mkN063 form; + _ + "цуг" => mkN005 form; + _ + "раг" => mkN063 form; + _ + "онг" => mkN008 form; + _ + "рог" => mkN337 form; + _ + "лог" => mkN200 form; + _ + "жух" => mkN005 form; + _ + "тух" => mkN063 form; + _ + "нах" => mkN063 form; + _ + "віч" => mkN062 form; + _ + "нач" => mkN184 form; + _ + "ршч" => mkN204 form; + _ + "пыр" => mkN334 form; + _ + "лор" => mkN007 form; + _ + "рор" => mkN042 form; + _ + "пор" => mkN059 form; + _ + "хор" => mkN155 form; + _ + "фар" => mkN007 form; + _ + "нар" => mkN007 form; + _ + "хар" => mkN019 form; + _ + "гар" => mkN019 form; + _ + "вар" => mkN042 form; + _ + "жар" => mkN042 form; + _ + "сір" => mkN062 form; + _ + "пір" => mkN062 form; + _ + "хір" => mkN365 form; + _ + "гір" => mkN365 form; + _ + "кер" => mkN007 form; + _ + "мер" => mkN042 form; + _ + "лер" => mkN042 form; + _ + "нер" => mkN062 form; + _ + "вер" => mkN174 form; + _ + "ґер" => mkN127 form; + _ + "цэр" => mkN062 form; + _ + "шэр" => mkN062 form; + _ + "дэр" => mkN062 form; + _ + "гур" => mkN062 form; + _ + "чур" => mkN062 form; + _ + "аўр" => mkN334 form; + _ + "ыгр" => mkN334 form; + _ + "даж" => mkN034 form; + _ + "гаж" => mkN071 form; + _ + "ыум" => mkN031 form; + _ + "нос" => mkN013 form; + _ + "пус" => mkN009 form; + _ + "лас" => mkN009 form; + _ + "рас" => mkN045 form; + _ + "лёс" => mkN011 form; + _ + "цыс" => mkN013 form; + _ + "нес" => mkN045 form; + _ + "зіс" => mkN045 form; + _ + "вол" => mkN035 form; + _ + "рол" => mkN159 form; + _ + "пел" => mkN011 form; + _ + "рал" => mkN013 form; + _ + "дал" => mkN013 form; + _ + "кал" => mkN013 form; + _ + "сал" => mkN013 form; + _ + "сул" => mkN013 form; + _ + "мул" => mkN045 form; + _ + "нёл" => mkN013 form; + _ + "вон" => mkN009 form; + _ + "рон" => mkN011 form; + _ + "лон" => mkN011 form; + _ + "зон" => mkN011 form; + _ + "аон" => mkN013 form; + _ + "зан" => mkN013 form; + _ + "бан" => mkN195 form; + _ + "зін" => mkN011 form; + _ + "фін" => mkN013 form; + _ + "він" => mkN013 form; + _ + "рэн" => mkN011 form; + _ + "зын" => mkN011 form; + _ + "лын" => mkN214 form; + _ + "іян" => mkN013 form; + _ + "лян" => mkN045 form; + _ + "цян" => mkN195 form; + _ + "жун" => mkN195 form; + _ + "кун" => mkN195 form; + _ + "сун" => mkN195 form; + _ + "пун" => mkN366 form; + _ + "лаб" => mkN009 form; + _ + "ваб" => mkN011 form; + _ + "раб" => mkN013 form; + _ + "арб" => mkN045 form; + _ + "цай" => mkN022 form; + _ + "гай" => mkN117 form; + _ + "тай" => mkN117 form; + _ + "чай" => mkN305 form; + _ + "бой" => mkN017 form; + _ + "рой" => mkN022 form; + _ + "пой" => mkN305 form; + _ + "зей" => mkN022 form; + _ + "куй" => mkN099 form; + _ + "мыз" => mkN011 form; + _ + "цуз" => mkN013 form; + _ + "буз" => mkN214 form; + _ + "куп" => mkN013 form; + _ + "чуп" => mkN045 form; + _ + "ноп" => mkN035 form; + _ + "хоп" => mkN045 form; + _ + "льф" => mkN011 form; + _ + "орф" => mkN011 form; + _ + "сад" => mkN037 form; + _ + "гад" => mkN037 form; + _ + "айд" => mkN037 form; + _ + "код" => mkN037 form; + _ + "лод" => mkN048 form; + _ + "луд" => mkN048 form; + _ + "пед" => mkN037 form; + _ + "зед" => mkN081 form; + _ + "оід" => mkN037 form; + _ + "туш" => mkN034 form; + _ + "рыш" => mkN062 form; + _ + "дло" => mkN278 form; + _ + "яло" => mkN278 form; + _ + "бло" => mkN278 form; + _ + "ало" => mkN316 form; + _ + "іно" => mkN061 form; + _ + "гно" => mkN278 form; + _ + "тно" => mkN316 form; + _ + "дро" => mkN246 form; + _ + "яро" => mkN246 form; + _ + "шкі" => mkN242 form; + _ + "ані" => mkN088 form; + _ + "дні" => mkN241 form; + _ + "уры" => mkN061 form; + _ + "юты" => mkN181 form; + _ + "оны" => mkN145 form; + _ + "чны" => mkN181 form; + _ + "ены" => mkN291 form; + _ + "аны" => mkN291 form; + _ + "нны" => mkN291 form; + _ + "іцы" => mkN145 form; + _ + "ёды" => mkN145 form; + _ + "зія" => mkN133 form; + _ + "хія" => mkN133 form; + _ + "лея" => mkN133 form; + _ + "ель" => mkN237 form; + _ + "унь" => mkN164 form; + _ + "энь" => mkN164 form; + _ + "ань" => mkN164 form; + _ + "онь" => mkN164 form; + _ + "азь" => mkN100 form; + _ + "дзь" => mkN152 form; + _ + "ось" => mkN375 form; + _ + "ась" => mkN375 form; + _ + "яць" => mkN325 form; + _ + "уць" => mkN325 form; + _ + "іць" => mkN325 form; + _ + "іт" => mkN056 form; + _ + "рт" => mkN056 form; + _ + "ст" => mkN131 form; + _ + "ыт" => mkN056 form; + _ + "ят" => mkN056 form; + _ + "лт" => mkN056 form; + _ + "шт" => mkN056 form; + _ + "нц" => mkN042 form; + _ + "яц" => mkN046 form; + _ + "ац" => mkN046 form; + _ + "ва" => mkN024 form; + _ + "за" => mkN016 form; + _ + "ма" => mkN016 form; + _ + "ба" => mkN016 form; + _ + "на" => mkN016 form; + _ + "па" => mkN016 form; + _ + "ла" => mkN024 form; + _ + "са" => mkN016 form; + _ + "га" => mkN021 form; + _ + "та" => mkN023 form; + _ + "ра" => mkN036 form; + _ + "ца" => mkN036 form; + _ + "жа" => mkN036 form; + _ + "ша" => mkN036 form; + _ + "ча" => mkN297 form; + _ + "эа" => mkN061 form; + _ + "да" => mkN087 form; + _ + "ха" => mkN114 form; + _ + "ык" => mkN063 form; + _ + "як" => mkN006 form; + _ + "ак" => mkN178 form; + _ + "юк" => mkN006 form; + _ + "ок" => mkN043 form; + _ + "ск" => mkN043 form; + _ + "ўк" => mkN044 form; + _ + "ёк" => mkN122 form; + _ + "уг" => mkN115 form; + _ + "рг" => mkN008 form; + _ + "аг" => mkN008 form; + _ + "яг" => mkN008 form; + _ + "зг" => mkN030 form; + _ + "ог" => mkN105 form; + _ + "ег" => mkN200 form; + _ + "іх" => mkN006 form; + _ + "эх" => mkN008 form; + _ + "ях" => mkN113 form; + _ + "рч" => mkN007 form; + _ + "іч" => mkN007 form; + _ + "юч" => mkN034 form; + _ + "яч" => mkN034 form; + _ + "шч" => mkN034 form; + _ + "ыч" => mkN034 form; + _ + "еч" => mkN184 form; + _ + "эч" => mkN184 form; + _ + "ыр" => mkN019 form; + _ + "ар" => mkN062 form; + _ + "ір" => mkN007 form; + _ + "яр" => mkN019 form; + _ + "юр" => mkN042 form; + _ + "гр" => mkN062 form; + _ + "ёр" => mkN062 form; + _ + "аж" => mkN062 form; + _ + "ож" => mkN059 form; + _ + "ўж" => mkN155 form; + _ + "рж" => mkN155 form; + _ + "дж" => mkN204 form; + _ + "ам" => mkN031 form; + _ + "ум" => mkN045 form; + _ + "ьм" => mkN031 form; + _ + "ім" => mkN031 form; + _ + "йм" => mkN031 form; + _ + "ём" => mkN031 form; + _ + "юм" => mkN031 form; + _ + "эм" => mkN045 form; + _ + "яс" => mkN009 form; + _ + "ёс" => mkN045 form; + _ + "нс" => mkN045 form; + _ + "рс" => mkN045 form; + _ + "эс" => mkN045 form; + _ + "ыл" => mkN011 form; + _ + "ел" => mkN330 form; + _ + "эл" => mkN045 form; + _ + "іл" => mkN013 form; + _ + "ёл" => mkN018 form; + _ + "ін" => mkN239 form; + _ + "эн" => mkN013 form; + _ + "рн" => mkN011 form; + _ + "ын" => mkN013 form; + _ + "ен" => mkN013 form; + _ + "ун" => mkN214 form; + _ + "рб" => mkN035 form; + _ + "ўб" => mkN035 form; + _ + "юб" => mkN045 form; + _ + "уб" => mkN050 form; + _ + "ыб" => mkN050 form; + _ + "ей" => mkN017 form; + _ + "яй" => mkN017 form; + _ + "эй" => mkN022 form; + _ + "уй" => mkN067 form; + _ + "ыз" => mkN045 form; + _ + "оз" => mkN057 form; + _ + "уп" => mkN050 form; + _ + "ап" => mkN013 form; + _ + "ўп" => mkN045 form; + _ + "ып" => mkN045 form; + _ + "іф" => mkN045 form; + _ + "рд" => mkN037 form; + _ + "юд" => mkN081 form; + _ + "зд" => mkN082 form; + _ + "ьв" => mkN120 form; + _ + "аш" => mkN034 form; + _ + "уш" => mkN046 form; + _ + "рш" => mkN046 form; + _ + "ўш" => mkN059 form; + _ + "ро" => mkN061 form; + _ + "кі" => mkN322 form; + _ + "ні" => mkN099 form; + _ + "ці" => mkN099 form; + _ + "лі" => mkN241 form; + _ + "гі" => mkN242 form; + _ + "ыё" => mkN061 form; + _ + "нё" => mkN433 form; + _ + "ье" => mkN061 form; + _ + "ае" => mkN361 form; + _ + "ры" => mkN145 form; + _ + "ты" => mkN145 form; + _ + "шы" => mkN181 form; + _ + "бы" => mkN291 form; + _ + "лы" => mkN291 form; + _ + "чы" => mkN291 form; + _ + "мы" => mkN291 form; + _ + "мя" => mkN092 form; + _ + "бя" => mkN092 form; + _ + "оя" => mkN133 form; + _ + "ця" => mkN154 form; + _ + "ка" => mkN004 form; + _ + "ль" => mkN100 form; + _ + "нь" => mkN100 form; + _ + "зь" => mkN410 form; + _ + "сь" => mkN116 form; + _ + "ыў" => mkN252 form; + _ + "еў" => mkN252 form; + _ + "т" => mkN032 form; + _ + "ц" => mkN127 form; + _ + "к" => mkN008 form; + _ + "г" => mkN043 form; + _ + "х" => mkN043 form; + _ + "ч" => mkN019 form; + _ + "р" => mkN046 form; + _ + "ж" => mkN046 form; + _ + "м" => mkN011 form; + _ + "с" => mkN031 form; + _ + "л" => mkN031 form; + _ + "н" => mkN031 form; + _ + "б" => mkN031 form; + _ + "й" => mkN010 form; + _ + "з" => mkN031 form; + _ + "п" => mkN031 form; + _ + "ф" => mkN031 form; + _ + "д" => mkN027 form; + _ + "в" => mkN031 form; + _ + ("яляш"|"ялюш") => mkN243 form; + _ + "о" => mkN055 form; + _ + "і" => mkN061 form; + _ + "э" => mkN061 form; + _ + "ё" => mkN230 form; + _ + "ю" => mkN061 form; + _ + "е" => mkN201 form; + _ + "ы" => mkN283 form; + _ + "я" => mkN206 form; + _ + "у" => mkN088 form; + _ + "ь" => mkN262 form; + _ + "o" => mkN144 form; + _ + "ў" => mkN351 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2N : Str -> Str -> N -- s;Nom;Sg s;Acc;Pl + = \form1, form2 -> case of { + <_ + "мак", _ + "мкі"> => mkN178 form1; + <_ + "ана", _ + "оны"> => mkN070 form1; + <_ + "ана", _ + "эны"> => mkN182 form1; + <_ + "нер", _ + "яры"> => mkN069 form1; + <_ + "ель", _ + "блі"> => mkN118 form1; + <_ + "ель", _ + "флі"> => mkN179 form1; + <_ + "ань", _ + "жні"> => mkN177 form1; + <_ + "раб", _ + "оў"> => mkN195 form1; + <_ + "вак", _ + "оў"> => mkN328 form1; + <_ + "вец", _ + "оў"> => mkN420 form1; + <_ + "рка", _ + "і"> => mkN004 form1; + <_ + "іка", _ + "і"> => mkN026 form1; + <_ + "ека", _ + "і"> => mkN256 form1; + <_ + "ыка", _ + "і"> => mkN026 form1; + <_ + "ыка", _ + "ў"> => mkN129 form1; + <_ + "ўка", _ + "к"> => mkN161 form1; + <_ + "зык", _ + "ў"> => mkN006 form1; + <_ + "мак", _ + "і"> => mkN005 form1; + <_ + "пак", _ + "і"> => mkN005 form1; + <_ + "шок", _ + "і"> => mkN008 form1; + <_ + "лік", _ + "ў"> => mkN063 form1; + <_ + "нос", _ + "ы"> => mkN009 form1; + <_ + "гай", _ + "і"> => mkN010 form1; + <_ + "льф", _ + "ы"> => mkN031 form1; + <_ + "рон", _ + "ў"> => mkN013 form1; + <_ + "лон", _ + "ў"> => mkN029 form1; + <_ + "лон", _ + "ы"> => mkN045 form1; + <_ + "лёс", _ + "ы"> => mkN045 form1; + <_ + "зін", _ + "ы"> => mkN031 form1; + <_ + "уза", _ + "ы"> => mkN091 form1; + <_ + "аза", _ + "ы"> => mkN016 form1; + <_ + "аза", _ + "з"> => mkN139 form1; + <_ + "ьба", _ + "ы"> => mkN016 form1; + <_ + "іма", _ + "ы"> => mkN091 form1; + <_ + "ына", _ + "ы"> => mkN016 form1; + <_ + "спа", _ + "ы"> => mkN039 form1; + <_ + "ана", _ + "ы"> => mkN016 form1; + <_ + "гла", _ + "ы"> => mkN356 form1; + <_ + "аба", _ + "ы"> => mkN016 form1; + <_ + "ула", _ + "л"> => mkN012 form1; + <_ + "ула", _ + "ы"> => mkN016 form1; + <_ + "ыса", _ + "ы"> => mkN016 form1; + <_ + "рна", _ + "ы"> => mkN091 form1; + <_ + "раб", _ + "ы"> => mkN031 form1; + <_ + "іян", _ + "ы"> => mkN031 form1; + <_ + "цыс", _ + "ы"> => mkN031 form1; + <_ + "мок", _ + "і"> => mkN015 form1; + <_ + "іла", _ + "ы"> => mkN016 form1; + <_ + "ела", _ + "ы"> => mkN016 form1; + <_ + "ова", _ + "ў"> => mkN138 form1; + <_ + "вол", _ + "ў"> => mkN029 form1; + <_ + "дра", _ + "ў"> => mkN141 form1; + <_ + "гад", _ + "ў"> => mkN081 form1; + <_ + "зва", _ + "ў"> => mkN083 form1; + <_ + "рва", _ + "ў"> => mkN083 form1; + <_ + "вар", _ + "ў"> => mkN062 form1; + <_ + "рук", _ + "ў"> => mkN328 form1; + <_ + "нер", _ + "ы"> => mkN046 form1; + <_ + "ост", _ + "ы"> => mkN054 form1; + <_ + "энт", _ + "ы"> => mkN056 form1; + <_ + "вер", _ + "ў"> => mkN062 form1; + <_ + "раг", _ + "і"> => mkN115 form1; + <_ + "ўца", _ + "ў"> => mkN078 form1; + <_ + "бра", _ + "ы"> => mkN102 form1; + <_ + "ьма", _ + "ў"> => mkN083 form1; + <_ + "ель", _ + "і"> => mkN100 form1; + <_ + "рог", _ + "і"> => mkN105 form1; + <_ + "рог", _ + "ў"> => mkN339 form1; + <_ + "унь", _ + "і"> => mkN121 form1; + <_ + "йка", _ + "к"> => mkN160 form1; + <_ + "ька", _ + "ў"> => mkN129 form1; + <_ + "ька", _ + "і"> => mkN197 form1; + <_ + "яць", _ + "ў"> => mkN132 form1; + <_ + "ось", _ + "ў"> => mkN152 form1; + <_ + "зак", _ + "ў"> => mkN191 form1; + <_ + "ар", _ + "тры"> => mkN373 form1; + <_ + "ок", _ + "ркі"> => mkN015 form1; + <_ + "ок", _ + "ткі"> => mkN015 form1; + <_ + "ок", _ + "акі"> => mkN030 form1; + <_ + "ва", _ + "івы"> => mkN150 form1; + <_ + "ла", _ + "элы"> => mkN182 form1; + <_ + "ла", _ + "ылы"> => mkN188 form1; + <_ + "са", _ + "осы"> => mkN070 form1; + <_ + "ел", _ + "елы"> => mkN031 form1; + <_ + "ль", _ + "злі"> => mkN177 form1; + <_ + "нь", _ + "дні"> => mkN173 form1; + <_ + "нь", _ + "ўні"> => mkN175 form1; + <_ + "нь", _ + "сні"> => mkN179 form1; + <_ + "нь", _ + "пні"> => mkN179 form1; + <_ + "нь", _ + "яні"> => mkN400 form1; + <_ + "ак", _ + "оў"> => mkN006 form1; + <_ + "ык", _ + "оў"> => mkN006 form1; + <_ + "як", _ + "аў"> => mkN063 form1; + <_ + "ар", _ + "оў"> => mkN019 form1; + <_ + "ла", _ + "ол"> => mkN139 form1; + <_ + "ын", _ + "оў"> => mkN038 form1; + <_ + "яр", _ + "аў"> => mkN062 form1; + <_ + "іт", _ + "ты"> => mkN032 form1; + <_ + "ль", _ + "ёў"> => mkN203 form1; + <_ + "ак", _ + "ў"> => mkN276 form1; + <_ + "ык", _ + "і"> => mkN008 form1; + <_ + "ыр", _ + "ы"> => mkN034 form1; + <_ + "ір", _ + "ы"> => mkN042 form1; + <_ + "ар", _ + "ы"> => mkN046 form1; + <_ + "аг", _ + "ў"> => mkN063 form1; + <_ + "эх", _ + "ў"> => mkN063 form1; + <_ + "ма", _ + "м"> => mkN012 form1; + <_ + "на", _ + "н"> => mkN012 form1; + <_ + "ба", _ + "б"> => mkN012 form1; + <_ + "ла", _ + "л"> => mkN012 form1; + <_ + "па", _ + "п"> => mkN012 form1; + <_ + "ап", _ + "ы"> => mkN031 form1; + <_ + "эл", _ + "ў"> => mkN013 form1; + <_ + "ен", _ + "ы"> => mkN045 form1; + <_ + "ей", _ + "ў"> => mkN022 form1; + <_ + "ёл", _ + "ы"> => mkN031 form1; + <_ + "та", _ + "ў"> => mkN078 form1; + <_ + "ін", _ + "ы"> => mkN031 form1; + <_ + "ст", _ + "ы"> => mkN032 form1; + <_ + "шч", _ + "ў"> => mkN346 form1; + <_ + "ца", _ + "ц"> => mkN137 form1; + <_ + "рд", _ + "ў"> => mkN081 form1; + <_ + "ск", _ + "ў"> => mkN063 form1; + <_ + "еч", _ + "ы"> => mkN069 form1; + <_ + "ча", _ + "ў"> => mkN141 form1; + <_ + "бя", _ + "т"> => mkN153 form1; + <_ + "ль", _ + "ў"> => mkN152 form1; + <_ + "нь", _ + "ў"> => mkN152 form1; + <_ + "ха", _ + "і"> => mkN309 form1; + <_ + "зь", _ + "ў"> => mkN132 form1; + <_ + "оя", _ + "і"> => mkN301 form1; + <_ + "ж", _ + "ыжы"> => mkN090 form1; + <_ + "г", _ + "ўгі"> => mkN044 form1; + <_ + "с", _ + "ысы"> => mkN050 form1; + <_ + "д", _ + "оды"> => mkN037 form1; + <_ + "р", _ + "ары"> => mkN059 form1; + <_ + "ь", _ + "кці"> => mkN177 form1; + <_ + "ь", _ + "гці"> => mkN177 form1; + <_ + "ь", _ + "аці"> => mkN325 form1; + <_ + "т", _ + "оў"> => mkN001 form1; + <_ + "к", _ + "оў"> => mkN006 form1; + <_ + "л", _ + "оў"> => mkN159 form1; + <_ + "й", _ + "оі"> => mkN017 form1; + <_ + "й", _ + "іі"> => mkN067 form1; + <_ + "с", _ + "оў"> => mkN195 form1; + <_ + "н", _ + "оў"> => mkN038 form1; + <_ + "о", _ + "вы"> => mkN278 form1; + <_ + "т", _ + "ў"> => mkN131 form1; + <_ + "а", _ + "к"> => mkN003 form1; + <_ + "к", _ + "ў"> => mkN063 form1; + <_ + "м", _ + "ў"> => mkN013 form1; + <_ + "л", _ + "ў"> => mkN013 form1; + <_ + "с", _ + "ў"> => mkN013 form1; + <_ + "з", _ + "ў"> => mkN013 form1; + <_ + "н", _ + "ў"> => mkN013 form1; + <_ + "п", _ + "ў"> => mkN029 form1; + <_ + "р", _ + "ў"> => mkN062 form1; + <_ + "х", _ + "ў"> => mkN063 form1; + <_ + "я", _ + "т"> => mkN153 form1; + <_ + "я", _ + "ў"> => mkN154 form1; + <_ + "я", _ + "ь"> => mkN232 form1; + <_ + "я", _ + "й"> => mkN384 form1; + <_ + "ц", _ + "ы"> => mkN299 form1; + <_ + "ь", _ + "й"> => mkN323 form1; + _ => regN form1 + } ; + + regV : Str -> V -- infinitive + = \form -> case form of { + _ + "агчы" => mkV021 form; + _ + "іць" => mkV036 form; + _ + "эць" => mkV048 form; + _ + "ыць" => mkV020 form; + _ + "уць" => mkV045 form; + _ + "ячы" => mkV072 form; + _ + "ьці" => mkV013 form; + _ + "зці" => mkV049 form; + _ + "бці" => mkV137 form; + _ + "сці" => mkV016 form; + _ + "цца" => mkV043 form; + _ + "ма" => mkV013 form; + _ + "шы" => mkV013 form; + _ + "ь" => mkV015 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2V : Str -> Str -> V -- infinitive Imperative;Sg + = \form1, form2 -> case of { + <_ + "іць", _ + "ані"> => mkV096 form1; + <_ + "іць", _ + "яні"> => mkV079 form1; + <_ + "іць", _ + "апі"> => mkV017 form1; + <_ + "іць", _ + "сці"> => mkV078 form1; + <_ + "уць", _ + "кні"> => mkV074 form1; + <_ + "уць", _ + "хні"> => mkV074 form1; + <_ + "іць", _ + "ві"> => mkV001 form1; + <_ + "іць", _ + "бі"> => mkV058 form1; + <_ + "іць", _ + "зі"> => mkV058 form1; + <_ + "іць", _ + "аі"> => mkV155 form1; + <_ + "іць", _ + "пі"> => mkV058 form1; + <_ + "іць", _ + "ці"> => mkV033 form1; + <_ + "іць", _ + "сі"> => mkV050 form1; + <_ + "іць", _ + "ць"> => mkV060 form1; + <_ + "іць", _ + "мь"> => mkV106 form1; + <_ + "ыць", _ + "жы"> => mkV064 form1; + <_ + "іць", _ + "і"> => mkV011 form1; + <_ + "іць", _ + "ў"> => mkV139 form1; + <_ + "іць", _ + "й"> => mkV156 form1; + <_ + "эць", _ + "й"> => mkV015 form1; + <_ + "эць", _ + "ь"> => mkV063 form1; + <_ + "ыць", _ + "ы"> => mkV070 form1; + <_ + "ыць", _ + "й"> => mkV055 form1; + <_ + "ыць", _ + "і"> => mkV089 form1; + <_ + "уць", _ + "ь"> => mkV037 form1; + <_ + "уць", _ + "й"> => mkV055 form1; + <_ + "зці", _ + "ь"> => mkV092 form1; + <_ + "ь", _ + "жуй"> => mkV003 form1; + <_ + "ь", _ + "цай"> => mkV055 form1; + <_ + "ь", _ + "лжы"> => mkV125 form1; + <_ + "ь", _ + "аві"> => mkV102 form1; + <_ + "ь", _ + "ссі"> => mkV145 form1; + <_ + "і", _ + "асі"> => mkV137 form1; + <_ + "ы", _ + "яжы"> => mkV143 form1; + <_ + "а", _ + "іся"> => mkV046 form1; + <_ + "а", _ + "ыся"> => mkV046 form1; + <_ + "а", _ + "ься"> => mkV080 form1; + <_ + "а", _ + "рся"> => mkV087 form1; + <_ + "а", _ + "чся"> => mkV087 form1; + <_ + "ь", _ + "уй"> => mkV029 form1; + <_ + "ь", _ + "ой"> => mkV025 form1; + <_ + "ь", _ + "юй"> => mkV120 form1; + <_ + "ь", _ + "нь"> => mkV063 form1; + <_ + "ь", _ + "шы"> => mkV028 form1; + <_ + "ь", _ + "чы"> => mkV130 form1; + <_ + "ь", _ + "мі"> => mkV039 form1; + <_ + "ь", _ + "ві"> => mkV039 form1; + <_ + "ь", _ + "зі"> => mkV115 form1; + <_ + "ь", _ + "ні"> => mkV102 form1; + <_ + "ь", _ + "бі"> => mkV145 form1; + <_ + "і", _ + "сі"> => mkV049 form1; + <_ + "і", _ + "ці"> => mkV056 form1; + <_ + "ь", _ + "ь"> => mkV018 form1; + <_ + "ь", _ + "ы"> => mkV066 form1; + <_ + "ь", _ + "ч"> => mkV034 form1; + <_ + "ь", _ + "і"> => mkV069 form1; + <_ + "і", _ + "ь"> => mkV054 form1; + _ => regV form1 + } ; + + regA : Str -> A -- s;Nom;('GSg', Masc) + = \form -> case form of { + _ + "які" => mkA006 form; + _ + "пы" => mkA002 form; + _ + "гі" => mkA006 form; + _ + "хі" => mkA006 form; + _ + "ні" => mkA005 form; + _ + "ці" => mkA005 form; + _ + "ыі" => mkA005 form; + _ + "ы" => mkA001 form; + _ + "і" => mkA003 form; + _ + "а" => mkA004 form; + _ + "н" => mkA004 form; + _ + "т" => mkA004 form; + _ + "ў" => mkA004 form; + _ + "ь" => mkA004 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2A : Str -> Str -> A -- s;Nom;('GSg', Masc) s;Nom;('GSg', Neuter) + = \form1, form2 -> case of { + <_ + "гі", _ + "ае"> => mkA003 form1; + <_ + "хі", _ + "ае"> => mkA003 form1; + <_ + "ы", _ + "ое"> => mkA002 form1; + <_ + "і", _ + "яе"> => mkA004 form1; + <_ + "і", _ + "ое"> => mkA006 form1; + _ => regA form1 + } ; + + mkN = overload { + mkN : Str -> N = regN; -- s;Nom;Sg + mkN : Str -> Str -> N = reg2N -- s;Nom;Sg s;Acc;Pl + } ; + + mkN2 = overload { + mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; + mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + } ; + + mkN3 = overload { + mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + } ; + + mkV = overload { + mkV : Str -> V = regV; -- infinitive + mkV : Str -> Str -> V = reg2V -- infinitive Imperative;Sg + } ; + + mkVV,mkVS,mkVQ,mkVA = \v -> v ; + + mkV2 = overload { + mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; + mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + } ; + + mkV3 = overload { + mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2A = overload { + mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2S = overload { + mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2Q = overload { + mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2V = overload { + mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkA = overload { + mkA : Str -> A = regA; -- s;Nom;('GSg', Masc) + mkA : Str -> Str -> A = reg2A -- s;Nom;('GSg', Masc) s;Nom;('GSg', Neuter) + } ; + + mkA2 = overload { + mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; + mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + } ; + + mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; + mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; + mkAdA : Str -> AdA = \s -> lin AdA {s=s} ; + mkAdN : Str -> AdN = \s -> lin AdN {s=s} ; + mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s; p=""} ; + mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + + mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; + + mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; + mkIP : Str -> IP = \s -> lin IP {s=s} ; + mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; + mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; + mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; + mkQuant : Str -> Quant = \s -> lin Quant {s=s} ; + mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; + mkDet : Str -> Det = \s -> lin Det {s=s} ; + mkCard : Str -> Card = \s -> lin Card {s=s} ; + mkConj : Str -> Conj = \s -> lin Conj {s=s} ; + mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; + mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; + + mkLN : Str -> LN = \s -> lin LN {s=s} ; + mkGN : Str -> GN = \s -> lin GN {s=s} ; + mkSN : Str -> SN = \s -> lin SN {s=s} ; + mkPN : Str -> PN = \s -> lin PN {s=s} ; + +} diff --git a/src/belarusian/PhraseBel.gf b/src/belarusian/PhraseBel.gf new file mode 100644 index 00000000..2f5babb9 --- /dev/null +++ b/src/belarusian/PhraseBel.gf @@ -0,0 +1,11 @@ +concrete PhraseBel of Phrase = CatBel ** { +lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; + UttInterj i = i ; + + NoPConj = {s = []} ; + + NoVoc = {s = []} ; +} diff --git a/src/belarusian/ResBel.gf b/src/belarusian/ResBel.gf new file mode 100644 index 00000000..ef7d8477 --- /dev/null +++ b/src/belarusian/ResBel.gf @@ -0,0 +1,166 @@ +resource ResBel = { + +param Case = Nom | Acc | Dat | Gen | Loc | Instr ; +param Number = Sg | Pl ; +param Gender = Masc | Fem | Neuter ; +oper N = {s: Case => Number => Str; Voc: Number => Str; g: Gender} ; -- 2696 +oper mkN : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> N = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,g -> + { s = table { + Nom => table { + Sg => f1 ; + Pl => f2 + } ; + Acc => table { + Sg => f3 ; + Pl => f4 + } ; + Dat => table { + Sg => f5 ; + Pl => f6 + } ; + Gen => table { + Sg => f7 ; + Pl => f8 + } ; + Loc => table { + Sg => f9 ; + Pl => f10 + } ; + Instr => table { + Sg => f11 ; + Pl => f12 + } + } ; + Voc = table { + Sg => f13 ; + Pl => f14 + } ; + g = g + } ; + + +param Aspect = Imperf | Perf ; +param Person = P1 | P2 | P3 ; +param Tense = Pres | Past ; +oper V = {active: Aspect => {Past: Str; Pres: Person => Number => Str}; imperative: Number => Str; infinitive: Str; participle: Gender => Number => Str; passive: Aspect => Tense => Str} ; -- 703 +oper mkV : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> V = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27 -> + { active = table { + Imperf => { Past = f1 ; + Pres = table { + P1 => table { + Sg => f2 ; + Pl => f3 + } ; + P2 => table { + Sg => f4 ; + Pl => f5 + } ; + P3 => table { + Sg => f6 ; + Pl => f7 + } + } + } ; + Perf => { Past = f8 ; + Pres = table { + P1 => table { + Sg => f9 ; + Pl => f10 + } ; + P2 => table { + Sg => f11 ; + Pl => f12 + } ; + P3 => table { + Sg => f13 ; + Pl => f14 + } + } + } + } ; + imperative = table { + Sg => f15 ; + Pl => f16 + } ; + infinitive = f17 ; + participle = table { + Masc => table { + Sg => f18 ; + Pl => f19 + } ; + Fem => table { + Sg => f20 ; + Pl => f21 + } ; + Neuter => table { + Sg => f22 ; + Pl => f23 + } + } ; + passive = table { + Imperf => table { + Pres => f24 ; + Past => f25 + } ; + Perf => table { + Pres => f26 ; + Past => f27 + } + } + } ; + + +param GenNum = GSg Gender | GPl ; +oper A = {s: Case => GenNum => Str} ; -- 704 +oper mkA : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> A = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24 -> + { s = table { + Nom => table { + GSg Masc => f1 ; + GSg Fem => f2 ; + GSg Neuter => f3 ; + GPl => f4 + } ; + Acc => table { + GSg Masc => f5 ; + GSg Fem => f6 ; + GSg Neuter => f7 ; + GPl => f8 + } ; + Dat => table { + GSg Masc => f9 ; + GSg Fem => f10 ; + GSg Neuter => f11 ; + GPl => f12 + } ; + Gen => table { + GSg Masc => f13 ; + GSg Fem => f14 ; + GSg Neuter => f15 ; + GPl => f16 + } ; + Loc => table { + GSg Masc => f17 ; + GSg Fem => f18 ; + GSg Neuter => f19 ; + GPl => f20 + } ; + Instr => table { + GSg Masc => f21 ; + GSg Fem => f22 ; + GSg Neuter => f23 ; + GPl => f24 + } + } + } ; + + +oper Compl = {s : Str; c : Case} ; +oper noPrep : Compl = {s=""; c=Acc} ; + +oper CommonNoun = {s : Str} ; +oper AdjPhrase = {s : Str} ; + +} From cad17e840411f3268e443cab652b5a19384dcae5 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 26 Sep 2025 06:20:16 +0200 Subject: [PATCH 062/169] fill in the neuter forms for adjectives --- src/belarusian/MorphoBel.gf | 212 +++++++----------------------------- 1 file changed, 40 insertions(+), 172 deletions(-) diff --git a/src/belarusian/MorphoBel.gf b/src/belarusian/MorphoBel.gf index 9acd4144..0a876bd3 100644 --- a/src/belarusian/MorphoBel.gf +++ b/src/belarusian/MorphoBel.gf @@ -30698,27 +30698,23 @@ mkA001 base = GPl => base_1+"ых" } ; Dat => table { - GSg Masc => base_1+"аму" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"аму" ; GPl => base_1+"ым" } ; Gen => table { - GSg Masc => base_1+"ага" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ага" ; GPl => base_1+"ых" } ; Loc => table { - GSg Masc => base_1+"ым" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ым" ; GPl => base_1+"ых" } ; Instr => table { - GSg Masc => base_1+"ым" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ым" ; GPl => base_1+"ымі" } } @@ -30744,27 +30740,23 @@ mkA002 base = GPl => base_1+"ых" } ; Dat => table { - GSg Masc => base_1+"ому" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ому" ; GPl => base_1+"ым" } ; Gen => table { - GSg Masc => base_1+"ога" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ога" ; GPl => base_1+"ых" } ; Loc => table { - GSg Masc => base_1+"ым" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ым" ; GPl => base_1+"ых" } ; Instr => table { - GSg Masc => base_1+"ым" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ым" ; GPl => base_1+"ымі" } } @@ -30790,27 +30782,23 @@ mkA003 base = GPl => base_1+"іх" } ; Dat => table { - GSg Masc => base_1+"аму" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"аму" ; GPl => base_1+"ім" } ; Gen => table { - GSg Masc => base_1+"ага" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ага" ; GPl => base_1+"іх" } ; Loc => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"іх" } ; Instr => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"імі" } } @@ -30836,27 +30824,23 @@ mkA004 base = GPl => base_1+"іх" } ; Dat => table { - GSg Masc => base_1+"яму" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"яму" ; GPl => base_1+"ім" } ; Gen => table { - GSg Masc => base_1+"яга" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"яга" ; GPl => base_1+"іх" } ; Loc => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"іх" } ; Instr => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"імі" } } @@ -30882,27 +30866,23 @@ mkA005 base = GPl => base_1+"іх" } ; Dat => table { - GSg Masc => base_1+"яму" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"яму" ; GPl => base_1+"ім" } ; Gen => table { - GSg Masc => base_1+"яга" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"яга" ; GPl => base_1+"іх" } ; Loc => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"іх" } ; Instr => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"яй" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"імі" } } @@ -30928,27 +30908,23 @@ mkA006 base = GPl => base_1+"іх" } ; Dat => table { - GSg Masc => base_1+"ому" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ому" ; GPl => base_1+"ім" } ; Gen => table { - GSg Masc => base_1+"ога" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ога" ; GPl => base_1+"іх" } ; Loc => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"іх" } ; Instr => table { - GSg Masc => base_1+"ім" ; GSg Fem => base_1+"ой" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ім" ; GPl => base_1+"імі" } } @@ -30974,27 +30950,23 @@ mkA007 base = GPl => base_1+"ых" } ; Dat => table { - GSg Masc => base_1+"аму" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"аму" ; GPl => base_1+"ым" } ; Gen => table { - GSg Masc => base_1+"ага" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ага" ; GPl => base_1+"ых" } ; Loc => table { - GSg Masc => base_1+"ым" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ым" ; GPl => base_1+"ых" } ; Instr => table { - GSg Masc => base_1+"ым" ; GSg Fem => base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"ым" ; GPl => base_1+"ымі" } } @@ -31020,27 +30992,23 @@ mkA008 base = GPl => "гав"+base_1+"р"+base_2+"ых" } ; Dat => table { - GSg Masc => "гав"+base_1+"р"+base_2+"аму" ; GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "гав"+base_1+"р"+base_2+"аму" ; GPl => "гав"+base_1+"р"+base_2+"ым" } ; Gen => table { - GSg Masc => "гав"+base_1+"р"+base_2+"ага" ; GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "гав"+base_1+"р"+base_2+"ага" ; GPl => "гав"+base_1+"р"+base_2+"ых" } ; Loc => table { - GSg Masc => "гав"+base_1+"р"+base_2+"ым" ; GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "гав"+base_1+"р"+base_2+"ым" ; GPl => "гав"+base_1+"р"+base_2+"ых" } ; Instr => table { - GSg Masc => "гав"+base_1+"р"+base_2+"ым" ; GSg Fem => "гав"+base_1+"р"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "гав"+base_1+"р"+base_2+"ым" ; GPl => "гав"+base_1+"р"+base_2+"ымі" } } @@ -31066,27 +31034,23 @@ mkA009 base = GPl => "ах"+base_1+"ых" } ; Dat => table { - GSg Masc => "ах"+base_1+"аму" ; GSg Fem => "ах"+base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "ах"+base_1+"аму" ; GPl => "ах"+base_1+"ым" } ; Gen => table { - GSg Masc => "ах"+base_1+"ага" ; GSg Fem => "ах"+base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "ах"+base_1+"ага" ; GPl => "ах"+base_1+"ых" } ; Loc => table { - GSg Masc => "ах"+base_1+"ым" ; GSg Fem => "ах"+base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "ах"+base_1+"ым" ; GPl => "ах"+base_1+"ых" } ; Instr => table { - GSg Masc => "ах"+base_1+"ым" ; GSg Fem => "ах"+base_1+"ай" ; - GSg Neuter => nonExist ; + GSg _ => "ах"+base_1+"ым" ; GPl => "ах"+base_1+"ымі" } } @@ -31112,123 +31076,27 @@ mkA010 base = GPl => base_1+"я"+base_2+"ых" } ; Dat => table { - GSg Masc => base_1+"я"+base_2+"аму" ; GSg Fem => base_1+"я"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"я"+base_2+"аму" ; GPl => base_1+"я"+base_2+"ым" } ; Gen => table { - GSg Masc => base_1+"я"+base_2+"ага" ; GSg Fem => base_1+"я"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"я"+base_2+"ага" ; GPl => base_1+"я"+base_2+"ых" } ; Loc => table { - GSg Masc => base_1+"я"+base_2+"ым" ; GSg Fem => base_1+"я"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"я"+base_2+"ым" ; GPl => base_1+"я"+base_2+"ых" } ; Instr => table { - GSg Masc => base_1+"я"+base_2+"ым" ; GSg Fem => base_1+"я"+base_2+"ай" ; - GSg Neuter => nonExist ; + GSg _ => base_1+"я"+base_2+"ым" ; GPl => base_1+"я"+base_2+"ымі" } } }; _ => error "Can't apply paradigm mkA010" } ; - -mkA011 : Str -> A ; -mkA011 base = - case base of { - base_1+base_2@(?+?+?+?+?+?)+"і" => lin A - { s = table { - Nom => table { - GSg Masc => base_1+base_2+"і" ; - GSg Fem => base_1+"̀"+base_2+"ая" ; - GSg Neuter => base_1+"̀"+base_2+"ае" ; - GPl => base_1+"̀"+base_2+"ія" - } ; - Acc => table { - GSg Masc => base_1+"̀"+base_2+"ага" ; - GSg Fem => base_1+"̀"+base_2+"ую" ; - GSg Neuter => base_1+"̀"+base_2+"ае" ; - GPl => base_1+"̀"+base_2+"іх" - } ; - Dat => table { - GSg Masc => base_1+"̀"+base_2+"аму" ; - GSg Fem => base_1+"̀"+base_2+"ай" ; - GSg Neuter => nonExist ; - GPl => base_1+"̀"+base_2+"ім" - } ; - Gen => table { - GSg Masc => base_1+"̀"+base_2+"ага" ; - GSg Fem => base_1+"̀"+base_2+"ай" ; - GSg Neuter => nonExist ; - GPl => base_1+"̀"+base_2+"іх" - } ; - Loc => table { - GSg Masc => base_1+"̀"+base_2+"ім" ; - GSg Fem => base_1+"̀"+base_2+"ай" ; - GSg Neuter => nonExist ; - GPl => base_1+"̀"+base_2+"іх" - } ; - Instr => table { - GSg Masc => base_1+"̀"+base_2+"ім" ; - GSg Fem => base_1+"̀"+base_2+"ай" ; - GSg Neuter => nonExist ; - GPl => base_1+"̀"+base_2+"імі" - } - } - }; - _ => error "Can't apply paradigm mkA011" - } ; - -mkA012 : Str -> A ; -mkA012 base = - case base of { - base_1+"ь" => lin A - { s = table { - Nom => table { - GSg Masc => base_1+"ь" ; - GSg Fem => nonExist ; - GSg Neuter => nonExist ; - GPl => base_1+"і" - } ; - Acc => table { - GSg Masc => nonExist ; - GSg Fem => nonExist ; - GSg Neuter => nonExist ; - GPl => base_1+"і" - } ; - Dat => table { - GSg Masc => nonExist ; - GSg Fem => nonExist ; - GSg Neuter => nonExist ; - GPl => base_1+"ям" - } ; - Gen => table { - GSg Masc => nonExist ; - GSg Fem => nonExist ; - GSg Neuter => nonExist ; - GPl => base_1+"ей" - } ; - Loc => table { - GSg Masc => nonExist ; - GSg Fem => nonExist ; - GSg Neuter => nonExist ; - GPl => base_1+"ях" - } ; - Instr => table { - GSg Masc => nonExist ; - GSg Fem => nonExist ; - GSg Neuter => nonExist ; - GPl => base_1+"ямі" - } - } - }; - _ => error "Can't apply paradigm mkA012" - } ; } From a5f467940594b8a122da980ec77a3b31b51fad56 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 26 Sep 2025 07:24:08 +0200 Subject: [PATCH 063/169] refactor the noun paradigms --- src/belarusian/CatBel.gf | 6 +- src/belarusian/DocumentationBel.gf | 3 +- src/belarusian/MorphoBel.gf | 3604 ++++++++-------------------- src/belarusian/ResBel.gf | 11 +- 4 files changed, 1066 insertions(+), 2558 deletions(-) diff --git a/src/belarusian/CatBel.gf b/src/belarusian/CatBel.gf index fbd0ebbc..7b1d64cd 100644 --- a/src/belarusian/CatBel.gf +++ b/src/belarusian/CatBel.gf @@ -1,8 +1,8 @@ concrete CatBel of Cat = CommonX ** open ResBel in { -lincat N = N ; -lincat N2 = N ** {c2 : Compl} ; -lincat N3 = N ** {c2,c3 : Compl} ; +lincat N = Noun ; +lincat N2 = Noun ** {c2 : Compl} ; +lincat N3 = Noun ** {c2,c3 : Compl} ; lincat V = V ; lincat VV,VS,VQ,VA = V ; lincat V2 = V ** {c2 : Compl} ; diff --git a/src/belarusian/DocumentationBel.gf b/src/belarusian/DocumentationBel.gf index 4d568a04..ac1eb55e 100644 --- a/src/belarusian/DocumentationBel.gf +++ b/src/belarusian/DocumentationBel.gf @@ -18,8 +18,7 @@ lin tr (th "Dat" ++ td (x.s ! Dat ! Sg) ++ td (x.s ! Dat ! Pl)) ++ tr (th "Gen" ++ td (x.s ! Gen ! Sg) ++ td (x.s ! Gen ! Pl)) ++ tr (th "Loc" ++ td (x.s ! Loc ! Sg) ++ td (x.s ! Loc ! Pl)) ++ - tr (th "Instr" ++ td (x.s ! Instr ! Sg) ++ td (x.s ! Instr ! Pl)) ++ - tr (th "Voc" ++ td (x.Voc ! Sg) ++ td (x.Voc ! Pl))) ; + tr (th "Instr" ++ td (x.s ! Instr ! Sg) ++ td (x.s ! Instr ! Pl))) ; s3=[] } ; lin diff --git a/src/belarusian/MorphoBel.gf b/src/belarusian/MorphoBel.gf index 0a876bd3..43e980c4 100644 --- a/src/belarusian/MorphoBel.gf +++ b/src/belarusian/MorphoBel.gf @@ -32,10 +32,7 @@ mkN001 base = Pl => base_1+"атамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN001" @@ -71,10 +68,7 @@ mkN002 base = Pl => base_1+"ь"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN002" @@ -110,10 +104,7 @@ mkN003 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN003" @@ -149,10 +140,7 @@ mkN004 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN004" @@ -160,159 +148,135 @@ mkN004 base = mkN005 : Str -> N ; mkN005 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc - }; - _ => error "Can't apply paradigm mkN005" - } ; + } ; mkN006 : Str -> N ; mkN006 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN006" - } ; mkN007 : Str -> N ; mkN007 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"оў" + Sg => base+"у" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc - }; - _ => error "Can't apply paradigm mkN007" - } ; + } ; mkN008 : Str -> N ; mkN008 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN008" - } ; mkN009 : Str -> N ; mkN009 base = @@ -344,10 +308,7 @@ mkN009 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN009" @@ -383,10 +344,7 @@ mkN010 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN010" @@ -394,41 +352,35 @@ mkN010 base = mkN011 : Str -> N ; mkN011 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"оў" + Sg => base+"у" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc - }; - _ => error "Can't apply paradigm mkN011" } ; mkN012 : Str -> N ; @@ -461,10 +413,7 @@ mkN012 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN012" @@ -472,41 +421,35 @@ mkN012 base = mkN013 : Str -> N ; mkN013 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc - }; - _ => error "Can't apply paradigm mkN013" } ; mkN014 : Str -> N ; @@ -539,10 +482,7 @@ mkN014 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN014" @@ -578,10 +518,7 @@ mkN015 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN015" @@ -617,10 +554,7 @@ mkN016 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN016" @@ -656,10 +590,7 @@ mkN017 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN017" @@ -695,10 +626,7 @@ mkN018 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN018" @@ -706,42 +634,36 @@ mkN018 base = mkN019 : Str -> N ; mkN019 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => base_1+"у" ; - Pl => nonExist - } ; + voc = base+"у" ; g = Masc }; - _ => error "Can't apply paradigm mkN019" - } ; mkN020 : Str -> N ; mkN020 base = @@ -773,10 +695,7 @@ mkN020 base = Pl => base_1+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN020" @@ -812,10 +731,7 @@ mkN021 base = Pl => base_1+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN021" @@ -851,10 +767,7 @@ mkN022 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN022" @@ -890,10 +803,7 @@ mkN023 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN023" @@ -929,10 +839,7 @@ mkN024 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN024" @@ -968,10 +875,7 @@ mkN025 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => base_1+"це" ; - Pl => nonExist - } ; + voc = base_1+"це" ; g = Masc }; _ => error "Can't apply paradigm mkN025" @@ -1007,10 +911,7 @@ mkN026 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN026" @@ -1018,42 +919,36 @@ mkN026 base = mkN027 : Str -> N ; mkN027 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"аў" + Sg => base+"у" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"ах" + Sg => base+"зе" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN027" - } ; mkN028 : Str -> N ; mkN028 base = @@ -1085,10 +980,7 @@ mkN028 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN028" @@ -1124,10 +1016,7 @@ mkN029 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN029" @@ -1163,10 +1052,7 @@ mkN030 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN030" @@ -1174,42 +1060,36 @@ mkN030 base = mkN031 : Str -> N ; mkN031 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN031" - } ; mkN032 : Str -> N ; mkN032 base = @@ -1241,10 +1121,7 @@ mkN032 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN032" @@ -1280,10 +1157,7 @@ mkN033 base = Pl => base_1+"агамі" } } ; - Voc = table { - Sg => base_1+"ожа" ; - Pl => nonExist - } ; + voc = base_1+"ожа" ; g = Masc }; _ => error "Can't apply paradigm mkN033" @@ -1291,42 +1165,36 @@ mkN033 base = mkN034 : Str -> N ; mkN034 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN034" - } ; mkN035 : Str -> N ; mkN035 base = @@ -1358,10 +1226,7 @@ mkN035 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN035" @@ -1397,10 +1262,7 @@ mkN036 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN036" @@ -1408,81 +1270,69 @@ mkN036 base = mkN037 : Str -> N ; mkN037 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"ах" + Sg => base+"зе" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => base_1+"зе" ; - Pl => nonExist - } ; + voc = base+"зе" ; g = Masc - }; - _ => error "Can't apply paradigm mkN037" - } ; + } ; mkN038 : Str -> N ; mkN038 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => base_1+"е" ; - Pl => nonExist - } ; + voc = base+"е" ; g = Masc }; - _ => error "Can't apply paradigm mkN038" - } ; mkN039 : Str -> N ; mkN039 base = @@ -1514,10 +1364,7 @@ mkN039 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN039" @@ -1553,10 +1400,7 @@ mkN040 base = Pl => base_1+"й"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN040" @@ -1592,10 +1436,7 @@ mkN041 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN041" @@ -1603,81 +1444,69 @@ mkN041 base = mkN042 : Str -> N ; mkN042 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"аў" + Sg => base+"у" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN042" - } ; mkN043 : Str -> N ; mkN043 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"аў" + Sg => base+"у" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc - }; - _ => error "Can't apply paradigm mkN043" - } ; + } ; mkN044 : Str -> N ; mkN044 base = @@ -1709,10 +1538,7 @@ mkN044 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN044" @@ -1720,81 +1546,69 @@ mkN044 base = mkN045 : Str -> N ; mkN045 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"аў" + Sg => base+"у" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN045" - } ; mkN046 : Str -> N ; mkN046 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN046" - } ; mkN047 : Str -> N ; mkN047 base = @@ -1826,10 +1640,7 @@ mkN047 base = Pl => base_1+"а"+base_2+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN047" @@ -1865,10 +1676,7 @@ mkN048 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN048" @@ -1904,10 +1712,7 @@ mkN049 base = Pl => base_1+"зьямі" } } ; - Voc = table { - Sg => base_1+"жа" ; - Pl => nonExist - } ; + voc = base_1+"жа" ; g = Masc }; _ => error "Can't apply paradigm mkN049" @@ -1915,42 +1720,36 @@ mkN049 base = mkN050 : Str -> N ; mkN050 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN050" - } ; mkN051 : Str -> N ; mkN051 base = @@ -1982,10 +1781,7 @@ mkN051 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN051" @@ -2021,10 +1817,7 @@ mkN052 base = Pl => base_1+"я"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN052" @@ -2060,10 +1853,7 @@ mkN053 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN053" @@ -2099,10 +1889,7 @@ mkN054 base = Pl => base_1+"а"+base_2+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN054" @@ -2138,10 +1925,7 @@ mkN055 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN055" @@ -2177,10 +1961,7 @@ mkN056 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN056" @@ -2216,10 +1997,7 @@ mkN057 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN057" @@ -2255,10 +2033,7 @@ mkN058 base = Pl => "і"+base_1+"ь"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN058" @@ -2294,10 +2069,7 @@ mkN059 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN059" @@ -2333,10 +2105,7 @@ mkN060 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN060" @@ -2344,120 +2113,102 @@ mkN060 base = mkN061 : Str -> N ; mkN061 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" --guessed + Sg => base ; + Pl => base+"і" --guessed } ; Acc => table { - Sg => base_1 ; --guessed - Pl => base_1+"і" --guessed + Sg => base ; --guessed + Pl => base+"і" --guessed } ; Dat => table { - Sg => base_1+"у" ; --guessed - Pl => base_1+"ам" --guessed + Sg => base+"у" ; --guessed + Pl => base+"ам" --guessed } ; Gen => table { - Sg => base_1+"а" ; --guessed - Pl => base_1+"оў" --guessed + Sg => base+"а" ; --guessed + Pl => base+"оў" --guessed } ; Loc => table { - Sg => base_1+"у" ; --guessed - Pl => base_1+"ах" --guessed + Sg => base+"у" ; --guessed + Pl => base+"ах" --guessed } ; Instr => table { - Sg => base_1+"ом" ; --guessed - Pl => base_1+"амі" --guessed + Sg => base+"ом" ; --guessed + Pl => base+"амі" --guessed } } ; - Voc = table { - Sg => base_1+"у" ; --guessed - Pl => nonExist - } ; + voc = base+"у" ; --guessed ; g = Neuter }; - _ => error "Can't apply paradigm mkN061" - } ; mkN062 : Str -> N ; mkN062 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN062" - } ; mkN063 : Str -> N ; mkN063 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN063" - } ; mkN064 : Str -> N ; mkN064 base = @@ -2489,10 +2240,7 @@ mkN064 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN064" @@ -2528,10 +2276,7 @@ mkN065 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN065" @@ -2567,10 +2312,7 @@ mkN066 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN066" @@ -2606,10 +2348,7 @@ mkN067 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN067" @@ -2645,10 +2384,7 @@ mkN068 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN068" @@ -2684,10 +2420,7 @@ mkN069 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN069" @@ -2723,10 +2456,7 @@ mkN070 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN070" @@ -2734,42 +2464,36 @@ mkN070 base = mkN071 : Str -> N ; mkN071 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; + Sg => base ; Pl => nonExist } ; Acc => table { - Sg => base_1 ; + Sg => base ; Pl => nonExist } ; Dat => table { - Sg => base_1+"у" ; + Sg => base+"у" ; Pl => nonExist } ; Gen => table { - Sg => base_1+"у" ; + Sg => base+"у" ; Pl => nonExist } ; Loc => table { - Sg => base_1+"ы" ; + Sg => base+"ы" ; Pl => nonExist } ; Instr => table { - Sg => base_1+"ом" ; + Sg => base+"ом" ; Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN071" - } ; mkN072 : Str -> N ; mkN072 base = @@ -2801,10 +2525,7 @@ mkN072 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN072" @@ -2840,10 +2561,7 @@ mkN073 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN073" @@ -2879,10 +2597,7 @@ mkN074 base = Pl => base_1+"ымі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN074" @@ -2918,10 +2633,7 @@ mkN075 base = Pl => base_1+base_2+"нямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN075" @@ -2957,10 +2669,7 @@ mkN076 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN076" @@ -2996,10 +2705,7 @@ mkN077 base = Pl => base_1+"ягамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN077" @@ -3035,10 +2741,7 @@ mkN078 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN078" @@ -3074,10 +2777,7 @@ mkN079 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN079" @@ -3113,10 +2813,7 @@ mkN080 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN080" @@ -3124,81 +2821,69 @@ mkN080 base = mkN081 : Str -> N ; mkN081 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"ах" + Sg => base+"зе" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN081" - } ; mkN082 : Str -> N ; mkN082 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"оў" + Sg => base+"у" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"ах" + Sg => base+"зе" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN082" - } ; mkN083 : Str -> N ; mkN083 base = @@ -3230,10 +2915,7 @@ mkN083 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN083" @@ -3241,81 +2923,69 @@ mkN083 base = mkN084 : Str -> N ; mkN084 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN084" - } ; mkN085 : Str -> N ; mkN085 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"ах" + Sg => base+"зе" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN085" - } ; mkN086 : Str -> N ; mkN086 base = @@ -3347,10 +3017,7 @@ mkN086 base = Pl => base_1+"атамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN086" @@ -3386,10 +3053,7 @@ mkN087 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN087" @@ -3397,42 +3061,36 @@ mkN087 base = mkN088 : Str -> N ; mkN088 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" --guessed + Sg => base ; + Pl => base+"і" --guessed } ; Acc => table { - Sg => base_1 ; --guessed - Pl => base_1+"і" --guessed + Sg => base ; --guessed + Pl => base+"і" --guessed } ; Dat => table { - Sg => base_1+"у" ; --guessed - Pl => base_1+"ам" --guessed + Sg => base+"у" ; --guessed + Pl => base+"ам" --guessed } ; Gen => table { - Sg => base_1+"а" ; --guessed - Pl => base_1+"оў" --guessed + Sg => base+"а" ; --guessed + Pl => base+"оў" --guessed } ; Loc => table { - Sg => base_1+"у" ; --guessed - Pl => base_1+"ах" --guessed + Sg => base+"у" ; --guessed + Pl => base+"ах" --guessed } ; Instr => table { - Sg => base_1+"ом" ; --guessed - Pl => base_1+"амі" --guessed + Sg => base+"ом" ; --guessed + Pl => base+"амі" --guessed } } ; - Voc = table { - Sg => base_1+"у" ; --guessed - Pl => nonExist - } ; + voc = base+"у" ; --guessed g = Fem }; - _ => error "Can't apply paradigm mkN088" - } ; mkN089 : Str -> N ; mkN089 base = @@ -3464,10 +3122,7 @@ mkN089 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN089" @@ -3475,42 +3130,36 @@ mkN089 base = mkN090 : Str -> N ; mkN090 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN090" - } ; mkN091 : Str -> N ; mkN091 base = @@ -3542,10 +3191,7 @@ mkN091 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN091" @@ -3581,10 +3227,7 @@ mkN092 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN092" @@ -3620,10 +3263,7 @@ mkN093 base = Pl => base_1+"я"+base_2+"ёнамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN093" @@ -3659,10 +3299,7 @@ mkN094 base = Pl => base_1+"ая"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN094" @@ -3670,42 +3307,36 @@ mkN094 base = mkN095 : Str -> N ; mkN095 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } ; Acc => table { - Sg => base_1 ; --guessed - Pl => base_1 --guessed + Sg => base ; --guessed + Pl => base --guessed } ; Dat => table { - Sg => base_1 ; --guessed - Pl => base_1 --guessed + Sg => base ; --guessed + Pl => base --guessed } ; Gen => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } ; Loc => table { - Sg => base_1 ; --guessed - Pl => base_1 --guessed + Sg => base ; --guessed + Pl => base --guessed } ; Instr => table { - Sg => base_1 ; --guessed - Pl => base_1 --guessed + Sg => base ; --guessed + Pl => base --guessed } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; - _ => error "Can't apply paradigm mkN095" - } ; mkN096 : Str -> N ; mkN096 base = @@ -3737,10 +3368,7 @@ mkN096 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN096" @@ -3776,10 +3404,7 @@ mkN097 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN097" @@ -3815,10 +3440,7 @@ mkN098 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN098" @@ -3826,42 +3448,36 @@ mkN098 base = mkN099 : Str -> N ; mkN099 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" --guessed + Sg => base ; + Pl => base+"і" --guessed } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"і" --guessed + Sg => base ; + Pl => base+"і" --guessed } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" --guessed + Sg => base+"у" ; + Pl => base+"ам" --guessed } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" --guessed + Sg => base+"а" ; + Pl => base+"оў" --guessed } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" --guessed + Sg => base+"у" ; + Pl => base+"ах" --guessed } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" --guessed + Sg => base+"ом" ; + Pl => base+"амі" --guessed } } ; - Voc = table { - Sg => base_1+"у" ; --guessed - Pl => nonExist - } ; + voc = base+"у" ; --guessed g = Masc }; - _ => error "Can't apply paradigm mkN099" - } ; mkN100 : Str -> N ; mkN100 base = @@ -3893,10 +3509,7 @@ mkN100 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN100" @@ -3932,10 +3545,7 @@ mkN101 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN101" @@ -3971,10 +3581,7 @@ mkN102 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN102" @@ -4010,10 +3617,7 @@ mkN103 base = Pl => base_1+"а"+base_2+"цямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN103" @@ -4049,10 +3653,7 @@ mkN104 base = Pl => base_1+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN104" @@ -4088,10 +3689,7 @@ mkN105 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN105" @@ -4127,10 +3725,7 @@ mkN106 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN106" @@ -4166,10 +3761,7 @@ mkN107 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN107" @@ -4205,10 +3797,7 @@ mkN108 base = Pl => base_1+"й"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN108" @@ -4244,10 +3833,7 @@ mkN109 base = Pl => "і"+base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN109" @@ -4283,10 +3869,7 @@ mkN110 base = Pl => base_1+"я"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN110" @@ -4322,10 +3905,7 @@ mkN111 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN111" @@ -4361,10 +3941,7 @@ mkN112 base = Pl => base_1+"о"+base_2+"ьмі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN112" @@ -4372,42 +3949,36 @@ mkN112 base = mkN113 : Str -> N ; mkN113 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"оў" + Sg => base+"у" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN113" - } ; mkN114 : Str -> N ; mkN114 base = @@ -4439,10 +4010,7 @@ mkN114 base = Pl => base_1+"хамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN114" @@ -4478,10 +4046,7 @@ mkN115 base = Pl => base_1+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN115" @@ -4517,10 +4082,7 @@ mkN116 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN116" @@ -4556,10 +4118,7 @@ mkN117 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN117" @@ -4595,10 +4154,7 @@ mkN118 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN118" @@ -4634,10 +4190,7 @@ mkN119 base = Pl => base_1+"атамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN119" @@ -4645,42 +4198,36 @@ mkN119 base = mkN120 : Str -> N ; mkN120 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; --guessed - Pl => base_1+"аў" --guessed + Sg => base+"а" ; --guessed + Pl => base+"аў" --guessed } ; Dat => table { - Sg => base_1+"у" ; --guessed - Pl => base_1+"ам" --guessed + Sg => base+"у" ; --guessed + Pl => base+"ам" --guessed } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"е" ; --guessed - Pl => base_1+"ах" --guessed + Sg => base+"е" ; --guessed + Pl => base+"ах" --guessed } ; Instr => table { - Sg => base_1+"ам" ; --guessed - Pl => base_1+"амі" --guessed + Sg => base+"ам" ; --guessed + Pl => base+"амі" --guessed } } ; - Voc = table { - Sg => base_1+"зе" ; --guessed - Pl => nonExist - } ; + voc = base+"зе" ; --guessed g = Masc }; - _ => error "Can't apply paradigm mkN120" - } ; mkN121 : Str -> N ; mkN121 base = @@ -4712,10 +4259,7 @@ mkN121 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN121" @@ -4751,10 +4295,7 @@ mkN122 base = Pl => base_1+"ь"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN122" @@ -4790,10 +4331,7 @@ mkN123 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN123" @@ -4829,10 +4367,7 @@ mkN124 base = Pl => base_1+"йкамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN124" @@ -4868,10 +4403,7 @@ mkN125 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN125" @@ -4907,10 +4439,7 @@ mkN126 base = Pl => base_1+"экамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN126" @@ -4946,10 +4475,7 @@ mkN127 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN127" @@ -4985,10 +4511,7 @@ mkN128 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN128" @@ -5024,10 +4547,7 @@ mkN129 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN129" @@ -5063,10 +4583,7 @@ mkN130 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN130" @@ -5102,10 +4619,7 @@ mkN131 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN131" @@ -5141,10 +4655,7 @@ mkN132 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN132" @@ -5180,10 +4691,7 @@ mkN133 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN133" @@ -5219,10 +4727,7 @@ mkN134 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN134" @@ -5258,10 +4763,7 @@ mkN135 base = Pl => base_1+"ё"+base_2+"т"+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN135" @@ -5297,10 +4799,7 @@ mkN136 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN136" @@ -5336,10 +4835,7 @@ mkN137 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN137" @@ -5375,10 +4871,7 @@ mkN138 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN138" @@ -5414,10 +4907,7 @@ mkN139 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN139" @@ -5453,10 +4943,7 @@ mkN140 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN140" @@ -5492,10 +4979,7 @@ mkN141 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN141" @@ -5503,42 +4987,36 @@ mkN141 base = mkN142 : Str -> N ; mkN142 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"зі" + Sg => base ; + Pl => base+"зі" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"зяў" + Sg => base+"а" ; + Pl => base+"зяў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"зям" + Sg => base+"у" ; + Pl => base+"зям" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"зяў" + Sg => base+"а" ; + Pl => base+"зяў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"зях" + Sg => base+"зе" ; + Pl => base+"зях" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"зямі" + Sg => base+"ам" ; + Pl => base+"зямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN142" - } ; mkN143 : Str -> N ; mkN143 base = @@ -5570,10 +5048,7 @@ mkN143 base = Pl => base_1+"ачамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN143" @@ -5609,10 +5084,7 @@ mkN144 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN144" @@ -5648,10 +5120,7 @@ mkN145 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN145" @@ -5687,10 +5156,7 @@ mkN146 base = Pl => base_1+"овамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN146" @@ -5726,10 +5192,7 @@ mkN147 base = Pl => base_1+"я"+base_2+"ёсамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN147" @@ -5765,10 +5228,7 @@ mkN148 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN148" @@ -5804,10 +5264,7 @@ mkN149 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN149" @@ -5843,10 +5300,7 @@ mkN150 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN150" @@ -5882,10 +5336,7 @@ mkN151 base = Pl => base_1+"й"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN151" @@ -5921,10 +5372,7 @@ mkN152 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN152" @@ -5960,10 +5408,7 @@ mkN153 base = Pl => base_1+"ятамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN153" @@ -5999,10 +5444,7 @@ mkN154 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN154" @@ -6038,10 +5480,7 @@ mkN155 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN155" @@ -6077,10 +5516,7 @@ mkN156 base = Pl => base_1+"овамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN156" @@ -6116,10 +5552,7 @@ mkN157 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN157" @@ -6155,10 +5588,7 @@ mkN158 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN158" @@ -6194,10 +5624,7 @@ mkN159 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN159" @@ -6233,10 +5660,7 @@ mkN160 base = Pl => base_1+"йкамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN160" @@ -6272,10 +5696,7 @@ mkN161 base = Pl => base_1+"ўкамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN161" @@ -6311,10 +5732,7 @@ mkN162 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN162" @@ -6350,10 +5768,7 @@ mkN163 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN163" @@ -6389,10 +5804,7 @@ mkN164 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN164" @@ -6428,10 +5840,7 @@ mkN165 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN165" @@ -6467,10 +5876,7 @@ mkN166 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN166" @@ -6506,10 +5912,7 @@ mkN167 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN167" @@ -6517,42 +5920,36 @@ mkN167 base = mkN168 : Str -> N ; mkN168 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN168" - } ; mkN169 : Str -> N ; mkN169 base = @@ -6584,10 +5981,7 @@ mkN169 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN169" @@ -6623,10 +6017,7 @@ mkN170 base = Pl => base_1+"е"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN170" @@ -6662,10 +6053,7 @@ mkN171 base = Pl => base_1+"юдзьмі" } } ; - Voc = table { - Sg => "ча"+base_1+"авеча" ; - Pl => nonExist - } ; + voc = "ча"+base_1+"авеча" ; g = Masc }; _ => error "Can't apply paradigm mkN171" @@ -6701,10 +6089,7 @@ mkN172 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN172" @@ -6740,10 +6125,7 @@ mkN173 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN173" @@ -6779,10 +6161,7 @@ mkN174 base = Pl => base_1+"я"+base_2+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN174" @@ -6818,10 +6197,7 @@ mkN175 base = Pl => base_1+"ў"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN175" @@ -6857,10 +6233,7 @@ mkN176 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN176" @@ -6896,10 +6269,7 @@ mkN177 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN177" @@ -6935,10 +6305,7 @@ mkN178 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN178" @@ -6974,10 +6341,7 @@ mkN179 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN179" @@ -7013,10 +6377,7 @@ mkN180 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN180" @@ -7052,10 +6413,7 @@ mkN181 base = Pl => base_1+"ымі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN181" @@ -7091,10 +6449,7 @@ mkN182 base = Pl => base_1+"э"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN182" @@ -7130,10 +6485,7 @@ mkN183 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN183" @@ -7141,42 +6493,36 @@ mkN183 base = mkN184 : Str -> N ; mkN184 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"ы" ; - Pl => base_1+"ам" + Sg => base+"ы" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"ы" ; - Pl => base_1+"аў" + Sg => base+"ы" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"чу" ; - Pl => base_1+"амі" + Sg => base+"чу" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; - _ => error "Can't apply paradigm mkN184" - } ; mkN185 : Str -> N ; mkN185 base = @@ -7208,10 +6554,7 @@ mkN185 base = Pl => base_1+"ё"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN185" @@ -7247,10 +6590,7 @@ mkN186 base = Pl => base_1+"ят"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN186" @@ -7286,10 +6626,7 @@ mkN187 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN187" @@ -7325,10 +6662,7 @@ mkN188 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN188" @@ -7364,10 +6698,7 @@ mkN189 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN189" @@ -7403,10 +6734,7 @@ mkN190 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN190" @@ -7442,10 +6770,7 @@ mkN191 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => base_1+"ча" ; - Pl => nonExist - } ; + voc = base_1+"ча" ; g = Masc }; _ => error "Can't apply paradigm mkN191" @@ -7481,10 +6806,7 @@ mkN192 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN192" @@ -7492,42 +6814,36 @@ mkN192 base = mkN193 : Str -> N ; mkN193 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"ах" + Sg => base+"зе" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN193" - } ; mkN194 : Str -> N ; mkN194 base = @@ -7559,10 +6875,7 @@ mkN194 base = Pl => base_1+"агамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN194" @@ -7570,42 +6883,36 @@ mkN194 base = mkN195 : Str -> N ; mkN195 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN195" - } ; mkN196 : Str -> N ; mkN196 base = @@ -7637,10 +6944,7 @@ mkN196 base = Pl => base_1+"ькамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN196" @@ -7676,10 +6980,7 @@ mkN197 base = Pl => base_1+"ькамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN197" @@ -7715,10 +7016,7 @@ mkN198 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN198" @@ -7754,10 +7052,7 @@ mkN199 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN199" @@ -7793,10 +7088,7 @@ mkN200 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN200" @@ -7832,10 +7124,7 @@ mkN201 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN201" @@ -7871,10 +7160,7 @@ mkN202 base = Pl => base_1+"я"+base_2+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN202" @@ -7910,10 +7196,7 @@ mkN203 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN203" @@ -7949,10 +7232,7 @@ mkN204 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN204" @@ -7988,10 +7268,7 @@ mkN205 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN205" @@ -8027,10 +7304,7 @@ mkN206 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN206" @@ -8066,10 +7340,7 @@ mkN207 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN207" @@ -8105,10 +7376,7 @@ mkN208 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN208" @@ -8144,10 +7412,7 @@ mkN209 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN209" @@ -8183,10 +7448,7 @@ mkN210 base = Pl => base_1+"імі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN210" @@ -8222,10 +7484,7 @@ mkN211 base = Pl => base_1+"агамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN211" @@ -8261,10 +7520,7 @@ mkN212 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN212" @@ -8300,10 +7556,7 @@ mkN213 base = Pl => base_1+"ё"+base_2+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN213" @@ -8311,42 +7564,36 @@ mkN213 base = mkN214 : Str -> N ; mkN214 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN214" - } ; mkN215 : Str -> N ; mkN215 base = @@ -8378,10 +7625,7 @@ mkN215 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN215" @@ -8417,10 +7661,7 @@ mkN216 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN216" @@ -8456,10 +7697,7 @@ mkN217 base = Pl => base_1+"ўкамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN217" @@ -8495,10 +7733,7 @@ mkN218 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN218" @@ -8534,10 +7769,7 @@ mkN219 base = Pl => base_1+"цамі" } } ; - Voc = table { - Sg => base_1+"ча" ; - Pl => nonExist - } ; + voc = base_1+"ча" ; g = Masc }; _ => error "Can't apply paradigm mkN219" @@ -8573,10 +7805,7 @@ mkN220 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN220" @@ -8612,10 +7841,7 @@ mkN221 base = Pl => base_1+"охамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN221" @@ -8651,10 +7877,7 @@ mkN222 base = Pl => "во"+base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN222" @@ -8690,10 +7913,7 @@ mkN223 base = Pl => "а"+base_1+"ё"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN223" @@ -8729,10 +7949,7 @@ mkN224 base = Pl => base_1+"ё"+base_2+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN224" @@ -8768,10 +7985,7 @@ mkN225 base = Pl => base_1+"е"+base_2+"ьмі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN225" @@ -8807,10 +8021,7 @@ mkN226 base = Pl => base_1+"е"+base_2+"'ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN226" @@ -8818,42 +8029,36 @@ mkN226 base = mkN227 : Str -> N ; mkN227 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; + Sg => base ; Pl => nonExist } ; Acc => table { - Sg => base_1 ; + Sg => base ; Pl => nonExist } ; Dat => table { - Sg => base_1+"ы" ; + Sg => base+"ы" ; Pl => nonExist } ; Gen => table { - Sg => base_1+"ы" ; + Sg => base+"ы" ; Pl => nonExist } ; Loc => table { - Sg => base_1+"ы" ; + Sg => base+"ы" ; Pl => nonExist } ; Instr => table { - Sg => base_1+"'ю" ; + Sg => base+"'ю" ; Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; - _ => error "Can't apply paradigm mkN227" - } ; mkN228 : Str -> N ; mkN228 base = @@ -8885,10 +8090,7 @@ mkN228 base = Pl => base_1+"шамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN228" @@ -8924,10 +8126,7 @@ mkN229 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN229" @@ -8963,10 +8162,7 @@ mkN230 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN230" @@ -9002,10 +8198,7 @@ mkN231 base = Pl => base_1+"ё"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN231" @@ -9041,10 +8234,7 @@ mkN232 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN232" @@ -9080,10 +8270,7 @@ mkN233 base = Pl => "а"+base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN233" @@ -9091,42 +8278,36 @@ mkN233 base = mkN234 : Str -> N ; mkN234 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } ; Acc => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } ; Dat => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } ; Gen => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } ; Loc => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } ; Instr => table { - Sg => base_1 ; - Pl => base_1 + Sg => base ; + Pl => base } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; - _ => error "Can't apply paradigm mkN234" - } ; mkN235 : Str -> N ; mkN235 base = @@ -9158,10 +8339,7 @@ mkN235 base = Pl => base_1+"й"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN235" @@ -9197,10 +8375,7 @@ mkN236 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN236" @@ -9236,10 +8411,7 @@ mkN237 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN237" @@ -9275,10 +8447,7 @@ mkN238 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN238" @@ -9314,10 +8483,7 @@ mkN239 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN239" @@ -9353,10 +8519,7 @@ mkN240 base = Pl => base_1+"ў"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN240" @@ -9392,10 +8555,7 @@ mkN241 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN241" @@ -9431,10 +8591,7 @@ mkN242 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN242" @@ -9470,10 +8627,7 @@ mkN243 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN243" @@ -9509,10 +8663,7 @@ mkN244 base = Pl => base_1+"ьмі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN244" @@ -9548,10 +8699,7 @@ mkN245 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN245" @@ -9587,10 +8735,7 @@ mkN246 base = Pl => base_1+"ё"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN246" @@ -9626,10 +8771,7 @@ mkN247 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN247" @@ -9665,10 +8807,7 @@ mkN248 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN248" @@ -9704,10 +8843,7 @@ mkN249 base = Pl => base_1+"о"+base_2+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN249" @@ -9743,10 +8879,7 @@ mkN250 base = Pl => base_1+"йцамі" } } ; - Voc = table { - Sg => "войч"+base_1 ; - Pl => nonExist - } ; + voc = "войч"+base_1 ; g = Masc }; _ => error "Can't apply paradigm mkN250" @@ -9782,10 +8915,7 @@ mkN251 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN251" @@ -9821,10 +8951,7 @@ mkN252 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN252" @@ -9860,10 +8987,7 @@ mkN253 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => base_1+"е"+base_2+"у" ; - Pl => nonExist - } ; + voc = base_1+"е"+base_2+"у" ; g = Masc }; _ => error "Can't apply paradigm mkN253" @@ -9899,10 +9023,7 @@ mkN254 base = Pl => base_1+"ё"+base_2+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN254" @@ -9938,10 +9059,7 @@ mkN255 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN255" @@ -9977,10 +9095,7 @@ mkN256 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN256" @@ -10016,10 +9131,7 @@ mkN257 base = Pl => base_1+"ё"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN257" @@ -10055,10 +9167,7 @@ mkN258 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN258" @@ -10094,10 +9203,7 @@ mkN259 base = Pl => base_1+"атамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN259" @@ -10133,10 +9239,7 @@ mkN260 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN260" @@ -10172,10 +9275,7 @@ mkN261 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN261" @@ -10211,10 +9311,7 @@ mkN262 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN262" @@ -10250,10 +9347,7 @@ mkN263 base = Pl => base_1+"еямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN263" @@ -10289,10 +9383,7 @@ mkN264 base = Pl => "і"+base_1+"ьвамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN264" @@ -10328,10 +9419,7 @@ mkN265 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN265" @@ -10367,10 +9455,7 @@ mkN266 base = Pl => base_1+"э"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN266" @@ -10406,10 +9491,7 @@ mkN267 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN267" @@ -10445,10 +9527,7 @@ mkN268 base = Pl => "а"+base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN268" @@ -10484,10 +9563,7 @@ mkN269 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN269" @@ -10523,10 +9599,7 @@ mkN270 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN270" @@ -10562,10 +9635,7 @@ mkN271 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN271" @@ -10601,10 +9671,7 @@ mkN272 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN272" @@ -10640,10 +9707,7 @@ mkN273 base = Pl => base_1+"й"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN273" @@ -10679,10 +9743,7 @@ mkN274 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN274" @@ -10718,10 +9779,7 @@ mkN275 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN275" @@ -10757,10 +9815,7 @@ mkN276 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN276" @@ -10796,10 +9851,7 @@ mkN277 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN277" @@ -10835,10 +9887,7 @@ mkN278 base = Pl => base_1+"ё"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN278" @@ -10874,10 +9923,7 @@ mkN279 base = Pl => base_1+"ў"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN279" @@ -10913,10 +9959,7 @@ mkN280 base = Pl => base_1+"лямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN280" @@ -10952,10 +9995,7 @@ mkN281 base = Pl => base_1+"'ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN281" @@ -10991,10 +10031,7 @@ mkN282 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN282" @@ -11030,10 +10067,7 @@ mkN283 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN283" @@ -11069,10 +10103,7 @@ mkN284 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN284" @@ -11108,10 +10139,7 @@ mkN285 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN285" @@ -11147,10 +10175,7 @@ mkN286 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN286" @@ -11158,42 +10183,36 @@ mkN286 base = mkN287 : Str -> N ; mkN287 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1 + Sg => base+"а" ; + Pl => base } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1 + Sg => base+"а" ; + Pl => base } ; Loc => table { - Sg => base_1+"е" ; - Pl => base_1+"ах" + Sg => base+"е" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN287" - } ; mkN288 : Str -> N ; mkN288 base = @@ -11225,10 +10244,7 @@ mkN288 base = Pl => base_1+"я"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN288" @@ -11264,10 +10280,7 @@ mkN289 base = Pl => base_1+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN289" @@ -11303,10 +10316,7 @@ mkN290 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN290" @@ -11342,10 +10352,7 @@ mkN291 base = Pl => base_1+"ымі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN291" @@ -11381,10 +10388,7 @@ mkN292 base = Pl => base_1+"амі" --guessed } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN292" @@ -11420,10 +10424,7 @@ mkN293 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN293" @@ -11459,10 +10460,7 @@ mkN294 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN294" @@ -11498,10 +10496,7 @@ mkN295 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN295" @@ -11537,10 +10532,7 @@ mkN296 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN296" @@ -11576,10 +10568,7 @@ mkN297 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN297" @@ -11615,10 +10604,7 @@ mkN298 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN298" @@ -11654,10 +10640,7 @@ mkN299 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN299" @@ -11693,10 +10676,7 @@ mkN300 base = Pl => base_1+"ў"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN300" @@ -11732,10 +10712,7 @@ mkN301 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN301" @@ -11771,10 +10748,7 @@ mkN302 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN302" @@ -11810,10 +10784,7 @@ mkN303 base = Pl => "во"+base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN303" @@ -11849,10 +10820,7 @@ mkN304 base = Pl => base_1+"хамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN304" @@ -11888,10 +10856,7 @@ mkN305 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN305" @@ -11899,42 +10864,36 @@ mkN305 base = mkN306 : Str -> N ; mkN306 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"эй" + Sg => base ; + Pl => base+"эй" } ; Dat => table { - Sg => base_1+"ы" ; - Pl => base_1+"ам" + Sg => base+"ы" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"ы" ; - Pl => base_1+"эй" + Sg => base+"ы" ; + Pl => base+"эй" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"шу" ; - Pl => base_1+"амі" + Sg => base+"шу" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; - _ => error "Can't apply paradigm mkN306" - } ; mkN307 : Str -> N ; mkN307 base = @@ -11966,10 +10925,7 @@ mkN307 base = Pl => base_1+"ўямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN307" @@ -12005,10 +10961,7 @@ mkN308 base = Pl => base_1+"ь"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN308" @@ -12044,10 +10997,7 @@ mkN309 base = Pl => base_1+"хамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN309" @@ -12083,10 +11033,7 @@ mkN310 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN310" @@ -12122,10 +11069,7 @@ mkN311 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN311" @@ -12161,10 +11105,7 @@ mkN312 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN312" @@ -12172,42 +11113,36 @@ mkN312 base = mkN313 : Str -> N ; mkN313 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"ай" + Sg => base ; + Pl => base+"ай" } ; Dat => table { - Sg => base_1+"ы" ; - Pl => base_1+"ам" + Sg => base+"ы" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"ы" ; - Pl => base_1+"ай" + Sg => base+"ы" ; + Pl => base+"ай" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"шу" ; - Pl => base_1+"амі" + Sg => base+"шу" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; - _ => error "Can't apply paradigm mkN313" - } ; mkN314 : Str -> N ; mkN314 base = @@ -12239,10 +11174,7 @@ mkN314 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN314" @@ -12278,10 +11210,7 @@ mkN315 base = Pl => base_1+"о"+base_2+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN315" @@ -12317,10 +11246,7 @@ mkN316 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN316" @@ -12356,10 +11282,7 @@ mkN317 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN317" @@ -12395,10 +11318,7 @@ mkN318 base = Pl => base_1+"а"+base_2+"а"+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN318" @@ -12434,10 +11354,7 @@ mkN319 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN319" @@ -12473,10 +11390,7 @@ mkN320 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN320" @@ -12512,10 +11426,7 @@ mkN321 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN321" @@ -12551,10 +11462,7 @@ mkN322 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN322" @@ -12590,10 +11498,7 @@ mkN323 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN323" @@ -12629,10 +11534,7 @@ mkN324 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN324" @@ -12668,10 +11570,7 @@ mkN325 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN325" @@ -12707,10 +11606,7 @@ mkN326 base = Pl => base_1+"аў"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN326" @@ -12746,10 +11642,7 @@ mkN327 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN327" @@ -12785,10 +11678,7 @@ mkN328 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN328" @@ -12824,10 +11714,7 @@ mkN329 base = Pl => base_1+"я"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN329" @@ -12863,10 +11750,7 @@ mkN330 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN330" @@ -12902,10 +11786,7 @@ mkN331 base = Pl => base_1+"д"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN331" @@ -12941,10 +11822,7 @@ mkN332 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN332" @@ -12952,81 +11830,69 @@ mkN332 base = mkN333 : Str -> N ; mkN333 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN333" - } ; mkN334 : Str -> N ; mkN334 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"аў" + Sg => base+"а" ; + Pl => base+"аў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN334" - } ; mkN335 : Str -> N ; mkN335 base = @@ -13058,10 +11924,7 @@ mkN335 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN335" @@ -13097,10 +11960,7 @@ mkN336 base = Pl => base_1+"о"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN336" @@ -13136,10 +11996,7 @@ mkN337 base = Pl => base_1+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN337" @@ -13175,10 +12032,7 @@ mkN338 base = Pl => base_1+base_2+"шотамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN338" @@ -13214,10 +12068,7 @@ mkN339 base = Pl => base_1+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN339" @@ -13253,10 +12104,7 @@ mkN340 base = Pl => base_1+"ё"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN340" @@ -13292,10 +12140,7 @@ mkN341 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN341" @@ -13331,10 +12176,7 @@ mkN342 base = Pl => base_1+"а"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN342" @@ -13370,10 +12212,7 @@ mkN343 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN343" @@ -13409,10 +12248,7 @@ mkN344 base = Pl => base_1+"э"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN344" @@ -13448,10 +12284,7 @@ mkN345 base = Pl => base_1+"окамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN345" @@ -13459,42 +12292,36 @@ mkN345 base = mkN346 : Str -> N ; mkN346 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"ы" ; - Pl => base_1+"ах" + Sg => base+"ы" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN346" - } ; mkN347 : Str -> N ; mkN347 base = @@ -13526,10 +12353,7 @@ mkN347 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN347" @@ -13565,10 +12389,7 @@ mkN348 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN348" @@ -13604,10 +12425,7 @@ mkN349 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN349" @@ -13643,10 +12461,7 @@ mkN350 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN350" @@ -13682,10 +12497,7 @@ mkN351 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN351" @@ -13721,10 +12533,7 @@ mkN352 base = Pl => base_1+"а"+base_2+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN352" @@ -13760,10 +12569,7 @@ mkN353 base = Pl => base_1+"авамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN353" @@ -13799,10 +12605,7 @@ mkN354 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN354" @@ -13838,10 +12641,7 @@ mkN355 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN355" @@ -13877,10 +12677,7 @@ mkN356 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN356" @@ -13916,10 +12713,7 @@ mkN357 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN357" @@ -13955,10 +12749,7 @@ mkN358 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN358" @@ -13994,10 +12785,7 @@ mkN359 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN359" @@ -14033,10 +12821,7 @@ mkN360 base = Pl => base_1+"ёт"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN360" @@ -14072,10 +12857,7 @@ mkN361 base = Pl => base_1+"ымі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN361" @@ -14083,42 +12865,36 @@ mkN361 base = mkN362 : Str -> N ; mkN362 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; + Sg => base ; Pl => nonExist } ; Acc => table { - Sg => base_1 ; + Sg => base ; Pl => nonExist } ; Dat => table { - Sg => base_1+"ы" ; + Sg => base+"ы" ; Pl => nonExist } ; Gen => table { - Sg => base_1+"ы" ; + Sg => base+"ы" ; Pl => nonExist } ; Loc => table { - Sg => base_1+"ы" ; + Sg => base+"ы" ; Pl => nonExist } ; Instr => table { - Sg => base_1+"ай" ; + Sg => base+"ай" ; Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; - _ => error "Can't apply paradigm mkN362" - } ; mkN363 : Str -> N ; mkN363 base = @@ -14150,10 +12926,7 @@ mkN363 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN363" @@ -14189,10 +12962,7 @@ mkN364 base = Pl => base_1+"амі"+base_2+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN364" @@ -14228,10 +12998,7 @@ mkN365 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN365" @@ -14267,10 +13034,7 @@ mkN366 base = Pl => base_1+"ямі"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN366" @@ -14306,10 +13070,7 @@ mkN367 base = Pl => base_1+"т"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN367" @@ -14345,10 +13106,7 @@ mkN368 base = Pl => base_1+"ў"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN368" @@ -14384,10 +13142,7 @@ mkN369 base = Pl => base_1+"а"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN369" @@ -14423,10 +13178,7 @@ mkN370 base = Pl => base_1+"я"+base_2+"ё"+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN370" @@ -14462,10 +13214,7 @@ mkN371 base = Pl => base_1+"т"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN371" @@ -14501,10 +13250,7 @@ mkN372 base = Pl => base_1+"т"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN372" @@ -14540,10 +13286,7 @@ mkN373 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN373" @@ -14579,10 +13322,7 @@ mkN374 base = Pl => base_1+"отамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN374" @@ -14618,10 +13358,7 @@ mkN375 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN375" @@ -14657,10 +13394,7 @@ mkN376 base = Pl => base_1+"т"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN376" @@ -14696,10 +13430,7 @@ mkN377 base = Pl => base_1+"ў"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN377" @@ -14735,10 +13466,7 @@ mkN378 base = Pl => base_1+"е"+base_2+"ывямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN378" @@ -14774,10 +13502,7 @@ mkN379 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN379" @@ -14813,10 +13538,7 @@ mkN380 base = Pl => base_1+"а"+base_2+base_3+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN380" @@ -14852,10 +13574,7 @@ mkN381 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN381" @@ -14891,10 +13610,7 @@ mkN382 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN382" @@ -14930,10 +13646,7 @@ mkN383 base = Pl => base_1+"атамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN383" @@ -14969,10 +13682,7 @@ mkN384 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN384" @@ -15008,10 +13718,7 @@ mkN385 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN385" @@ -15047,10 +13754,7 @@ mkN386 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN386" @@ -15086,10 +13790,7 @@ mkN387 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN387" @@ -15125,10 +13826,7 @@ mkN388 base = Pl => base_1+"о"+base_2+base_3+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN388" @@ -15164,10 +13862,7 @@ mkN389 base = Pl => base_1+"явамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN389" @@ -15203,10 +13898,7 @@ mkN390 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN390" @@ -15242,10 +13934,7 @@ mkN391 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN391" @@ -15281,10 +13970,7 @@ mkN392 base = Pl => base_1+"ь"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN392" @@ -15320,10 +14006,7 @@ mkN393 base = Pl => base_1+"а"+base_2+"ёнамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN393" @@ -15359,10 +14042,7 @@ mkN394 base = Pl => base_1+"хамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN394" @@ -15398,10 +14078,7 @@ mkN395 base = Pl => "воў"+base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN395" @@ -15437,10 +14114,7 @@ mkN396 base = Pl => base_1+"хамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN396" @@ -15476,10 +14150,7 @@ mkN397 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN397" @@ -15515,10 +14186,7 @@ mkN398 base = Pl => base_1+"я"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN398" @@ -15554,10 +14222,7 @@ mkN399 base = Pl => base_1+"э"+base_2+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN399" @@ -15593,10 +14258,7 @@ mkN400 base = Pl => base_1+"а"+base_2+"я"+base_3+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN400" @@ -15632,10 +14294,7 @@ mkN401 base = Pl => "дзецьмі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN401" @@ -15671,10 +14330,7 @@ mkN402 base = Pl => base_1+"ў"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN402" @@ -15710,10 +14366,7 @@ mkN403 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN403" @@ -15721,42 +14374,36 @@ mkN403 base = mkN404 : Str -> N ; mkN404 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"ы" + Sg => base ; + Pl => base+"ы" } ; Acc => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"а" ; - Pl => base_1+"оў" + Sg => base+"а" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"зе" ; - Pl => base_1+"ах" + Sg => base+"зе" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ам" ; - Pl => base_1+"амі" + Sg => base+"ам" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => base_1+"зе" ; - Pl => nonExist - } ; + voc = base+"зе" ; g = Masc }; - _ => error "Can't apply paradigm mkN404" - } ; mkN405 : Str -> N ; mkN405 base = @@ -15788,10 +14435,7 @@ mkN405 base = Pl => base_1+"ь"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN405" @@ -15827,10 +14471,7 @@ mkN406 base = Pl => base_1+"э"+base_2+"гамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN406" @@ -15866,10 +14507,7 @@ mkN407 base = Pl => base_1+"ь"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN407" @@ -15905,10 +14543,7 @@ mkN408 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN408" @@ -15944,10 +14579,7 @@ mkN409 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN409" @@ -15983,10 +14615,7 @@ mkN410 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN410" @@ -16022,10 +14651,7 @@ mkN411 base = Pl => base_1+"нямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN411" @@ -16061,10 +14687,7 @@ mkN412 base = Pl => base_1+"ымі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN412" @@ -16100,10 +14723,7 @@ mkN413 base = Pl => nonExist } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN413" @@ -16139,10 +14759,7 @@ mkN414 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN414" @@ -16178,10 +14795,7 @@ mkN415 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN415" @@ -16217,10 +14831,7 @@ mkN416 base = Pl => base_1+"е"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN416" @@ -16256,10 +14867,7 @@ mkN417 base = Pl => base_1+"э"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN417" @@ -16295,10 +14903,7 @@ mkN418 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN418" @@ -16334,10 +14939,7 @@ mkN419 base = Pl => base_1+"аткамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN419" @@ -16373,10 +14975,7 @@ mkN420 base = Pl => base_1+"ў"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN420" @@ -16412,10 +15011,7 @@ mkN421 base = Pl => base_1+"я"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN421" @@ -16451,10 +15047,7 @@ mkN422 base = Pl => base_1+"я"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN422" @@ -16490,10 +15083,7 @@ mkN423 base = Pl => base_1+"вамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN423" @@ -16529,10 +15119,7 @@ mkN424 base = Pl => base_1+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN424" @@ -16568,10 +15155,7 @@ mkN425 base = Pl => base_1+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN425" @@ -16607,10 +15191,7 @@ mkN426 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN426" @@ -16646,10 +15227,7 @@ mkN427 base = Pl => base_1+"ымі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN427" @@ -16685,10 +15263,7 @@ mkN428 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN428" @@ -16724,10 +15299,7 @@ mkN429 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN429" @@ -16763,10 +15335,7 @@ mkN430 base = Pl => base_1+"й"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN430" @@ -16774,42 +15343,36 @@ mkN430 base = mkN431 : Str -> N ; mkN431 base = - case base of { - base_1 => lin N + lin N { s = table { Nom => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Acc => table { - Sg => base_1 ; - Pl => base_1+"і" + Sg => base ; + Pl => base+"і" } ; Dat => table { - Sg => base_1+"у" ; - Pl => base_1+"ам" + Sg => base+"у" ; + Pl => base+"ам" } ; Gen => table { - Sg => base_1+"у" ; - Pl => base_1+"оў" + Sg => base+"у" ; + Pl => base+"оў" } ; Loc => table { - Sg => base_1+"у" ; - Pl => base_1+"ах" + Sg => base+"у" ; + Pl => base+"ах" } ; Instr => table { - Sg => base_1+"ом" ; - Pl => base_1+"амі" + Sg => base+"ом" ; + Pl => base+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; - _ => error "Can't apply paradigm mkN431" - } ; mkN432 : Str -> N ; mkN432 base = @@ -16841,10 +15404,7 @@ mkN432 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN432" @@ -16880,10 +15440,7 @@ mkN433 base = Pl => base_1+"ятамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN433" @@ -16919,10 +15476,7 @@ mkN434 base = Pl => base_1+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN434" @@ -16958,10 +15512,7 @@ mkN435 base = Pl => base_1+"ў"+base_2+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN435" @@ -16997,10 +15548,7 @@ mkN436 base = Pl => base_1+"еямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN436" @@ -17036,10 +15584,7 @@ mkN437 base = Pl => base_1+"амі" --guessed } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN437" @@ -17075,10 +15620,7 @@ mkN438 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN438" @@ -17114,10 +15656,7 @@ mkN439 base = Pl => base_1+"тамі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN439" @@ -17153,10 +15692,7 @@ mkN440 base = Pl => base_1+"камі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN440" @@ -17192,10 +15728,7 @@ mkN441 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN441" @@ -17231,10 +15764,7 @@ mkN442 base = Pl => base_1+"о"+base_2+"ямі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN442" @@ -17270,10 +15800,7 @@ mkN443 base = Pl => base_1+"амі" --guessed } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN443" @@ -17309,10 +15836,7 @@ mkN444 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN444" @@ -17348,10 +15872,7 @@ mkN445 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN445" @@ -17387,10 +15908,7 @@ mkN446 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Neuter }; _ => error "Can't apply paradigm mkN446" @@ -17426,10 +15944,7 @@ mkN447 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Fem }; _ => error "Can't apply paradigm mkN447" @@ -17465,10 +15980,7 @@ mkN448 base = Pl => base_1+"амі" } } ; - Voc = table { - Sg => nonExist ; - Pl => nonExist - } ; + voc = base ; g = Masc }; _ => error "Can't apply paradigm mkN448" diff --git a/src/belarusian/ResBel.gf b/src/belarusian/ResBel.gf index ef7d8477..47aa5501 100644 --- a/src/belarusian/ResBel.gf +++ b/src/belarusian/ResBel.gf @@ -3,9 +3,9 @@ resource ResBel = { param Case = Nom | Acc | Dat | Gen | Loc | Instr ; param Number = Sg | Pl ; param Gender = Masc | Fem | Neuter ; -oper N = {s: Case => Number => Str; Voc: Number => Str; g: Gender} ; -- 2696 -oper mkN : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> N = - \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,g -> +oper Noun = {s: Case => Number => Str; voc: Str; g: Gender} ; -- 2696 +oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,g -> { s = table { Nom => table { Sg => f1 ; @@ -32,10 +32,7 @@ oper mkN : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> N = Pl => f12 } } ; - Voc = table { - Sg => f13 ; - Pl => f14 - } ; + voc = f13 ; g = g } ; From 4a0cc4ec40192398aa3442e940c3257be43871fa Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 26 Sep 2025 07:31:56 +0200 Subject: [PATCH 064/169] added linref for verbs and lincat for names --- src/belarusian/CatBel.gf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/belarusian/CatBel.gf b/src/belarusian/CatBel.gf index 7b1d64cd..9dd0d5f7 100644 --- a/src/belarusian/CatBel.gf +++ b/src/belarusian/CatBel.gf @@ -14,4 +14,8 @@ lincat CN = CommonNoun ; lincat AP = AdjPhrase ; lincat S = {s : Str} ; +lincat LN,SN,GN,PN = {s : Str} ; + +linref V,VV,V2,V3,V2A,V2S,V2Q,V2V = \v -> v.infinitive ; + } From 4bf528a429d52b95d2733d9285b3537b90a13b05 Mon Sep 17 00:00:00 2001 From: Hans Leiss Date: Sun, 28 Sep 2025 18:15:45 +0200 Subject: [PATCH 065/169] (Ger) Implemented QVP in Question, GenIP and GenModIP in Extend --- src/german/ExtendGer.gf | 7 ++++--- src/german/ExtraGer.gf | 2 -- src/german/QuestionGer.gf | 31 +++++++++++++++++++++++++++++++ src/german/RelativeGer.gf | 7 ++++--- 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/german/ExtendGer.gf b/src/german/ExtendGer.gf index a55a54a4..23f53bd1 100644 --- a/src/german/ExtendGer.gf +++ b/src/german/ExtendGer.gf @@ -3,7 +3,7 @@ concrete ExtendGer of Extend = CatGer ** ExtendFunctor - [ -- remove the default implementations of: - GenNP, GenRP, EmptyRelSlash, + GenNP, GenRP, EmptyRelSlash, GenIP, GenModIP, VPS, ListVPS, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, VPI, ListVPI, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, ICompAP, IAdvAdv, CompIQuant, PrepCN, @@ -37,11 +37,12 @@ concrete ExtendGer of Extend = } ; GenRP nu cn = { - s = \\gn,c => relPron ! gn ! Gen ++ cn.s ! Weak ! nu.n ! c ; + s = \\gn,c => relPron ! gn ! Gen ++ cn.s ! Strong ! nu.n ! c ; a = RAg nu.n P3 } ; - + GenIP ip = {s = \\gn,c => ip.s!Gen ; a = Strong} ; + GenModIP num ip cn = IdetCN (IdetQuant (GenIP ip) num) cn ; EmptyRelSlash slash = { s = \\m,t,a,p,gn => diff --git a/src/german/ExtraGer.gf b/src/german/ExtraGer.gf index e7586f5e..3aa14354 100644 --- a/src/german/ExtraGer.gf +++ b/src/german/ExtraGer.gf @@ -385,6 +385,4 @@ concrete ExtraGer of ExtraGerAbs = CatGer ** -- this function is not entirely satisfactory as largely -- though not entirely duplicating mkClause in ResGer - - } diff --git a/src/german/QuestionGer.gf b/src/german/QuestionGer.gf index 41bd48df..f5533e47 100644 --- a/src/german/QuestionGer.gf +++ b/src/german/QuestionGer.gf @@ -105,5 +105,36 @@ concrete QuestionGer of Question = CatGer ** open ResGer, Prelude in { CompIP ip = {s = \\_ => ip.s ! Nom ; ext = "" } ; + -- QVP (added 9/2025, HL) + lincat + QVP = ResGer.VP ; + + linref + QVP = \vp -> useInfVP False vp ; + + lin + ComplSlashIP vps ip = -- just as ComplSlash : VPSlash -> NP -> VP + let np = lin NP {s = table Bool {_ => ip.s} ; + a = agrGenNum ip.a ; + w = WLight ; -- guessed + rc,ext = []} ; + vp = case vps.objCtrl of { True => objAgr np vps ; _ => vps } + ** { c2 = vps.c2 ; objCtrl = vps.objCtrl } ; + in insertObjNP np vps.c2 vp ; + + AdvQVP vp iadv = insertAdv iadv.s vp ; + AddAdvQVP qvp iadv = insertAdv iadv.s qvp ; + + QuestQVP ip qvp = { -- just as QuestVP, with qvp as vp + s = \\m,t,a,p => + let + who = appPrep qvp.c1 ip.s ; + cl = (mkClause who (agrGenNum ip.a) qvp).s ! m ! t ! a ! p + in table { + QDir => cl ! Main ; + QIndir => cl ! Sub + } + } ; + } diff --git a/src/german/RelativeGer.gf b/src/german/RelativeGer.gf index 76f03f3c..34edfe00 100644 --- a/src/german/RelativeGer.gf +++ b/src/german/RelativeGer.gf @@ -18,9 +18,10 @@ concrete RelativeGer of Relative = CatGer ** open ResGer, Prelude in { } ; agr = case rp.a of { RNoAg => agrP3 (numGenNum gn) ; - RAg n p => case n of {Sg => AgSgP3 Neutr ; Pl => AgPl p} - } ; - cl = mkClause (rp.s ! rgn ! Nom) agr vp + RAg Sg p => AgSgP3 Neutr ; + RAg Pl p => AgPl p + } ; -- subject may be non-nom, e.g. an dem gezweifelt wird + cl = mkClause (appPrep vp.c1 (rp.s ! rgn)) agr vp in cl.s ! m ! t ! ant ! b ! Sub ; c = Nom From 5146748f3758d224b9aa3e1aab121e7196c92aa5 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 4 Oct 2025 19:44:23 +0200 Subject: [PATCH 066/169] added armenian --- languages.csv | 1 + src/armenian/AdjectiveHye.gf | 4 + src/armenian/AllHye.gf | 4 + src/armenian/AllHyeAbs.gf | 3 + src/armenian/CatHye.gf | 16 + src/armenian/DocumentationHye.gf | 133 + src/armenian/GrammarHye.gf | 2 + src/armenian/LangHye.gf | 10 + src/armenian/LexiconHye.gf | 2 + src/armenian/MorphoHye.gf | 7506 ++++++++++++++++++++++++++++++ src/armenian/NounHye.gf | 4 + src/armenian/ParadigmsHye.gf | 488 ++ src/armenian/PhraseHye.gf | 11 + src/armenian/ResHye.gf | 269 ++ 14 files changed, 8453 insertions(+) create mode 100644 src/armenian/AdjectiveHye.gf create mode 100644 src/armenian/AllHye.gf create mode 100644 src/armenian/AllHyeAbs.gf create mode 100644 src/armenian/CatHye.gf create mode 100644 src/armenian/DocumentationHye.gf create mode 100644 src/armenian/GrammarHye.gf create mode 100644 src/armenian/LangHye.gf create mode 100644 src/armenian/LexiconHye.gf create mode 100644 src/armenian/MorphoHye.gf create mode 100644 src/armenian/NounHye.gf create mode 100644 src/armenian/ParadigmsHye.gf create mode 100644 src/armenian/PhraseHye.gf create mode 100644 src/armenian/ResHye.gf diff --git a/languages.csv b/languages.csv index b95c3ff6..3c191a1c 100644 --- a/languages.csv +++ b/languages.csv @@ -23,6 +23,7 @@ Heb,Hebrew,hebrew,,,,,n,n,,n,n Hin,Hindi,hindi,Hindustani,to_devanagari,y,,,,,y,n Hrv,Croatian,croatian,,,,,,y,,n,n Hun,Hungarian,hungarian,,,n,y,y,y,n,n,n +Hye,Armenian,armenian,,,,y,n,n,n,y,n Ice,Icelandic,icelandic,,,,,,n,,y,n Ina,Interlingua,interlingua,,,y,,n,n,,n,n Ita,Italian,italian,Romance,,y,,,,y,y,y diff --git a/src/armenian/AdjectiveHye.gf b/src/armenian/AdjectiveHye.gf new file mode 100644 index 00000000..ab87d3f9 --- /dev/null +++ b/src/armenian/AdjectiveHye.gf @@ -0,0 +1,4 @@ +concrete AdjectiveHye of Adjective = CatHye ** { +lin + PositA a = a ; +} diff --git a/src/armenian/AllHye.gf b/src/armenian/AllHye.gf new file mode 100644 index 00000000..b11b445a --- /dev/null +++ b/src/armenian/AllHye.gf @@ -0,0 +1,4 @@ +concrete AllHye of AllHyeAbs = + LangHye + ** + {} ; diff --git a/src/armenian/AllHyeAbs.gf b/src/armenian/AllHyeAbs.gf new file mode 100644 index 00000000..354987b7 --- /dev/null +++ b/src/armenian/AllHyeAbs.gf @@ -0,0 +1,3 @@ +abstract AllHyeAbs = + Lang + ** {} \ No newline at end of file diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf new file mode 100644 index 00000000..374f2817 --- /dev/null +++ b/src/armenian/CatHye.gf @@ -0,0 +1,16 @@ +concrete CatHye of Cat = CommonX ** open ResHye in { + +lincat V = Verb ; +lincat VV,VS,VQ,VA = Verb ; +lincat V2 = Verb ** {c2 : Compl} ; +lincat V3,V2A,V2S,V2Q,V2V = Verb ** {c2,c3 : Compl} ; +lincat N = Noun ; +lincat N2 = Noun ** {c2 : Compl} ; +lincat N3 = Noun ** {c2,c3 : Compl} ; +lincat CN = Noun ; +lincat A = Adj ; +lincat A2 = Adj ** {c2 : Compl} ; +lincat AP = Adj ; +lincat Prep = Compl ; + +} diff --git a/src/armenian/DocumentationHye.gf b/src/armenian/DocumentationHye.gf new file mode 100644 index 00000000..855aeda7 --- /dev/null +++ b/src/armenian/DocumentationHye.gf @@ -0,0 +1,133 @@ +concrete DocumentationHye of Documentation = CatHye ** open + ResHye, Prelude, HTML in { + +lincat + Inflection = {t : Str; s1,s2,s3 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin + InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> { + t="v" ; + s1="" ; + s2=heading1 "Infinitive" ++ + paragraph (x.s) ++ + heading1 "Converb" ++ + frameTable ( + tr (th "Imperfective" ++ td (x.Converb.Imperfective)) ++ + tr (th "Simultaneous" ++ td (x.Converb.Simultaneous)) ++ + tr (th "Perfective" ++ td (x.Converb.Perfective)) ++ + tr (th "Futute I" ++ td (x.Converb.FutCon1)) ++ + tr (th "Futute II" ++ td (x.Converb.FutCon2)) ++ + tr (th "Connegative" ++ td (x.Converb.Negative))) ++ + heading1 "Passive" ++ + paragraph x.Passive ++ + heading1 "Participle" ++ + frameTable ( + tr (th "Resultative" ++ td (x.Participle ! Resultative)) ++ + tr (th "Subject" ++ td (x.Participle ! Subject))) ++ + heading1 "Past" ++ + frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "P1" ++ td (x.Past ! P1 ! Sg) ++ td (x.Past ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.Past ! P2 ! Sg) ++ td (x.Past ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.Past ! P3 ! Sg) ++ td (x.Past ! P3 ! Pl))) ++ + heading1 "Subjunctive" ++ + frameTable ( + tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++ + tr (intagAttr "th" "rowspan=\"3\"" "Perfect" ++ + th "P1" ++ td (x.Subjunctive ! Perfect ! P1 ! Sg) ++ td (x.Subjunctive ! Perfect ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.Subjunctive ! Perfect ! P2 ! Sg) ++ td (x.Subjunctive ! Perfect ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.Subjunctive ! Perfect ! P3 ! Sg) ++ td (x.Subjunctive ! Perfect ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"3\"" "Non_Past" ++ + th "P1" ++ td (x.Subjunctive ! Non_Past ! P1 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.Subjunctive ! Non_Past ! P2 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.Subjunctive ! Non_Past ! P3 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P3 ! Pl))) ++ + heading1 "Conditional" ++ + frameTable ( + tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++ + tr (intagAttr "th" "rowspan=\"3\"" "Perfect" ++ + th "P1" ++ td (x.Conditional ! Perfect ! P1 ! Sg) ++ td (x.Conditional ! Perfect ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.Conditional ! Perfect ! P2 ! Sg) ++ td (x.Conditional ! Perfect ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.Conditional ! Perfect ! P3 ! Sg) ++ td (x.Conditional ! Perfect ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Non_Past" ++ + th "P1" ++ td (x.Conditional ! Non_Past ! P1 ! Sg) ++ td (x.Conditional ! Non_Past ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.Conditional ! Non_Past ! P2 ! Sg) ++ td (x.Conditional ! Non_Past ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.Conditional ! Non_Past ! P3 ! Sg) ++ td (x.Conditional ! Non_Past ! P3 ! Pl))) ++ + heading1 "Imperative" ++ + frameTable ( + tr (th "Sg" ++ th "Pl") ++ + tr (td (x.Imperative_Jussive ! Sg) ++ td (x.Imperative_Jussive ! Pl))) ; + s3=[] + } ; +lin + InflectionN,InflectionN2,InflectionN3 = \x -> { + t="n" ; + s1="" ; + s2=frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Nom" ++ td (x.s ! Nom ! Sg) ++ td (x.s ! Nom ! Pl)) ++ + tr (th "Dat" ++ td (x.s ! Dat ! Sg) ++ td (x.s ! Dat ! Pl)) ++ + tr (th "Ablat" ++ td (x.s ! Ablat ! Sg) ++ td (x.s ! Ablat ! Pl)) ++ + tr (th "Instr" ++ td (x.s ! Instr ! Sg) ++ td (x.s ! Instr ! Pl)) ++ + tr (th "Loc" ++ td (x.s ! Loc ! Sg) ++ td (x.s ! Loc ! Pl)) ++ + tr (intagAttr "th" "colspan=\"3\"" "definite forms") ++ + tr (th "Nom" ++ td (x.def_nom ! Sg) ++ td (x.def_nom ! Pl)) ++ + tr (th "Dat" ++ td (x.def_dat ! Sg) ++ td (x.def_dat ! Pl)) ++ + tr (intagAttr "th" "colspan=\"3\"" "1st person possessive forms") ++ + tr (th "Nom" ++ td (x.poss1 ! Nom ! Sg) ++ td (x.poss1 ! Nom ! Pl)) ++ + tr (th "Dat" ++ td (x.poss1 ! Dat ! Sg) ++ td (x.poss1 ! Dat ! Pl)) ++ + tr (th "Ablat" ++ td (x.poss1 ! Ablat ! Sg) ++ td (x.poss1 ! Ablat ! Pl)) ++ + tr (th "Instr" ++ td (x.poss1 ! Instr ! Sg) ++ td (x.poss1 ! Instr ! Pl)) ++ + tr (th "Loc" ++ td (x.poss1 ! Loc ! Sg) ++ td (x.poss1 ! Loc ! Pl)) ++ + tr (intagAttr "th" "colspan=\"3\"" "2nd person possessive forms") ++ + tr (th "Nom" ++ td (x.poss2 ! Nom ! Sg) ++ td (x.poss2 ! Nom ! Pl)) ++ + tr (th "Dat" ++ td (x.poss2 ! Dat ! Sg) ++ td (x.poss2 ! Dat ! Pl)) ++ + tr (th "Ablat" ++ td (x.poss2 ! Ablat ! Sg) ++ td (x.poss2 ! Ablat ! Pl)) ++ + tr (th "Instr" ++ td (x.poss2 ! Instr ! Sg) ++ td (x.poss2 ! Instr ! Pl)) ++ + tr (th "Loc" ++ td (x.poss2 ! Loc ! Sg) ++ td (x.poss2 ! Loc ! Pl))) ; + s3=[] + } ; +lin + InflectionA,InflectionA2 = \x -> { + t="a" ; + s1="" ; + s2=frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Nom" ++ td (x.s ! Nom ! Sg) ++ td (x.s ! Nom ! Pl)) ++ + tr (th "Dat" ++ td (x.s ! Dat ! Sg) ++ td (x.s ! Dat ! Pl)) ++ + tr (th "Ablat" ++ td (x.s ! Ablat ! Sg) ++ td (x.s ! Ablat ! Pl)) ++ + tr (th "Instr" ++ td (x.s ! Instr ! Sg) ++ td (x.s ! Instr ! Pl)) ++ + tr (th "Loc" ++ td (x.s ! Loc ! Sg) ++ td (x.s ! Loc ! Pl)) ++ + tr (intagAttr "th" "colspan=\"3\"" "definite forms") ++ + tr (th "Nom" ++ td (x.def_nom ! Sg) ++ td (x.def_nom ! Pl)) ++ + tr (th "Dat" ++ td (x.def_dat ! Sg) ++ td (x.def_dat ! Pl)) ++ + tr (intagAttr "th" "colspan=\"3\"" "1st person possessive forms") ++ + tr (th "Nom" ++ td (x.poss1 ! Nom ! Sg) ++ td (x.poss1 ! Nom ! Pl)) ++ + tr (th "Dat" ++ td (x.poss1 ! Dat ! Sg) ++ td (x.poss1 ! Dat ! Pl)) ++ + tr (th "Ablat" ++ td (x.poss1 ! Ablat ! Sg) ++ td (x.poss1 ! Ablat ! Pl)) ++ + tr (th "Instr" ++ td (x.poss1 ! Instr ! Sg) ++ td (x.poss1 ! Instr ! Pl)) ++ + tr (th "Loc" ++ td (x.poss1 ! Loc ! Sg) ++ td (x.poss1 ! Loc ! Pl)) ++ + tr (intagAttr "th" "colspan=\"3\"" "2nd person possessive forms") ++ + tr (th "Nom" ++ td (x.poss2 ! Nom ! Sg) ++ td (x.poss2 ! Nom ! Pl)) ++ + tr (th "Dat" ++ td (x.poss2 ! Dat ! Sg) ++ td (x.poss2 ! Dat ! Pl)) ++ + tr (th "Ablat" ++ td (x.poss2 ! Ablat ! Sg) ++ td (x.poss2 ! Ablat ! Pl)) ++ + tr (th "Instr" ++ td (x.poss2 ! Instr ! Sg) ++ td (x.poss2 ! Instr ! Pl)) ++ + tr (th "Loc" ++ td (x.poss2 ! Loc ! Sg) ++ td (x.poss2 ! Loc ! Pl))) ; + s3=[] + } ; +lin + InflectionAdA,InflectionAdN,InflectionAdV,InflectionAdv = \x -> {t="adv"; s1=""; s2=x.s; s3=""} ; + + InflectionPrep = \x -> {t="prep"; s1=""; s2=x.s; s3=""} ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

Definition:"++t.s++d.s++"

Example:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ; + MkTag i = {s = i.t} ; +} diff --git a/src/armenian/GrammarHye.gf b/src/armenian/GrammarHye.gf new file mode 100644 index 00000000..e3abafd4 --- /dev/null +++ b/src/armenian/GrammarHye.gf @@ -0,0 +1,2 @@ +concrete GrammarHye of Grammar = TenseX ** { +} \ No newline at end of file diff --git a/src/armenian/LangHye.gf b/src/armenian/LangHye.gf new file mode 100644 index 00000000..34f07bae --- /dev/null +++ b/src/armenian/LangHye.gf @@ -0,0 +1,10 @@ +--# -path=.:../abstract +concrete LangHye of Lang = + GrammarHye, + LexiconHye + ,DocumentationHye --# notpresent + ** { + +flags startcat = Phr ; + +} \ No newline at end of file diff --git a/src/armenian/LexiconHye.gf b/src/armenian/LexiconHye.gf new file mode 100644 index 00000000..8e4aab26 --- /dev/null +++ b/src/armenian/LexiconHye.gf @@ -0,0 +1,2 @@ +concrete LexiconHye of Lexicon = CatHye ** open ParadigmsHye in { +} \ No newline at end of file diff --git a/src/armenian/MorphoHye.gf b/src/armenian/MorphoHye.gf new file mode 100644 index 00000000..747de9dc --- /dev/null +++ b/src/armenian/MorphoHye.gf @@ -0,0 +1,7506 @@ +resource MorphoHye = open CatHye, ResHye, Predef in { + +oper + +mkV001 : Str -> V ; +mkV001 base = + case base of { + base_1+"ել" => lin V + { s = base_1+"ել" ; + Causative = base_1+"եցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"եի" ; + Pl => "կ"+base_1+"եինք" + } ; + P2 => table { + Sg => "կ"+base_1+"եիր" ; + Pl => "կ"+base_1+"եիք" + } ; + P3 => table { + Sg => "կ"+base_1+"եր" ; + Pl => "կ"+base_1+"եին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"եմ" ; + Pl => "կ"+base_1+"ենք" + } ; + P2 => table { + Sg => "կ"+base_1+"ես" ; + Pl => "կ"+base_1+"եք" + } ; + P3 => table { + Sg => "կ"+base_1+"ի" ; + Pl => "կ"+base_1+"են" + } + } + } ; + Converb = { Imperfective = base_1+"ում" ; + FutCon1 = base_1+"ելու" ; + FutCon2 = base_1+"ելիք" ; + Negative = base_1+"ի" ; + Perfective = base_1+"ել" ; + Simultaneous = base_1+"ելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ի՛ր" ; + Pl => base_1+"ե՛ք" + } ; + Passive = base_1+"վել" ; + Past = table { + P1 => table { + Sg => base_1+"եցի" ; + Pl => base_1+"եցինք" + } ; + P2 => table { + Sg => base_1+"եցիր" ; + Pl => base_1+"եցիք" + } ; + P3 => table { + Sg => base_1+"եց" ; + Pl => base_1+"եցին" + } + } ; + Participle = table { + Resultative => base_1+"ած" ; + Subject => base_1+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"եի" ; + Pl => base_1+"եինք" + } ; + P2 => table { + Sg => base_1+"եիր" ; + Pl => base_1+"եիք" + } ; + P3 => table { + Sg => base_1+"եր" ; + Pl => base_1+"եին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"եմ" ; + Pl => base_1+"ենք" + } ; + P2 => table { + Sg => base_1+"ես" ; + Pl => base_1+"եք" + } ; + P3 => table { + Sg => base_1+"ի" ; + Pl => base_1+"են" + } + } + } + }; + _ => error "Can't apply paradigm mkV001" + } ; + +mkV002 : Str -> V ; +mkV002 base = + case base of { + base_1+"ալ" => lin V + { s = base_1+"ալ" ; + Causative = base_1+"ացնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"այի" ; + Pl => "կ"+base_1+"այինք" + } ; + P2 => table { + Sg => "կ"+base_1+"այիր" ; + Pl => "կ"+base_1+"այիք" + } ; + P3 => table { + Sg => "կ"+base_1+"ար" ; + Pl => "կ"+base_1+"ային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"ամ" ; + Pl => "կ"+base_1+"անք" + } ; + P2 => table { + Sg => "կ"+base_1+"աս" ; + Pl => "կ"+base_1+"աք" + } ; + P3 => table { + Sg => "կ"+base_1+"ա" ; + Pl => "կ"+base_1+"ան" + } + } + } ; + Converb = { Imperfective = base_1+"ում" ; + FutCon1 = base_1+"ալու" ; + FutCon2 = base_1+"ալիք" ; + Negative = base_1+"ա" ; + Perfective = base_1+"ացել" ; + Simultaneous = base_1+"ալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ա՛" ; + Pl => base_1+"ացե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"ացի" ; + Pl => base_1+"ացինք" + } ; + P2 => table { + Sg => base_1+"ացիր" ; + Pl => base_1+"ացիք" + } ; + P3 => table { + Sg => base_1+"աց" ; + Pl => base_1+"ացին" + } + } ; + Participle = table { + Resultative => base_1+"ացած" ; + Subject => base_1+"ացող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"այի" ; + Pl => base_1+"այինք" + } ; + P2 => table { + Sg => base_1+"այիր" ; + Pl => base_1+"այիք" + } ; + P3 => table { + Sg => base_1+"ար" ; + Pl => base_1+"ային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"ամ" ; + Pl => base_1+"անք" + } ; + P2 => table { + Sg => base_1+"աս" ; + Pl => base_1+"աք" + } ; + P3 => table { + Sg => base_1+"ա" ; + Pl => base_1+"ան" + } + } + } + }; + _ => error "Can't apply paradigm mkV002" + } ; + +mkV003 : Str -> V ; +mkV003 base = + case base of { + base_1+"նել" => lin V + { s = base_1+"նել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"նեի" ; + Pl => "կ"+base_1+"նեինք" + } ; + P2 => table { + Sg => "կ"+base_1+"նեիր" ; + Pl => "կ"+base_1+"նեիք" + } ; + P3 => table { + Sg => "կ"+base_1+"ներ" ; + Pl => "կ"+base_1+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"նեմ" ; + Pl => "կ"+base_1+"նենք" + } ; + P2 => table { + Sg => "կ"+base_1+"նես" ; + Pl => "կ"+base_1+"նեք" + } ; + P3 => table { + Sg => "կ"+base_1+"նի" ; + Pl => "կ"+base_1+"նեն" + } + } + } ; + Converb = { Imperfective = base_1+"նում" ; + FutCon1 = base_1+"նելու" ; + FutCon2 = base_1+"նելիք" ; + Negative = base_1+"նի" ; + Perfective = base_1+"րել" ; + Simultaneous = base_1+"նելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"րո՛ւ" ; + Pl => base_1+"րե՛ք" + } ; + Passive = base_1+"վել" ; + Past = table { + P1 => table { + Sg => base_1+"րի" ; + Pl => base_1+"րինք" + } ; + P2 => table { + Sg => base_1+"րիր" ; + Pl => base_1+"րիք" + } ; + P3 => table { + Sg => base_1+"րեց" ; + Pl => base_1+"րին" + } + } ; + Participle = table { + Resultative => base_1+"րած" ; + Subject => base_1+"նող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"նեի" ; + Pl => base_1+"նեինք" + } ; + P2 => table { + Sg => base_1+"նեիր" ; + Pl => base_1+"նեիք" + } ; + P3 => table { + Sg => base_1+"ներ" ; + Pl => base_1+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"նեմ" ; + Pl => base_1+"նենք" + } ; + P2 => table { + Sg => base_1+"նես" ; + Pl => base_1+"նեք" + } ; + P3 => table { + Sg => base_1+"նի" ; + Pl => base_1+"նեն" + } + } + } + }; + _ => error "Can't apply paradigm mkV003" + } ; + +mkV004 : Str -> V ; +mkV004 base = + case base of { + base_1+"նալ" => lin V + { s = base_1+"նալ" ; + Causative = base_1+"ցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"նայի" ; + Pl => "կ"+base_1+"նայինք" + } ; + P2 => table { + Sg => "կ"+base_1+"նայիր" ; + Pl => "կ"+base_1+"նայիք" + } ; + P3 => table { + Sg => "կ"+base_1+"նար" ; + Pl => "կ"+base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"նամ" ; + Pl => "կ"+base_1+"նանք" + } ; + P2 => table { + Sg => "կ"+base_1+"նաս" ; + Pl => "կ"+base_1+"նաք" + } ; + P3 => table { + Sg => "կ"+base_1+"նա" ; + Pl => "կ"+base_1+"նան" + } + } + } ; + Converb = { Imperfective = base_1+"նում" ; + FutCon1 = base_1+"նալու" ; + FutCon2 = base_1+"նալիք" ; + Negative = base_1+"նա" ; + Perfective = base_1+"ցել" ; + Simultaneous = base_1+"նալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ցի՛ր" ; + Pl => base_1+"ցե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"ցա" ; + Pl => base_1+"ցանք" + } ; + P2 => table { + Sg => base_1+"ցար" ; + Pl => base_1+"ցաք" + } ; + P3 => table { + Sg => base_1+"ցավ" ; + Pl => base_1+"ցան" + } + } ; + Participle = table { + Resultative => base_1+"ցած" ; + Subject => base_1+"ցող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"նայի" ; + Pl => base_1+"նայինք" + } ; + P2 => table { + Sg => base_1+"նայիր" ; + Pl => base_1+"նայիք" + } ; + P3 => table { + Sg => base_1+"նար" ; + Pl => base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"նամ" ; + Pl => base_1+"նանք" + } ; + P2 => table { + Sg => base_1+"նաս" ; + Pl => base_1+"նաք" + } ; + P3 => table { + Sg => base_1+"նա" ; + Pl => base_1+"նան" + } + } + } + }; + _ => error "Can't apply paradigm mkV004" + } ; + +mkV005 : Str -> V ; +mkV005 base = + case base of { + base_1+"ռնալ" => lin V + { s = base_1+"ռնալ" ; + Causative = base_1+"րձնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"ռնայի" ; + Pl => "կ"+base_1+"ռնայինք" + } ; + P2 => table { + Sg => "կ"+base_1+"ռնայիր" ; + Pl => "կ"+base_1+"ռնայիք" + } ; + P3 => table { + Sg => "կ"+base_1+"ռնար" ; + Pl => "կ"+base_1+"ռնային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"ռնամ" ; + Pl => "կ"+base_1+"ռնանք" + } ; + P2 => table { + Sg => "կ"+base_1+"ռնաս" ; + Pl => "կ"+base_1+"ռնաք" + } ; + P3 => table { + Sg => "կ"+base_1+"ռնա" ; + Pl => "կ"+base_1+"ռնան" + } + } + } ; + Converb = { Imperfective = base_1+"ռնում" ; + FutCon1 = base_1+"ռնալու" ; + FutCon2 = base_1+"ռնալիք" ; + Negative = base_1+"ռնա" ; + Perfective = base_1+"րձել" ; + Simultaneous = base_1+"ռնալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"րձի՛ր" ; + Pl => base_1+"րձե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"րձեցի" ; + Pl => base_1+"րձեցինք" + } ; + P2 => table { + Sg => base_1+"րձեցիր" ; + Pl => base_1+"րձեցիք" + } ; + P3 => table { + Sg => base_1+"րձեց" ; + Pl => base_1+"րձեցին" + } + } ; + Participle = table { + Resultative => base_1+"րձած" ; + Subject => base_1+"րձող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"ռնայի" ; + Pl => base_1+"ռնայինք" + } ; + P2 => table { + Sg => base_1+"ռնայիր" ; + Pl => base_1+"ռնայիք" + } ; + P3 => table { + Sg => base_1+"ռնար" ; + Pl => base_1+"ռնային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"ռնամ" ; + Pl => base_1+"ռնանք" + } ; + P2 => table { + Sg => base_1+"ռնաս" ; + Pl => base_1+"ռնաք" + } ; + P3 => table { + Sg => base_1+"ռնա" ; + Pl => base_1+"ռնան" + } + } + } + }; + _ => error "Can't apply paradigm mkV005" + } ; + +mkV006 : Str -> V ; +mkV006 base = + case base of { + "երթալ" => lin V + { s = "երթալ" ; + Causative = "գնացնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կերթայի" ; + Pl => "կերթայինք" + } ; + P2 => table { + Sg => "կերթայիր" ; + Pl => "կերթայիք" + } ; + P3 => table { + Sg => "կերթար" ; + Pl => "կերթային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կերթամ" ; + Pl => "կերթանք" + } ; + P2 => table { + Sg => "կերթաս" ; + Pl => "կերթաք" + } ; + P3 => table { + Sg => "կերթա" ; + Pl => "կերթան" + } + } + } ; + Converb = { Imperfective = "երթում" ; + FutCon1 = "երթալու" ; + FutCon2 = "երթալիք" ; + Negative = "երթա" ; + Perfective = "գնացել" ; + Simultaneous = "երթալիս" + } ; + Imperative_Jussive = table { + Sg => "երթա՛" ; + Pl => "գնացե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => "գնացի" ; + Pl => "գնացինք" + } ; + P2 => table { + Sg => "գնացիր" ; + Pl => "գնացիք" + } ; + P3 => table { + Sg => "գնաց" ; + Pl => "գնացին" + } + } ; + Participle = table { + Resultative => "գնացած" ; + Subject => "գնացող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => "երթայի" ; + Pl => "երթայինք" + } ; + P2 => table { + Sg => "երթայիր" ; + Pl => "երթայիք" + } ; + P3 => table { + Sg => "երթար" ; + Pl => "երթային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "երթամ" ; + Pl => "երթանք" + } ; + P2 => table { + Sg => "երթաս" ; + Pl => "երթաք" + } ; + P3 => table { + Sg => "երթա" ; + Pl => "երթան" + } + } + } + }; + _ => error "Can't apply paradigm mkV006" + } ; + +mkV007 : Str -> V ; +mkV007 base = + case base of { + "էթալ" => lin V + { s = "էթալ" ; + Causative = "գնացնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կէթայի" ; + Pl => "կէթայինք" + } ; + P2 => table { + Sg => "կէթայիր" ; + Pl => "կէթայիք" + } ; + P3 => table { + Sg => "կէթար" ; + Pl => "կէթային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կէթամ" ; + Pl => "կէթանք" + } ; + P2 => table { + Sg => "կէթաս" ; + Pl => "կէթաք" + } ; + P3 => table { + Sg => "կէթա" ; + Pl => "կէթան" + } + } + } ; + Converb = { Imperfective = "էթում" ; + FutCon1 = "էթալու" ; + FutCon2 = "էթալիք" ; + Negative = "էթա" ; + Perfective = "գնացել" ; + Simultaneous = "էթալիս" + } ; + Imperative_Jussive = table { + Sg => "էթա՛" ; + Pl => "գնացե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => "գնացի" ; + Pl => "գնացինք" + } ; + P2 => table { + Sg => "գնացիր" ; + Pl => "գնացիք" + } ; + P3 => table { + Sg => "գնաց" ; + Pl => "գնացին" + } + } ; + Participle = table { + Resultative => "գնացած" ; + Subject => "գնացող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => "էթայի" ; + Pl => "էթայինք" + } ; + P2 => table { + Sg => "էթայիր" ; + Pl => "էթայիք" + } ; + P3 => table { + Sg => "էթար" ; + Pl => "էթային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "էթամ" ; + Pl => "էթանք" + } ; + P2 => table { + Sg => "էթաս" ; + Pl => "էթաք" + } ; + P3 => table { + Sg => "էթա" ; + Pl => "էթան" + } + } + } + }; + _ => error "Can't apply paradigm mkV007" + } ; + +mkV008 : Str -> V ; +mkV008 base = + case base of { + base_1+"նել" => lin V + { s = base_1+"նել" ; + Causative = base_1+"ցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"նեի" ; + Pl => "կ"+base_1+"նեինք" + } ; + P2 => table { + Sg => "կ"+base_1+"նեիր" ; + Pl => "կ"+base_1+"նեիք" + } ; + P3 => table { + Sg => "կ"+base_1+"ներ" ; + Pl => "կ"+base_1+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"նեմ" ; + Pl => "կ"+base_1+"նենք" + } ; + P2 => table { + Sg => "կ"+base_1+"նես" ; + Pl => "կ"+base_1+"նեք" + } ; + P3 => table { + Sg => "կ"+base_1+"նի" ; + Pl => "կ"+base_1+"նեն" + } + } + } ; + Converb = { Imperfective = base_1+"նում" ; + FutCon1 = base_1+"նելու" ; + FutCon2 = base_1+"նելիք" ; + Negative = base_1+"նի" ; + Perfective = base_1+"ել" ; + Simultaneous = base_1+"նելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ի՛ր" ; + Pl => base_1+"ե՛ք" + } ; + Passive = base_1+"նվել" ; + Past = table { + P1 => table { + Sg => base_1+"ա" ; + Pl => base_1+"անք" + } ; + P2 => table { + Sg => base_1+"ար" ; + Pl => base_1+"աք" + } ; + P3 => table { + Sg => base_1+"ավ" ; + Pl => base_1+"ան" + } + } ; + Participle = table { + Resultative => base_1+"ած" ; + Subject => base_1+"նող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"նեի" ; + Pl => base_1+"նեինք" + } ; + P2 => table { + Sg => base_1+"նեիր" ; + Pl => base_1+"նեիք" + } ; + P3 => table { + Sg => base_1+"ներ" ; + Pl => base_1+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"նեմ" ; + Pl => base_1+"նենք" + } ; + P2 => table { + Sg => base_1+"նես" ; + Pl => base_1+"նեք" + } ; + P3 => table { + Sg => base_1+"նի" ; + Pl => base_1+"նեն" + } + } + } + }; + _ => error "Can't apply paradigm mkV008" + } ; + +mkV009 : Str -> V ; +mkV009 base = + case base of { + "ըլնել" => lin V + { s = "ըլնել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կըլնեի" ; + Pl => "կըլնեինք" + } ; + P2 => table { + Sg => "կըլնեիր" ; + Pl => "կըլնեիք" + } ; + P3 => table { + Sg => "կըլներ" ; + Pl => "կըլնեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կըլնեմ" ; + Pl => "կըլնենք" + } ; + P2 => table { + Sg => "կըլնես" ; + Pl => "կըլնեք" + } ; + P3 => table { + Sg => "կըլնի" ; + Pl => "կըլնեն" + } + } + } ; + Converb = { Imperfective = "ըլնում" ; + FutCon1 = "ըլնելու" ; + FutCon2 = "ըլնելիք" ; + Negative = "ըլնի" ; + Perfective = "էղել" ; + Simultaneous = "ըլնելիս" + } ; + Imperative_Jussive = table { + Sg => "էղի՛ր" ; + Pl => "էղե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => "էղա" ; + Pl => "էղանք" + } ; + P2 => table { + Sg => "էղար" ; + Pl => "էղաք" + } ; + P3 => table { + Sg => "էղավ" ; + Pl => "էղան" + } + } ; + Participle = table { + Resultative => "էղած" ; + Subject => "ըլնող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => "ըլնեի" ; + Pl => "ըլնեինք" + } ; + P2 => table { + Sg => "ըլնեիր" ; + Pl => "ըլնեիք" + } ; + P3 => table { + Sg => "ըլներ" ; + Pl => "ըլնեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "ըլնեմ" ; + Pl => "ըլնենք" + } ; + P2 => table { + Sg => "ըլնես" ; + Pl => "ըլնեք" + } ; + P3 => table { + Sg => "ըլնի" ; + Pl => "ըլնեն" + } + } + } + }; + _ => error "Can't apply paradigm mkV009" + } ; + +mkV010 : Str -> V ; +mkV010 base = + case base of { + base_1+"նալ" => lin V + { s = base_1+"նալ" ; + Causative = base_1+"ցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"նայի" ; + Pl => "կ"+base_1+"նայինք" + } ; + P2 => table { + Sg => "կ"+base_1+"նայիր" ; + Pl => "կ"+base_1+"նայիք" + } ; + P3 => table { + Sg => "կ"+base_1+"նար" ; + Pl => "կ"+base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"նամ" ; + Pl => "կ"+base_1+"նանք" + } ; + P2 => table { + Sg => "կ"+base_1+"նաս" ; + Pl => "կ"+base_1+"նաք" + } ; + P3 => table { + Sg => "կ"+base_1+"նա" ; + Pl => "կ"+base_1+"նան" + } + } + } ; + Converb = { Imperfective = base_1+"նում" ; + FutCon1 = base_1+"նալու" ; + FutCon2 = base_1+"նալիք" ; + Negative = base_1+"նա" ; + Perfective = base_1+"ցել" ; + Simultaneous = base_1+"նալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"՛" ; + Pl => base_1+"ցե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"ցի" ; + Pl => base_1+"ցինք" + } ; + P2 => table { + Sg => base_1+"ցիր" ; + Pl => base_1+"ցիք" + } ; + P3 => table { + Sg => base_1+"ց" ; + Pl => base_1+"ցին" + } + } ; + Participle = table { + Resultative => base_1+"ցած" ; + Subject => base_1+"ցող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"նայի" ; + Pl => base_1+"նայինք" + } ; + P2 => table { + Sg => base_1+"նայիր" ; + Pl => base_1+"նայիք" + } ; + P3 => table { + Sg => base_1+"նար" ; + Pl => base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"նամ" ; + Pl => base_1+"նանք" + } ; + P2 => table { + Sg => base_1+"նաս" ; + Pl => base_1+"նաք" + } ; + P3 => table { + Sg => base_1+"նա" ; + Pl => base_1+"նան" + } + } + } + }; + _ => error "Can't apply paradigm mkV010" + } ; + +mkV011 : Str -> V ; +mkV011 base = + case base of { + base_1+"ալ" => lin V + { s = base_1+"ալ" ; + Causative = base_1+"ացնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"այի" ; + Pl => "կ"+base_1+"այինք" + } ; + P2 => table { + Sg => "կ"+base_1+"այիր" ; + Pl => "կ"+base_1+"այիք" + } ; + P3 => table { + Sg => "կ"+base_1+"ար" ; + Pl => "կ"+base_1+"ային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"ամ" ; + Pl => "կ"+base_1+"անք" + } ; + P2 => table { + Sg => "կ"+base_1+"աս" ; + Pl => "կ"+base_1+"աք" + } ; + P3 => table { + Sg => "կ"+base_1+"այ" ; + Pl => "կ"+base_1+"ան" + } + } + } ; + Converb = { Imperfective = base_1+"ում" ; + FutCon1 = base_1+"ալու" ; + FutCon2 = base_1+"ալիք" ; + Negative = base_1+"այ" ; + Perfective = base_1+"ացել" ; + Simultaneous = base_1+"ալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ա՛" ; + Pl => base_1+"ացէ՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"ացի" ; + Pl => base_1+"ացինք" + } ; + P2 => table { + Sg => base_1+"ացիր" ; + Pl => base_1+"ացիք" + } ; + P3 => table { + Sg => base_1+"աց" ; + Pl => base_1+"ացին" + } + } ; + Participle = table { + Resultative => base_1+"ացած" ; + Subject => base_1+"ացող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"այի" ; + Pl => base_1+"այինք" + } ; + P2 => table { + Sg => base_1+"այիր" ; + Pl => base_1+"այիք" + } ; + P3 => table { + Sg => base_1+"ար" ; + Pl => base_1+"ային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"ամ" ; + Pl => base_1+"անք" + } ; + P2 => table { + Sg => base_1+"աս" ; + Pl => base_1+"աք" + } ; + P3 => table { + Sg => base_1+"այ" ; + Pl => base_1+"ան" + } + } + } + }; + _ => error "Can't apply paradigm mkV011" + } ; + +mkV012 : Str -> V ; +mkV012 base = + case base of { + base_1+"ել" => lin V + { s = base_1+"ել" ; + Causative = base_1+"եցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"էի" ; + Pl => "կ"+base_1+"էինք" + } ; + P2 => table { + Sg => "կ"+base_1+"էիր" ; + Pl => "կ"+base_1+"էիք" + } ; + P3 => table { + Sg => "կ"+base_1+"էր" ; + Pl => "կ"+base_1+"էին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"եմ" ; + Pl => "կ"+base_1+"ենք" + } ; + P2 => table { + Sg => "կ"+base_1+"ես" ; + Pl => "կ"+base_1+"էք" + } ; + P3 => table { + Sg => "կ"+base_1+"ի" ; + Pl => "կ"+base_1+"են" + } + } + } ; + Converb = { Imperfective = base_1+"ում" ; + FutCon1 = base_1+"ելու" ; + FutCon2 = base_1+"ելիք" ; + Negative = base_1+"ի" ; + Perfective = base_1+"ել" ; + Simultaneous = base_1+"ելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ի՛ր" ; + Pl => base_1+"է՛ք" + } ; + Passive = base_1+"ուել" ; + Past = table { + P1 => table { + Sg => base_1+"եցի" ; + Pl => base_1+"եցինք" + } ; + P2 => table { + Sg => base_1+"եցիր" ; + Pl => base_1+"եցիք" + } ; + P3 => table { + Sg => base_1+"եց" ; + Pl => base_1+"եցին" + } + } ; + Participle = table { + Resultative => base_1+"ած" ; + Subject => base_1+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"էի" ; + Pl => base_1+"էինք" + } ; + P2 => table { + Sg => base_1+"էիր" ; + Pl => base_1+"էիք" + } ; + P3 => table { + Sg => base_1+"էր" ; + Pl => base_1+"էին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"եմ" ; + Pl => base_1+"ենք" + } ; + P2 => table { + Sg => base_1+"ես" ; + Pl => base_1+"էք" + } ; + P3 => table { + Sg => base_1+"ի" ; + Pl => base_1+"են" + } + } + } + }; + _ => error "Can't apply paradigm mkV012" + } ; + +mkV013 : Str -> V ; +mkV013 base = + case base of { + base_1@?+base_2+"ել" => lin V + { s = base_1+base_2+"ել" ; + Causative = base_1+base_2+"եցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => base_1+"կ"+base_2+"եի" ; + Pl => base_1+"կ"+base_2+"եինք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"եիր" ; + Pl => base_1+"կ"+base_2+"եիք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"եր" ; + Pl => base_1+"կ"+base_2+"եին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"կ"+base_2+"եմ" ; + Pl => base_1+"կ"+base_2+"ենք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"ես" ; + Pl => base_1+"կ"+base_2+"եք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"ի" ; + Pl => base_1+"կ"+base_2+"են" + } + } + } ; + Converb = { Imperfective = base_1+base_2+"ում" ; + FutCon1 = base_1+base_2+"ելու" ; + FutCon2 = base_1+base_2+"ելիք" ; + Negative = base_1+base_2+"ի" ; + Perfective = base_1+base_2+"ել" ; + Simultaneous = base_1+base_2+"ելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+base_2+"ի՛ր" ; + Pl => base_1+base_2+"ե՛ք" + } ; + Passive = base_1+base_2+"վել" ; + Past = table { + P1 => table { + Sg => base_1+base_2+"եցի" ; + Pl => base_1+base_2+"եցինք" + } ; + P2 => table { + Sg => base_1+base_2+"եցիր" ; + Pl => base_1+base_2+"եցիք" + } ; + P3 => table { + Sg => base_1+base_2+"եց" ; + Pl => base_1+base_2+"եցին" + } + } ; + Participle = table { + Resultative => base_1+base_2+"ած" ; + Subject => base_1+base_2+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"եի" ; + Pl => base_1+base_2+"եինք" + } ; + P2 => table { + Sg => base_1+base_2+"եիր" ; + Pl => base_1+base_2+"եիք" + } ; + P3 => table { + Sg => base_1+base_2+"եր" ; + Pl => base_1+base_2+"եին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"եմ" ; + Pl => base_1+base_2+"ենք" + } ; + P2 => table { + Sg => base_1+base_2+"ես" ; + Pl => base_1+base_2+"եք" + } ; + P3 => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"են" + } + } + } + }; + _ => error "Can't apply paradigm mkV013" + } ; + +mkV014 : Str -> V ; +mkV014 base = + case base of { + base_1+base_2@(?+?)+"նել" => lin V + { s = base_1+base_2+"նել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => base_1+"կ"+base_2+"նեի" ; + Pl => base_1+"կ"+base_2+"նեինք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"նեիր" ; + Pl => base_1+"կ"+base_2+"նեիք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"ներ" ; + Pl => base_1+"կ"+base_2+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"կ"+base_2+"նեմ" ; + Pl => base_1+"կ"+base_2+"նենք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"նես" ; + Pl => base_1+"կ"+base_2+"նեք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"նի" ; + Pl => base_1+"կ"+base_2+"նեն" + } + } + } ; + Converb = { Imperfective = base_1+base_2+"նում" ; + FutCon1 = base_1+base_2+"նելու" ; + FutCon2 = base_1+base_2+"նելիք" ; + Negative = base_1+base_2+"նի" ; + Perfective = base_1+base_2+"ել" ; + Simultaneous = base_1+base_2+"նելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+base_2+"ի՛ր" ; + Pl => base_1+base_2+"ե՛ք" + } ; + Passive = base_1+base_2+"նվել" ; + Past = table { + P1 => table { + Sg => base_1+base_2+"ա" ; + Pl => base_1+base_2+"անք" + } ; + P2 => table { + Sg => base_1+base_2+"ար" ; + Pl => base_1+base_2+"աք" + } ; + P3 => table { + Sg => base_1+base_2+"ավ" ; + Pl => base_1+base_2+"ան" + } + } ; + Participle = table { + Resultative => base_1+base_2+"ած" ; + Subject => base_1+base_2+"նող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"նեի" ; + Pl => base_1+base_2+"նեինք" + } ; + P2 => table { + Sg => base_1+base_2+"նեիր" ; + Pl => base_1+base_2+"նեիք" + } ; + P3 => table { + Sg => base_1+base_2+"ներ" ; + Pl => base_1+base_2+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"նեմ" ; + Pl => base_1+base_2+"նենք" + } ; + P2 => table { + Sg => base_1+base_2+"նես" ; + Pl => base_1+base_2+"նեք" + } ; + P3 => table { + Sg => base_1+base_2+"նի" ; + Pl => base_1+base_2+"նեն" + } + } + } + }; + _ => error "Can't apply paradigm mkV014" + } ; + +mkV015 : Str -> V ; +mkV015 base = + case base of { + base_1@?+base_2+"նալ" => lin V + { s = base_1+base_2+"նալ" ; + Causative = base_1+base_2+"ցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => base_1+"կ"+base_2+"նայի" ; + Pl => base_1+"կ"+base_2+"նայինք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"նայիր" ; + Pl => base_1+"կ"+base_2+"նայիք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"նար" ; + Pl => base_1+"կ"+base_2+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"կ"+base_2+"նամ" ; + Pl => base_1+"կ"+base_2+"նանք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"նաս" ; + Pl => base_1+"կ"+base_2+"նաք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"նա" ; + Pl => base_1+"կ"+base_2+"նան" + } + } + } ; + Converb = { Imperfective = base_1+base_2+"նում" ; + FutCon1 = base_1+base_2+"նալու" ; + FutCon2 = base_1+base_2+"նալիք" ; + Negative = base_1+base_2+"նա" ; + Perfective = base_1+base_2+"ցել" ; + Simultaneous = base_1+base_2+"նալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+base_2+"ցի՛ր" ; + Pl => base_1+base_2+"ցե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+base_2+"ցա" ; + Pl => base_1+base_2+"ցանք" + } ; + P2 => table { + Sg => base_1+base_2+"ցար" ; + Pl => base_1+base_2+"ցաք" + } ; + P3 => table { + Sg => base_1+base_2+"ցավ" ; + Pl => base_1+base_2+"ցան" + } + } ; + Participle = table { + Resultative => base_1+base_2+"ցած" ; + Subject => base_1+base_2+"ցող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"նայի" ; + Pl => base_1+base_2+"նայինք" + } ; + P2 => table { + Sg => base_1+base_2+"նայիր" ; + Pl => base_1+base_2+"նայիք" + } ; + P3 => table { + Sg => base_1+base_2+"նար" ; + Pl => base_1+base_2+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"նամ" ; + Pl => base_1+base_2+"նանք" + } ; + P2 => table { + Sg => base_1+base_2+"նաս" ; + Pl => base_1+base_2+"նաք" + } ; + P3 => table { + Sg => base_1+base_2+"նա" ; + Pl => base_1+base_2+"նան" + } + } + } + }; + _ => error "Can't apply paradigm mkV015" + } ; + +mkV016 : Str -> V ; +mkV016 base = + case base of { + base_1+base_2@(?+?+?+?)+"ել" => lin V + { s = base_1+base_2+"ել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => base_1+"կ"+base_2+"էի" ; + Pl => base_1+"կ"+base_2+"էինք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"էիր" ; + Pl => base_1+"կ"+base_2+"էիք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"էր" ; + Pl => base_1+"կ"+base_2+"էին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"կ"+base_2+"եմ" ; + Pl => base_1+"կ"+base_2+"ենք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"ես" ; + Pl => base_1+"կ"+base_2+"էք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"ի" ; + Pl => base_1+"կ"+base_2+"են" + } + } + } ; + Converb = { Imperfective = base_1+base_2+"ում" ; + FutCon1 = base_1+base_2+"ելու" ; + FutCon2 = base_1+base_2+"ելիք" ; + Negative = base_1+base_2+"ի" ; + Perfective = base_1+base_2+"ել" ; + Simultaneous = base_1+base_2+"ելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+base_2+"ի՛ր" ; + Pl => base_1+base_2+"է՛ք" + } ; + Passive = base_1+base_2+"ուել" ; + Past = table { + P1 => table { + Sg => base_1+base_2+"եցի" ; + Pl => base_1+base_2+"եցինք" + } ; + P2 => table { + Sg => base_1+base_2+"եցիր" ; + Pl => base_1+base_2+"եցիք" + } ; + P3 => table { + Sg => base_1+base_2+"եց" ; + Pl => base_1+base_2+"եցին" + } + } ; + Participle = table { + Resultative => base_1+base_2+"ած" ; + Subject => base_1+base_2+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"էի" ; + Pl => base_1+base_2+"էինք" + } ; + P2 => table { + Sg => base_1+base_2+"էիր" ; + Pl => base_1+base_2+"էիք" + } ; + P3 => table { + Sg => base_1+base_2+"էր" ; + Pl => base_1+base_2+"էին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"եմ" ; + Pl => base_1+base_2+"ենք" + } ; + P2 => table { + Sg => base_1+base_2+"ես" ; + Pl => base_1+base_2+"էք" + } ; + P3 => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"են" + } + } + } + }; + _ => error "Can't apply paradigm mkV016" + } ; + +mkV017 : Str -> V ; +mkV017 base = + case base of { + base_1+base_2@(?+?+?)+"նել" => lin V + { s = base_1+base_2+"նել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => base_1+"կ"+base_2+"նեի" ; + Pl => base_1+"կ"+base_2+"նեինք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"նեիր" ; + Pl => base_1+"կ"+base_2+"նեիք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"ներ" ; + Pl => base_1+"կ"+base_2+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"կ"+base_2+"նեմ" ; + Pl => base_1+"կ"+base_2+"նենք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"նես" ; + Pl => base_1+"կ"+base_2+"նեք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"նի" ; + Pl => base_1+"կ"+base_2+"նեն" + } + } + } ; + Converb = { Imperfective = base_1+base_2+"նում" ; + FutCon1 = base_1+base_2+"նելու" ; + FutCon2 = base_1+base_2+"նելիք" ; + Negative = base_1+base_2+"նի" ; + Perfective = base_1+base_2+"րել" ; + Simultaneous = base_1+base_2+"նելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+base_2+"րո՛ւ" ; + Pl => base_1+base_2+"րե՛ք" + } ; + Passive = base_1+base_2+"վել" ; + Past = table { + P1 => table { + Sg => base_1+base_2+"րի" ; + Pl => base_1+base_2+"րինք" + } ; + P2 => table { + Sg => base_1+base_2+"րիր" ; + Pl => base_1+base_2+"րիք" + } ; + P3 => table { + Sg => base_1+base_2+"րեց" ; + Pl => base_1+base_2+"րին" + } + } ; + Participle = table { + Resultative => base_1+base_2+"րած" ; + Subject => base_1+base_2+"նող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"նեի" ; + Pl => base_1+base_2+"նեինք" + } ; + P2 => table { + Sg => base_1+base_2+"նեիր" ; + Pl => base_1+base_2+"նեիք" + } ; + P3 => table { + Sg => base_1+base_2+"ներ" ; + Pl => base_1+base_2+"նեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"նեմ" ; + Pl => base_1+base_2+"նենք" + } ; + P2 => table { + Sg => base_1+base_2+"նես" ; + Pl => base_1+base_2+"նեք" + } ; + P3 => table { + Sg => base_1+base_2+"նի" ; + Pl => base_1+base_2+"նեն" + } + } + } + }; + _ => error "Can't apply paradigm mkV017" + } ; + +mkV018 : Str -> V ; +mkV018 base = + case base of { + base_1+"ել" => lin V + { s = base_1+"ել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => base_1+"կեի" ; + Pl => base_1+"կեինք" + } ; + P2 => table { + Sg => base_1+"կեիր" ; + Pl => base_1+"կեիք" + } ; + P3 => table { + Sg => base_1+"կեր" ; + Pl => base_1+"կեին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"կեմ" ; + Pl => base_1+"կենք" + } ; + P2 => table { + Sg => base_1+"կես" ; + Pl => base_1+"կեք" + } ; + P3 => table { + Sg => base_1+"կի" ; + Pl => base_1+"կեն" + } + } + } ; + Converb = { Imperfective = base_1+"ում" ; + FutCon1 = base_1+"ելու" ; + FutCon2 = base_1+"ելիք" ; + Negative = base_1+"ի" ; + Perfective = base_1+"ել" ; + Simultaneous = base_1+"ելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ի՛ր" ; + Pl => base_1+"ե՛ք" + } ; + Passive = base_1+"վել" ; + Past = table { + P1 => table { + Sg => base_1+"եցի" ; + Pl => base_1+"եցինք" + } ; + P2 => table { + Sg => base_1+"եցիր" ; + Pl => base_1+"եցիք" + } ; + P3 => table { + Sg => base_1+"եց" ; + Pl => base_1+"եցին" + } + } ; + Participle = table { + Resultative => base_1+"ած" ; + Subject => base_1+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"եի" ; + Pl => base_1+"եինք" + } ; + P2 => table { + Sg => base_1+"եիր" ; + Pl => base_1+"եիք" + } ; + P3 => table { + Sg => base_1+"եր" ; + Pl => base_1+"եին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"եմ" ; + Pl => base_1+"ենք" + } ; + P2 => table { + Sg => base_1+"ես" ; + Pl => base_1+"եք" + } ; + P3 => table { + Sg => base_1+"ի" ; + Pl => base_1+"են" + } + } + } + }; + _ => error "Can't apply paradigm mkV018" + } ; + +mkV019 : Str -> V ; +mkV019 base = + case base of { + base_1+base_2@(?+?+?)+"ալ" => lin V + { s = base_1+base_2+"ալ" ; + Causative = base_1+base_2+"ացնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => base_1+"կ"+base_2+"այի" ; + Pl => base_1+"կ"+base_2+"այինք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"այիր" ; + Pl => base_1+"կ"+base_2+"այիք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"ար" ; + Pl => base_1+"կ"+base_2+"ային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"կ"+base_2+"ամ" ; + Pl => base_1+"կ"+base_2+"անք" + } ; + P2 => table { + Sg => base_1+"կ"+base_2+"աս" ; + Pl => base_1+"կ"+base_2+"աք" + } ; + P3 => table { + Sg => base_1+"կ"+base_2+"ա" ; + Pl => base_1+"կ"+base_2+"ան" + } + } + } ; + Converb = { Imperfective = base_1+base_2+"ում" ; + FutCon1 = base_1+base_2+"ալու" ; + FutCon2 = base_1+base_2+"ալիք" ; + Negative = base_1+base_2+"ա" ; + Perfective = base_1+base_2+"ացել" ; + Simultaneous = base_1+base_2+"ալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+base_2+"ա՛" ; + Pl => base_1+base_2+"ացե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+base_2+"ացի" ; + Pl => base_1+base_2+"ացինք" + } ; + P2 => table { + Sg => base_1+base_2+"ացիր" ; + Pl => base_1+base_2+"ացիք" + } ; + P3 => table { + Sg => base_1+base_2+"աց" ; + Pl => base_1+base_2+"ացին" + } + } ; + Participle = table { + Resultative => base_1+base_2+"ացած" ; + Subject => base_1+base_2+"ացող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"այի" ; + Pl => base_1+base_2+"այինք" + } ; + P2 => table { + Sg => base_1+base_2+"այիր" ; + Pl => base_1+base_2+"այիք" + } ; + P3 => table { + Sg => base_1+base_2+"ար" ; + Pl => base_1+base_2+"ային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"ամ" ; + Pl => base_1+base_2+"անք" + } ; + P2 => table { + Sg => base_1+base_2+"աս" ; + Pl => base_1+base_2+"աք" + } ; + P3 => table { + Sg => base_1+base_2+"ա" ; + Pl => base_1+base_2+"ան" + } + } + } + }; + _ => error "Can't apply paradigm mkV019" + } ; + +mkV020 : Str -> V ; +mkV020 base = + case base of { + base_1+"նալ" => lin V + { s = base_1+"նալ" ; + Causative = base_1+"ցնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"նայի" ; + Pl => "կ"+base_1+"նայինք" + } ; + P2 => table { + Sg => "կ"+base_1+"նայիր" ; + Pl => "կ"+base_1+"նայիք" + } ; + P3 => table { + Sg => "կ"+base_1+"նար" ; + Pl => "կ"+base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"նամ" ; + Pl => "կ"+base_1+"նանք" + } ; + P2 => table { + Sg => "կ"+base_1+"նաս" ; + Pl => "կ"+base_1+"նաք" + } ; + P3 => table { + Sg => "կ"+base_1+"նայ" ; + Pl => "կ"+base_1+"նան" + } + } + } ; + Converb = { Imperfective = base_1+"նում" ; + FutCon1 = base_1+"նալու" ; + FutCon2 = base_1+"նալիք" ; + Negative = base_1+"նայ" ; + Perfective = base_1+"ցել" ; + Simultaneous = base_1+"նալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"ցի՛ր" ; + Pl => base_1+"ցէ՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"ցայ" ; + Pl => base_1+"ցանք" + } ; + P2 => table { + Sg => base_1+"ցար" ; + Pl => base_1+"ցաք" + } ; + P3 => table { + Sg => base_1+"ցաւ" ; + Pl => base_1+"ցան" + } + } ; + Participle = table { + Resultative => base_1+"ցած" ; + Subject => base_1+"ցող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"նայի" ; + Pl => base_1+"նայինք" + } ; + P2 => table { + Sg => base_1+"նայիր" ; + Pl => base_1+"նայիք" + } ; + P3 => table { + Sg => base_1+"նար" ; + Pl => base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"նամ" ; + Pl => base_1+"նանք" + } ; + P2 => table { + Sg => base_1+"նաս" ; + Pl => base_1+"նաք" + } ; + P3 => table { + Sg => base_1+"նայ" ; + Pl => base_1+"նան" + } + } + } + }; + _ => error "Can't apply paradigm mkV020" + } ; + +mkV021 : Str -> V ; +mkV021 base = + case base of { + base_1+base_2@(?+?)+"ել" => lin V + { s = base_1+base_2+"ել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+base_2+"էի" ; + Pl => "կ"+base_1+base_2+"էինք" + } ; + P2 => table { + Sg => "կ"+base_1+base_2+"էիր" ; + Pl => "կ"+base_1+base_2+"էիք" + } ; + P3 => table { + Sg => "կ"+base_1+base_2+"էր" ; + Pl => "կ"+base_1+base_2+"էին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+base_2+"եմ" ; + Pl => "կ"+base_1+base_2+"ենք" + } ; + P2 => table { + Sg => "կ"+base_1+base_2+"ես" ; + Pl => "կ"+base_1+base_2+"էք" + } ; + P3 => table { + Sg => "կ"+base_1+base_2+"ի" ; + Pl => "կ"+base_1+base_2+"են" + } + } + } ; + Converb = { Imperfective = base_1+"ւ"+base_2+"մ" ; + FutCon1 = base_1+base_2+"ելու" ; + FutCon2 = base_1+base_2+"ելիք" ; + Negative = base_1+base_2+"ի" ; + Perfective = base_1+base_2+"ել" ; + Simultaneous = base_1+base_2+"ելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+base_2+"ի՛ր" ; + Pl => base_1+base_2+"է՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+base_2+"եցի" ; + Pl => base_1+base_2+"եցինք" + } ; + P2 => table { + Sg => base_1+base_2+"եցիր" ; + Pl => base_1+base_2+"եցիք" + } ; + P3 => table { + Sg => base_1+base_2+"եց" ; + Pl => base_1+base_2+"եցին" + } + } ; + Participle = table { + Resultative => base_1+base_2+"ած" ; + Subject => base_1+base_2+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"էի" ; + Pl => base_1+base_2+"էինք" + } ; + P2 => table { + Sg => base_1+base_2+"էիր" ; + Pl => base_1+base_2+"էիք" + } ; + P3 => table { + Sg => base_1+base_2+"էր" ; + Pl => base_1+base_2+"էին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"եմ" ; + Pl => base_1+base_2+"ենք" + } ; + P2 => table { + Sg => base_1+base_2+"ես" ; + Pl => base_1+base_2+"էք" + } ; + P3 => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"են" + } + } + } + }; + _ => error "Can't apply paradigm mkV021" + } ; + +mkV022 : Str -> V ; +mkV022 base = + case base of { + base_1+"ռնալ" => lin V + { s = base_1+"ռնալ" ; + Causative = base_1+"րձնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"ռնայի" ; + Pl => "կ"+base_1+"ռնայինք" + } ; + P2 => table { + Sg => "կ"+base_1+"ռնայիր" ; + Pl => "կ"+base_1+"ռնայիք" + } ; + P3 => table { + Sg => "կ"+base_1+"ռնար" ; + Pl => "կ"+base_1+"ռնային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"ռնամ" ; + Pl => "կ"+base_1+"ռնանք" + } ; + P2 => table { + Sg => "կ"+base_1+"ռնաս" ; + Pl => "կ"+base_1+"ռնաք" + } ; + P3 => table { + Sg => "կ"+base_1+"ռնա" ; + Pl => "կ"+base_1+"ռնան" + } + } + } ; + Converb = { Imperfective = base_1+"ռնում" ; + FutCon1 = base_1+"ռնալու" ; + FutCon2 = base_1+"ռնալիք" ; + Negative = base_1+"ռնա" ; + Perfective = base_1+"րձել" ; + Simultaneous = base_1+"ռնալիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"րձի՛ր" ; + Pl => base_1+"րձե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"րձա" ; + Pl => base_1+"րձանք" + } ; + P2 => table { + Sg => base_1+"րձար" ; + Pl => base_1+"րձաք" + } ; + P3 => table { + Sg => base_1+"րձավ" ; + Pl => base_1+"րձան" + } + } ; + Participle = table { + Resultative => base_1+"րձած" ; + Subject => base_1+"րձող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"ռնայի" ; + Pl => base_1+"ռնայինք" + } ; + P2 => table { + Sg => base_1+"ռնայիր" ; + Pl => base_1+"ռնայիք" + } ; + P3 => table { + Sg => base_1+"ռնար" ; + Pl => base_1+"ռնային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"ռնամ" ; + Pl => base_1+"ռնանք" + } ; + P2 => table { + Sg => base_1+"ռնաս" ; + Pl => base_1+"ռնաք" + } ; + P3 => table { + Sg => base_1+"ռնա" ; + Pl => base_1+"ռնան" + } + } + } + }; + _ => error "Can't apply paradigm mkV022" + } ; + +mkV023 : Str -> V ; +mkV023 base = + case base of { + base_1+"նալ" => lin V + { s = base_1+"նալ" ; + Causative = base_1+"սնել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"նայի" ; + Pl => "կ"+base_1+"նայինք" + } ; + P2 => table { + Sg => "կ"+base_1+"նայիր" ; + Pl => "կ"+base_1+"նայիք" + } ; + P3 => table { + Sg => "կ"+base_1+"նար" ; + Pl => "կ"+base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"նամ" ; + Pl => "կ"+base_1+"նանք" + } ; + P2 => table { + Sg => "կ"+base_1+"նաս" ; + Pl => "կ"+base_1+"նաք" + } ; + P3 => table { + Sg => "կ"+base_1+"նա" ; + Pl => "կ"+base_1+"նան" + } + } + } ; + Converb = { Imperfective = base_1+"նում" ; + FutCon1 = base_1+"նալու" ; + FutCon2 = base_1+"նալիք" ; + Negative = base_1+"նա" ; + Perfective = base_1+"սել" ; + Simultaneous = base_1+"նալիս" + } ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => base_1+"սե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"սա" ; + Pl => base_1+"սանք" + } ; + P2 => table { + Sg => base_1+"սար" ; + Pl => base_1+"սաք" + } ; + P3 => table { + Sg => base_1+"սավ" ; + Pl => base_1+"սան" + } + } ; + Participle = table { + Resultative => base_1+"սած" ; + Subject => base_1+"սող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"նայի" ; + Pl => base_1+"նայինք" + } ; + P2 => table { + Sg => base_1+"նայիր" ; + Pl => base_1+"նայիք" + } ; + P3 => table { + Sg => base_1+"նար" ; + Pl => base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"նամ" ; + Pl => base_1+"նանք" + } ; + P2 => table { + Sg => base_1+"նաս" ; + Pl => base_1+"նաք" + } ; + P3 => table { + Sg => base_1+"նա" ; + Pl => base_1+"նան" + } + } + } + }; + _ => error "Can't apply paradigm mkV023" + } ; + +mkV024 : Str -> V ; +mkV024 base = + case base of { + base_1+"նալ" => lin V + { s = base_1+"նալ" ; + Causative = base_1+"նել" ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+"նայի" ; + Pl => "կ"+base_1+"նայինք" + } ; + P2 => table { + Sg => "կ"+base_1+"նայիր" ; + Pl => "կ"+base_1+"նայիք" + } ; + P3 => table { + Sg => "կ"+base_1+"նար" ; + Pl => "կ"+base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+"նամ" ; + Pl => "կ"+base_1+"նանք" + } ; + P2 => table { + Sg => "կ"+base_1+"նաս" ; + Pl => "կ"+base_1+"նաք" + } ; + P3 => table { + Sg => "կ"+base_1+"նա" ; + Pl => "կ"+base_1+"նան" + } + } + } ; + Converb = { Imperfective = base_1+"նում" ; + FutCon1 = base_1+"նալու" ; + FutCon2 = base_1+"նալիք" ; + Negative = base_1+"նա" ; + Perfective = base_1+"ել" ; + Simultaneous = base_1+"նալիս" + } ; + Imperative_Jussive = table { + Sg => nonExist ; + Pl => base_1+"ե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+"ա" ; + Pl => base_1+"անք" + } ; + P2 => table { + Sg => base_1+"ար" ; + Pl => base_1+"աք" + } ; + P3 => table { + Sg => base_1+"ավ" ; + Pl => base_1+"ան" + } + } ; + Participle = table { + Resultative => base_1+"ած" ; + Subject => base_1+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+"նայի" ; + Pl => base_1+"նայինք" + } ; + P2 => table { + Sg => base_1+"նայիր" ; + Pl => base_1+"նայիք" + } ; + P3 => table { + Sg => base_1+"նար" ; + Pl => base_1+"նային" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+"նամ" ; + Pl => base_1+"նանք" + } ; + P2 => table { + Sg => base_1+"նաս" ; + Pl => base_1+"նաք" + } ; + P3 => table { + Sg => base_1+"նա" ; + Pl => base_1+"նան" + } + } + } + }; + _ => error "Can't apply paradigm mkV024" + } ; + +mkV025 : Str -> V ; +mkV025 base = + case base of { + base_1+base_2@?+"ել" => lin V + { s = base_1+base_2+"ել" ; + Causative = nonExist ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => "կ"+base_1+base_2+"եի" ; + Pl => "կ"+base_1+base_2+"եինք" + } ; + P2 => table { + Sg => "կ"+base_1+base_2+"եիր" ; + Pl => "կ"+base_1+base_2+"եիք" + } ; + P3 => table { + Sg => "կ"+base_1+base_2+"եր" ; + Pl => "կ"+base_1+base_2+"եին" + } + } ; + Non_Past => table { + P1 => table { + Sg => "կ"+base_1+base_2+"եմ" ; + Pl => "կ"+base_1+base_2+"ենք" + } ; + P2 => table { + Sg => "կ"+base_1+base_2+"ես" ; + Pl => "կ"+base_1+base_2+"եք" + } ; + P3 => table { + Sg => "կ"+base_1+base_2+"ի" ; + Pl => "կ"+base_1+base_2+"են" + } + } + } ; + Converb = { Imperfective = base_1+base_2+"ում" ; + FutCon1 = base_1+base_2+"ելու" ; + FutCon2 = base_1+base_2+"ելիք" ; + Negative = base_1+base_2+"ի" ; + Perfective = base_1+base_2+"ել" ; + Simultaneous = base_1+base_2+"ելիս" + } ; + Imperative_Jussive = table { + Sg => base_1+"՛"+base_2 ; + Pl => base_1+base_2+"ե՛ք" + } ; + Passive = nonExist ; + Past = table { + P1 => table { + Sg => base_1+base_2+"եցի" ; + Pl => base_1+base_2+"եցինք" + } ; + P2 => table { + Sg => base_1+base_2+"եցիր" ; + Pl => base_1+base_2+"եցիք" + } ; + P3 => table { + Sg => base_1+base_2+"եց" ; + Pl => base_1+base_2+"եցին" + } + } ; + Participle = table { + Resultative => base_1+base_2+"ած" ; + Subject => base_1+base_2+"ող" + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => base_1+base_2+"եի" ; + Pl => base_1+base_2+"եինք" + } ; + P2 => table { + Sg => base_1+base_2+"եիր" ; + Pl => base_1+base_2+"եիք" + } ; + P3 => table { + Sg => base_1+base_2+"եր" ; + Pl => base_1+base_2+"եին" + } + } ; + Non_Past => table { + P1 => table { + Sg => base_1+base_2+"եմ" ; + Pl => base_1+base_2+"ենք" + } ; + P2 => table { + Sg => base_1+base_2+"ես" ; + Pl => base_1+base_2+"եք" + } ; + P3 => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"են" + } + } + } + }; + _ => error "Can't apply paradigm mkV025" + } ; + +mkN001 : Str -> N ; +mkN001 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ներ" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"ների" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"ներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"ներով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"ներին" + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => base_1+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"ներս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"ներիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"ներովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"ներովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN001" + } ; + +mkN002 : Str -> N ; +mkN002 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ներ" + } ; + Dat => table { + Sg => base_1+"յի" ; + Pl => base_1+"ների" + } ; + Ablat => table { + Sg => base_1+"յից" ; + Pl => base_1+"ներից" + } ; + Instr => table { + Sg => base_1+"յով" ; + Pl => base_1+"ներով" + } ; + Loc => table { + Sg => base_1+"յում" ; + Pl => base_1+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"յին" ; + Pl => base_1+"ներին" + } ; + def_nom = table { + Sg => base_1+"ն" ; + Pl => base_1+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"ներս" + } ; + Dat => table { + Sg => base_1+"յիս" ; + Pl => base_1+"ներիս" + } ; + Ablat => table { + Sg => base_1+"յիցս" ; + Pl => base_1+"ներիցս" + } ; + Instr => table { + Sg => base_1+"յովս" ; + Pl => base_1+"ներովս" + } ; + Loc => table { + Sg => base_1+"յումս" ; + Pl => base_1+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" + } ; + Dat => table { + Sg => base_1+"յիդ" ; + Pl => base_1+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"յիցդ" ; + Pl => base_1+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"յովդ" ; + Pl => base_1+"ներովդ" + } ; + Loc => table { + Sg => base_1+"յումդ" ; + Pl => base_1+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN002" + } ; + +mkN003 : Str -> N ; +mkN003 base = + case base of { + base_1+"ի" => lin N + { s = table { + Nom => table { + Sg => base_1+"ի" ; + Pl => base_1+"իներ" + } ; + Dat => table { + Sg => base_1+"ու" ; + Pl => base_1+"իների" + } ; + Ablat => table { + Sg => base_1+"ուց" ; + Pl => base_1+"իներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"իներով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"իներում" + } + } ; + def_dat = table { + Sg => base_1+"ուն" ; + Pl => base_1+"իներին" + } ; + def_nom = table { + Sg => base_1+"ին" ; + Pl => base_1+"իները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"իս" ; + Pl => base_1+"իներս" + } ; + Dat => table { + Sg => base_1+"ուս" ; + Pl => base_1+"իներիս" + } ; + Ablat => table { + Sg => base_1+"ուցս" ; + Pl => base_1+"իներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"իներովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"իներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"իդ" ; + Pl => base_1+"իներդ" + } ; + Dat => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"իներիդ" + } ; + Ablat => table { + Sg => base_1+"ուցդ" ; + Pl => base_1+"իներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"իներովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"իներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN003" + } ; + +mkN004 : Str -> N ; +mkN004 base = + case base of { + base_1+"ու"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+"ու"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ան" ; + Pl => base_1+"ու"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"ից" ; + Pl => base_1+"ու"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"ամբ" ; + Pl => base_1+"ու"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ում" ; + Pl => base_1+"ու"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"անը" ; + Pl => base_1+"ու"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+"ու"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+"ու"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"անս" ; + Pl => base_1+"ու"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"իցս" ; + Pl => base_1+"ու"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ու"+base_2+"ովս" ; + Pl => base_1+"ու"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ումս" ; + Pl => base_1+"ու"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+"ու"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"անդ" ; + Pl => base_1+"ու"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"իցդ" ; + Pl => base_1+"ու"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ու"+base_2+"ովդ" ; + Pl => base_1+"ու"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ումդ" ; + Pl => base_1+"ու"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN004" + } ; + +mkN005 : Str -> N ; +mkN005 base = + case base of { + base_1+"ու"+base_2@("ղթ"|"րչ"|"ղտ"|"մբ"|"րմ"|"նջ"|"նդ"|"րձ"|"րդ"|"րծք"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+base_2+"եր" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+base_2+"երից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+base_2+"երով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+base_2+"երում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+base_2+"երս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+base_2+"երովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+base_2+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+base_2+"երովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+base_2+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkN005" + } ; + +mkN006 : Str -> N ; +mkN006 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ներ" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"ների" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"ներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"ներով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"ներին" + } ; + def_nom = table { + Sg => base_1+"ն" ; + Pl => base_1+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"ներս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"ներիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"ներովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"ներովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN006" + } ; + +mkN007 : Str -> N ; +mkN007 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"եր" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"երի" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"երից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"երով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"երում" + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"երին" + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => base_1+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"երս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"երիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"երիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"երովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"երդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"երիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"երիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"երովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkN007" + } ; + +mkN008 : Str -> N ; +mkN008 base = + case base of { + base_1+"իւն" => lin N + { s = table { + Nom => table { + Sg => base_1+"իւն" ; + Pl => base_1+"իւններ" + } ; + Dat => table { + Sg => base_1+"եան" ; + Pl => base_1+"իւնների" + } ; + Ablat => table { + Sg => base_1+"իւնից" ; + Pl => base_1+"իւններից" + } ; + Instr => table { + Sg => base_1+"եամբ" ; + Pl => base_1+"իւններով" + } ; + Loc => table { + Sg => base_1+"իւնում" ; + Pl => base_1+"իւններում" + } + } ; + def_dat = table { + Sg => base_1+"եանը" ; + Pl => base_1+"իւններին" + } ; + def_nom = table { + Sg => base_1+"իւնը" ; + Pl => base_1+"իւնները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"իւնս" ; + Pl => base_1+"իւններս" + } ; + Dat => table { + Sg => base_1+"եանս" ; + Pl => base_1+"իւններիս" + } ; + Ablat => table { + Sg => base_1+"իւնիցս" ; + Pl => base_1+"իւններիցս" + } ; + Instr => table { + Sg => base_1+"եամբս" ; + Pl => base_1+"իւններովս" + } ; + Loc => table { + Sg => base_1+"իւնումս" ; + Pl => base_1+"իւններումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"իւնդ" ; + Pl => base_1+"իւններդ" + } ; + Dat => table { + Sg => base_1+"եանդ" ; + Pl => base_1+"իւններիդ" + } ; + Ablat => table { + Sg => base_1+"իւնիցդ" ; + Pl => base_1+"իւններիցդ" + } ; + Instr => table { + Sg => base_1+"եամբդ" ; + Pl => base_1+"իւններովդ" + } ; + Loc => table { + Sg => base_1+"իւնումդ" ; + Pl => base_1+"իւններումդ" + } + } + }; + _ => error "Can't apply paradigm mkN008" + } ; + +mkN009 : Str -> N ; +mkN009 base = + case base of { + base_1+"ուն" => lin N + { s = table { + Nom => table { + Sg => base_1+"ուն" ; + Pl => base_1+"ուններ" + } ; + Dat => table { + Sg => base_1+"վան" ; + Pl => base_1+"ունների" + } ; + Ablat => table { + Sg => base_1+"ունից" ; + Pl => base_1+"ուններից" + } ; + Instr => table { + Sg => base_1+"վամբ" ; + Pl => base_1+"ուններով" + } ; + Loc => table { + Sg => base_1+"ունում" ; + Pl => base_1+"ուններում" + } + } ; + def_dat = table { + Sg => base_1+"վանը" ; + Pl => base_1+"ուններին" + } ; + def_nom = table { + Sg => base_1+"ունը" ; + Pl => base_1+"ունները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ունս" ; + Pl => base_1+"ուններս" + } ; + Dat => table { + Sg => base_1+"վանս" ; + Pl => base_1+"ուններիս" + } ; + Ablat => table { + Sg => base_1+"ունիցս" ; + Pl => base_1+"ուններիցս" + } ; + Instr => table { + Sg => base_1+"ունովս" ; + Pl => base_1+"ուններովս" + } ; + Loc => table { + Sg => base_1+"ունումս" ; + Pl => base_1+"ուններումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ունդ" ; + Pl => base_1+"ուններդ" + } ; + Dat => table { + Sg => base_1+"վանդ" ; + Pl => base_1+"ուններիդ" + } ; + Ablat => table { + Sg => base_1+"ունիցդ" ; + Pl => base_1+"ուններիցդ" + } ; + Instr => table { + Sg => base_1+"ունովդ" ; + Pl => base_1+"ուններովդ" + } ; + Loc => table { + Sg => base_1+"ունումդ" ; + Pl => base_1+"ուններումդ" + } + } + }; + _ => error "Can't apply paradigm mkN009" + } ; + +mkN010 : Str -> N ; +mkN010 base = + case base of { + base_1+"ուն" => lin N + { s = table { + Nom => table { + Sg => base_1+"ուն" ; + Pl => base_1+"ուններ" + } ; + Dat => table { + Sg => base_1+"ան" ; + Pl => base_1+"ունների" + } ; + Ablat => table { + Sg => base_1+"ունից" ; + Pl => base_1+"ուններից" + } ; + Instr => table { + Sg => base_1+"ամբ" ; + Pl => base_1+"ուններով" + } ; + Loc => table { + Sg => base_1+"ունում" ; + Pl => base_1+"ուններում" + } + } ; + def_dat = table { + Sg => base_1+"անը" ; + Pl => base_1+"ուններին" + } ; + def_nom = table { + Sg => base_1+"ունը" ; + Pl => base_1+"ունները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ունս" ; + Pl => base_1+"ուններս" + } ; + Dat => table { + Sg => base_1+"անս" ; + Pl => base_1+"ուններիս" + } ; + Ablat => table { + Sg => base_1+"ունիցս" ; + Pl => base_1+"ուններիցս" + } ; + Instr => table { + Sg => base_1+"ամբս" ; + Pl => base_1+"ուններովս" + } ; + Loc => table { + Sg => base_1+"ունումս" ; + Pl => base_1+"ուններումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ունդ" ; + Pl => base_1+"ուններդ" + } ; + Dat => table { + Sg => base_1+"անդ" ; + Pl => base_1+"ուններիդ" + } ; + Ablat => table { + Sg => base_1+"ունիցդ" ; + Pl => base_1+"ուններիցդ" + } ; + Instr => table { + Sg => base_1+"ամբդ" ; + Pl => base_1+"ուններովդ" + } ; + Loc => table { + Sg => base_1+"ունումդ" ; + Pl => base_1+"ուններումդ" + } + } + }; + _ => error "Can't apply paradigm mkN010" + } ; + +mkN011 : Str -> N ; +mkN011 base = + case base of { + base_1+"ե"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ե"+base_2 ; + Pl => base_1+"ե"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+"ո"+base_2 ; + Pl => base_1+"ե"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"ից" ; + Pl => base_1+"ե"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ով" ; + Pl => base_1+"ե"+base_2+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ո"+base_2+"ը" ; + Pl => base_1+"ե"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ե"+base_2+"ը" ; + Pl => base_1+"ե"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"ս" ; + Pl => base_1+"ե"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"ս" ; + Pl => base_1+"ե"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցս" ; + Pl => base_1+"ե"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովս" ; + Pl => base_1+"ե"+base_2+"ներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"դ" ; + Pl => base_1+"ե"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"դ" ; + Pl => base_1+"ե"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցդ" ; + Pl => base_1+"ե"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովդ" ; + Pl => base_1+"ե"+base_2+"ներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN011" + } ; + +mkN012 : Str -> N ; +mkN012 base = + case base of { + base_1+"ու" => lin N + { s = table { + Nom => table { + Sg => base_1+"ու" ; + Pl => base_1+"ուներ" + } ; + Dat => table { + Sg => base_1+"վի" ; + Pl => base_1+"ուների" + } ; + Ablat => table { + Sg => base_1+"վից" ; + Pl => base_1+"ուներից" + } ; + Instr => table { + Sg => base_1+"վով" ; + Pl => base_1+"ուներով" + } ; + Loc => table { + Sg => base_1+"վում" ; + Pl => base_1+"ուներում" + } + } ; + def_dat = table { + Sg => base_1+"վին" ; + Pl => base_1+"ուներին" + } ; + def_nom = table { + Sg => base_1+"ուն" ; + Pl => base_1+"ուները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ուս" ; + Pl => base_1+"ուներս" + } ; + Dat => table { + Sg => base_1+"վիս" ; + Pl => base_1+"ուներիս" + } ; + Ablat => table { + Sg => base_1+"վիցս" ; + Pl => base_1+"ուներիցս" + } ; + Instr => table { + Sg => base_1+"վովս" ; + Pl => base_1+"ուներովս" + } ; + Loc => table { + Sg => base_1+"վումս" ; + Pl => base_1+"ուներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"ուներդ" + } ; + Dat => table { + Sg => base_1+"վիդ" ; + Pl => base_1+"ուներիդ" + } ; + Ablat => table { + Sg => base_1+"վիցդ" ; + Pl => base_1+"ուներիցդ" + } ; + Instr => table { + Sg => base_1+"վովդ" ; + Pl => base_1+"ուներովդ" + } ; + Loc => table { + Sg => base_1+"վումդ" ; + Pl => base_1+"ուներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN012" + } ; + +mkN013 : Str -> N ; +mkN013 base = + case base of { + base_1+"ի"+base_2@("շկ"|"ստ"|"նք"|"նձ"|"նջ"|"սպ"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+"ի"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+"ի"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+"ի"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+"ի"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+"ի"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+"ի"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => base_1+"ի"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+"ի"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+"ի"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+"ի"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+"ի"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+"ի"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+"ի"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+"ի"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+"ի"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+"ի"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+"ի"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN013" + } ; + +mkN014 : Str -> N ; +mkN014 base = + case base of { + base_1+"ի"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"վա" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+base_2+"վանից" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"վան" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"վաս" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+base_2+"վանիցս" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"վադ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+base_2+"վանիցդ" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN014" + } ; + +mkN015 : Str -> N ; +mkN015 base = + case base of { + base_1+"ի"+base_2@("նչ"|"շտ"|"րք"|"րտ"|"րգ"|"նդ"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+base_2+"եր" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+base_2+"երից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+base_2+"երով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+base_2+"երում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => base_1+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+base_2+"երս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+base_2+"երովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+base_2+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+base_2+"երովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+base_2+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkN015" + } ; + +mkN016 : Str -> N ; +mkN016 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վա" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանից" ; + Pl => base_1+"ներից" --guessed + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"վան" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վաս" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանիցս" ; + Pl => base_1+"ներիցս" --guessed + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" --guessed + } ; + Dat => table { + Sg => base_1+"վադ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանիցդ" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN016" + } ; + +mkN017 : Str -> N ; +mkN017 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"եր" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"երի" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"երից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"երով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"երում" + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"երին" + } ; + def_nom = table { + Sg => base_1+"ն" ; + Pl => base_1+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"երս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"երիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"երիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"երովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"երդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"երիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"երիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"երովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkN017" + } ; + +mkN018 : Str -> N ; +mkN018 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ներ" + } ; + Dat => table { + Sg => base_1+"ոջ" ; + Pl => base_1+"ների" + } ; + Ablat => table { + Sg => base_1+"ոջից" ; + Pl => base_1+"ներից" + } ; + Instr => table { + Sg => base_1+"ոջով" ; + Pl => base_1+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ոջը" ; + Pl => base_1+"ներին" + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => base_1+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"ներս" + } ; + Dat => table { + Sg => base_1+"ոջս" ; + Pl => base_1+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ոջիցս" ; + Pl => base_1+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ոջովս" ; + Pl => base_1+"ներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" + } ; + Dat => table { + Sg => base_1+"ոջդ" ; + Pl => base_1+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"ոջիցդ" ; + Pl => base_1+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ոջովդ" ; + Pl => base_1+"ներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN018" + } ; + +mkN019 : Str -> N ; +mkN019 base = + case base of { + base_1+"ձն"+base_2@?+"նուն" => lin N + { s = table { + Nom => table { + Sg => base_1+"ձն"+base_2+"նուն" ; + Pl => base_1+"ձն"+base_2+"նուններ" + } ; + Dat => table { + Sg => base_1+"վ"+base_2+"ն" ; + Pl => base_1+"ձն"+base_2+"նունների" + } ; + Ablat => table { + Sg => base_1+"ձն"+base_2+"նունից" ; + Pl => base_1+"ձն"+base_2+"նուններից" + } ; + Instr => table { + Sg => base_1+"վ"+base_2+"մբ" ; + Pl => base_1+"ձն"+base_2+"նուններով" + } ; + Loc => table { + Sg => base_1+"ձն"+base_2+"նունում" ; + Pl => base_1+"ձն"+base_2+"նուններում" + } + } ; + def_dat = table { + Sg => base_1+"վ"+base_2+"նը" ; + Pl => base_1+"ձն"+base_2+"նուններին" + } ; + def_nom = table { + Sg => base_1+"ձն"+base_2+"նունը" ; + Pl => base_1+"ձն"+base_2+"նունները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ձն"+base_2+"նունս" ; + Pl => base_1+"ձն"+base_2+"նուններս" + } ; + Dat => table { + Sg => base_1+"վ"+base_2+"նս" ; + Pl => base_1+"ձն"+base_2+"նուններիս" + } ; + Ablat => table { + Sg => base_1+"ձն"+base_2+"նունիցս" ; + Pl => base_1+"ձն"+base_2+"նուններիցս" + } ; + Instr => table { + Sg => base_1+"ձն"+base_2+"նունովս" ; + Pl => base_1+"ձն"+base_2+"նուններովս" + } ; + Loc => table { + Sg => base_1+"ձն"+base_2+"նունումս" ; + Pl => base_1+"ձն"+base_2+"նուններումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ձն"+base_2+"նունդ" ; + Pl => base_1+"ձն"+base_2+"նուններդ" + } ; + Dat => table { + Sg => base_1+"վ"+base_2+"նդ" ; + Pl => base_1+"ձն"+base_2+"նուններիդ" + } ; + Ablat => table { + Sg => base_1+"ձն"+base_2+"նունիցդ" ; + Pl => base_1+"ձն"+base_2+"նուններիցդ" + } ; + Instr => table { + Sg => base_1+"ձն"+base_2+"նունովդ" ; + Pl => base_1+"ձն"+base_2+"նուններովդ" + } ; + Loc => table { + Sg => base_1+"ձն"+base_2+"նունումդ" ; + Pl => base_1+"ձն"+base_2+"նուններումդ" + } + } + }; + _ => error "Can't apply paradigm mkN019" + } ; + +mkN020 : Str -> N ; +mkN020 base = + case base of { + base_1+"ու"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+"ու"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ան" ; + Pl => base_1+"ու"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"ից" ; + Pl => base_1+"ու"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+"ու"+base_2+"ով" ; + Pl => base_1+"ու"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ում" ; + Pl => base_1+"ու"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"անը" ; + Pl => base_1+"ու"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+"ու"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+"ու"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"անս" ; + Pl => base_1+"ու"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"իցս" ; + Pl => base_1+"ու"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ու"+base_2+"ովս" ; + Pl => base_1+"ու"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ումս" ; + Pl => base_1+"ու"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+"ու"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"անդ" ; + Pl => base_1+"ու"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"իցդ" ; + Pl => base_1+"ու"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ու"+base_2+"ովդ" ; + Pl => base_1+"ու"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ումդ" ; + Pl => base_1+"ու"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN020" + } ; + +mkN021 : Str -> N ; +mkN021 base = + case base of { + base_1+"վա"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"վա"+base_2 ; + Pl => base_1+"վա"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ո" ; + Pl => base_1+"վա"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"ուց" ; + Pl => base_1+"վա"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+"վա"+base_2+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"ուն" ; + Pl => base_1+"վա"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"վա"+base_2+"ը" ; + Pl => base_1+"վա"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Ablat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Ablat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN021" + } ; + +mkN022 : Str -> N ; +mkN022 base = + case base of { + base_1+"եւ"+base_2@(?+?+?+?)+"ի"+base_3@? => lin N + { s = table { + Nom => table { + Sg => base_1+"եւ"+base_2+"ի"+base_3 ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներ" + } ; + Dat => table { + Sg => base_1+"և"+base_2+base_3+"ի" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ների" + } ; + Ablat => table { + Sg => base_1+"և"+base_2+base_3+"ից" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներից" + } ; + Instr => table { + Sg => base_1+"և"+base_2+base_3+"ով" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներով" + } ; + Loc => table { + Sg => base_1+"և"+base_2+base_3+"ում" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"և"+base_2+base_3+"ին" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներին" + } ; + def_nom = table { + Sg => base_1+"եւ"+base_2+"ի"+base_3+"ը" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"եւ"+base_2+"ի"+base_3+"ս" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներս" + } ; + Dat => table { + Sg => base_1+"և"+base_2+base_3+"իս" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներիս" + } ; + Ablat => table { + Sg => base_1+"և"+base_2+base_3+"իցս" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներիցս" + } ; + Instr => table { + Sg => base_1+"և"+base_2+base_3+"ովս" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներովս" + } ; + Loc => table { + Sg => base_1+"և"+base_2+base_3+"ումս" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"եւ"+base_2+"ի"+base_3+"դ" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներդ" + } ; + Dat => table { + Sg => base_1+"և"+base_2+base_3+"իդ" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"և"+base_2+base_3+"իցդ" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"և"+base_2+base_3+"ովդ" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներովդ" + } ; + Loc => table { + Sg => base_1+"և"+base_2+base_3+"ումդ" ; + Pl => base_1+"եւ"+base_2+"ի"+base_3+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN022" + } ; + +mkN023 : Str -> N ; +mkN023 base = + case base of { + base_1+"ու"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ան" ; + Pl => base_1+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"նից" ; + Pl => base_1+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"նով" ; + Pl => base_1+base_2+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"անը" ; + Pl => base_1+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"անս" ; + Pl => base_1+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"նիցս" ; + Pl => base_1+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"նովս" ; + Pl => base_1+base_2+"ներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"անդ" ; + Pl => base_1+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"նիցդ" ; + Pl => base_1+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"նովդ" ; + Pl => base_1+base_2+"ներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN023" + } ; + +mkN024 : Str -> N ; +mkN024 base = + case base of { + base_1+"ու"+base_2@(?+?)+base_3@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2+base_3 ; + Pl => base_1+base_2+base_3+"եր" + } ; + Dat => table { + Sg => base_1+base_2+"ե"+base_3 ; + Pl => base_1+base_2+base_3+"երի" + } ; + Ablat => table { + Sg => base_1+base_2+base_3+"ից" ; + Pl => base_1+base_2+base_3+"երից" + } ; + Instr => table { + Sg => base_1+base_2+base_3+"ով" ; + Pl => base_1+base_2+base_3+"երով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"ե"+base_3+"ը" ; + Pl => base_1+base_2+base_3+"երին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+base_3+"ը" ; + Pl => base_1+base_2+base_3+"երը" + } ; + poss1 = table { + Nom => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Ablat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => nonExist ; + Pl => nonExist + } ; + Dat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Ablat => table { + Sg => nonExist ; + Pl => nonExist + } ; + Instr => table { + Sg => nonExist ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN024" + } ; + +mkN025 : Str -> N ; +mkN025 base = + case base of { + base_1+base_2@?+"ւյր" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"ւյր" ; + Pl => base_1+base_2+"ւյրեր" + } ; + Dat => table { + Sg => base_1+"ր"+base_2+"ջ" ; + Pl => base_1+base_2+"ւյրերի" + } ; + Ablat => table { + Sg => base_1+"ր"+base_2+"ջից" ; + Pl => base_1+base_2+"ւյրերից" + } ; + Instr => table { + Sg => base_1+"ր"+base_2+"ջով" ; + Pl => base_1+base_2+"ւյրերով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ր"+base_2+"ջը" ; + Pl => base_1+base_2+"ւյրերին" + } ; + def_nom = table { + Sg => base_1+base_2+"ւյրը" ; + Pl => base_1+base_2+"ւյրերը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+base_2+"ւյրս" ; + Pl => base_1+base_2+"ւյրերս" + } ; + Dat => table { + Sg => base_1+"ր"+base_2+"ջս" ; + Pl => base_1+base_2+"ւյրերիս" + } ; + Ablat => table { + Sg => base_1+"ր"+base_2+"ջիցս" ; + Pl => base_1+base_2+"ւյրերիցս" + } ; + Instr => table { + Sg => base_1+"ր"+base_2+"ջովս" ; + Pl => base_1+base_2+"ւյրերովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+base_2+"ւյրդ" ; + Pl => base_1+base_2+"ւյրերդ" + } ; + Dat => table { + Sg => base_1+"ր"+base_2+"ջդ" ; + Pl => base_1+base_2+"ւյրերիդ" + } ; + Ablat => table { + Sg => base_1+"ր"+base_2+"ջիցդ" ; + Pl => base_1+base_2+"ւյրերիցդ" + } ; + Instr => table { + Sg => base_1+"ր"+base_2+"ջովդ" ; + Pl => base_1+base_2+"ւյրերովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN025" + } ; + +mkN026 : Str -> N ; +mkN026 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ան" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"նից" ; + Pl => base_1+"ներից" --guessed + } ; + Instr => table { + Sg => base_1+"նով" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"անը" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"անս" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"նիցս" ; + Pl => base_1+"ներիցս" --guessed + } ; + Instr => table { + Sg => base_1+"նովս" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" --guessed + } ; + Dat => table { + Sg => base_1+"անդ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"նիցդ" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"նովդ" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN026" + } ; + +mkN027 : Str -> N ; +mkN027 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"եր" + } ; + Dat => table { + Sg => base_1+"ու" ; + Pl => base_1+"երի" + } ; + Ablat => table { + Sg => base_1+"ուց" ; + Pl => base_1+"երից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"երով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ուն" ; + Pl => base_1+"երին" + } ; + def_nom = table { + Sg => base_1+"ն" ; + Pl => base_1+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"երս" + } ; + Dat => table { + Sg => base_1+"ուս" ; + Pl => base_1+"երիս" + } ; + Ablat => table { + Sg => base_1+"ուցս" ; + Pl => base_1+"երիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"երովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"երդ" + } ; + Dat => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"երիդ" + } ; + Ablat => table { + Sg => base_1+"ուցդ" ; + Pl => base_1+"երիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"երովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN027" + } ; + +mkN028 : Str -> N ; +mkN028 base = + case base of { + base_1+"ու"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+base_2+"եր" + } ; + Dat => table { + Sg => base_1+"ա"+base_2 ; + Pl => base_1+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+base_2+"երից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+base_2+"երով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+base_2+"երում" + } + } ; + def_dat = table { + Sg => base_1+"ա"+base_2+"ը" ; + Pl => base_1+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+base_2+"երս" + } ; + Dat => table { + Sg => base_1+"ա"+base_2+"ս" ; + Pl => base_1+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+base_2+"երովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+base_2+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+"ա"+base_2+"դ" ; + Pl => base_1+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+base_2+"երովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+base_2+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkN028" + } ; + +mkN029 : Str -> N ; +mkN029 base = + case base of { + base_1+"եւու"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"եւու"+base_2 ; + Pl => base_1+"եւու"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+"և"+base_2+"ան" ; + Pl => base_1+"եւու"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+"եւու"+base_2+"ից" ; + Pl => base_1+"եւու"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+"և"+base_2+"ամբ" ; + Pl => base_1+"եւու"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+"եւու"+base_2+"ում" ; + Pl => base_1+"եւու"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"և"+base_2+"անը" ; + Pl => base_1+"եւու"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"եւու"+base_2+"ը" ; + Pl => base_1+"եւու"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"եւու"+base_2+"ս" ; + Pl => base_1+"եւու"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+"և"+base_2+"անս" ; + Pl => base_1+"եւու"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"եւու"+base_2+"իցս" ; + Pl => base_1+"եւու"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+"եւու"+base_2+"ովս" ; + Pl => base_1+"եւու"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+"եւու"+base_2+"ումս" ; + Pl => base_1+"եւու"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"եւու"+base_2+"դ" ; + Pl => base_1+"եւու"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+"և"+base_2+"անդ" ; + Pl => base_1+"եւու"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"եւու"+base_2+"իցդ" ; + Pl => base_1+"եւու"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"եւու"+base_2+"ովդ" ; + Pl => base_1+"եւու"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+"եւու"+base_2+"ումդ" ; + Pl => base_1+"եւու"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN029" + } ; + +mkN030 : Str -> N ; +mkN030 base = + case base of { + base_1+"ու"+base_2@(?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+"ու"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"յան" ; + Pl => base_1+"ու"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+"ու"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"յամբ" ; + Pl => base_1+"ու"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+"ու"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"յանը" ; + Pl => base_1+"ու"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+"ու"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+"ու"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"յանս" ; + Pl => base_1+"ու"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+"ու"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+"ու"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+"ու"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+"ու"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"յանդ" ; + Pl => base_1+"ու"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+"ու"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+"ու"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+"ու"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN030" + } ; + +mkN031 : Str -> N ; +mkN031 base = + case base of { + base_1+"ու"+base_2@("շտ"|"րդ"|?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+"ու"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+"ու"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+"ու"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+"ու"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+"ու"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+"ու"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+"ու"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+"ու"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+"ու"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+"ու"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+"ու"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+"ու"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+"ու"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+"ու"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+"ու"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+"ու"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+"ու"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN031" + } ; + +mkN032 : Str -> N ; +mkN032 base = + case base of { + base_1+"ուն" => lin N + { s = table { + Nom => table { + Sg => base_1+"ուն" ; + Pl => base_1+"ուններ" + } ; + Dat => table { + Sg => base_1+"վա" ; + Pl => base_1+"ունների" + } ; + Ablat => table { + Sg => base_1+"վանից" ; + Pl => base_1+"ուններից" + } ; + Instr => table { + Sg => base_1+"ունով" ; + Pl => base_1+"ուններով" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ուններում" + } + } ; + def_dat = table { + Sg => base_1+"վան" ; + Pl => base_1+"ուններին" + } ; + def_nom = table { + Sg => base_1+"ունը" ; + Pl => base_1+"ունները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ունս" ; + Pl => base_1+"ուններս" + } ; + Dat => table { + Sg => base_1+"վաս" ; + Pl => base_1+"ուններիս" + } ; + Ablat => table { + Sg => base_1+"վանիցս" ; + Pl => base_1+"ուններիցս" + } ; + Instr => table { + Sg => base_1+"ունովս" ; + Pl => base_1+"ուններովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ուններումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ունդ" ; + Pl => base_1+"ուններդ" + } ; + Dat => table { + Sg => base_1+"վադ" ; + Pl => base_1+"ուններիդ" + } ; + Ablat => table { + Sg => base_1+"վանիցդ" ; + Pl => base_1+"ուններիցդ" + } ; + Instr => table { + Sg => base_1+"ունովդ" ; + Pl => base_1+"ուններովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => base_1+"ուններումդ" + } + } + }; + _ => error "Can't apply paradigm mkN032" + } ; + +mkN033 : Str -> N ; +mkN033 base = + case base of { + base_1+"ու" => lin N + { s = table { + Nom => table { + Sg => base_1+"ու" ; + Pl => base_1+"վեր" + } ; + Dat => table { + Sg => base_1+"վի" ; + Pl => base_1+"վերի" + } ; + Ablat => table { + Sg => base_1+"վից" ; + Pl => base_1+"վերից" + } ; + Instr => table { + Sg => base_1+"վով" ; + Pl => base_1+"վերով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"վին" ; + Pl => base_1+"վերին" + } ; + def_nom = table { + Sg => base_1+"ուն" ; + Pl => base_1+"վերը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ուս" ; + Pl => base_1+"վերս" + } ; + Dat => table { + Sg => base_1+"վիս" ; + Pl => base_1+"վերիս" + } ; + Ablat => table { + Sg => base_1+"վիցս" ; + Pl => base_1+"վերիցս" + } ; + Instr => table { + Sg => base_1+"վովս" ; + Pl => base_1+"վերովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"վերդ" + } ; + Dat => table { + Sg => base_1+"վիդ" ; + Pl => base_1+"վերիդ" + } ; + Ablat => table { + Sg => base_1+"վիցդ" ; + Pl => base_1+"վերիցդ" + } ; + Instr => table { + Sg => base_1+"վովդ" ; + Pl => base_1+"վերովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN033" + } ; + +mkN034 : Str -> N ; +mkN034 base = + case base of { + base_1+"ի"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+"ա"+base_2+"այք" + } ; + Dat => table { + Sg => base_1+base_2+"ոջ" ; + Pl => base_1+"ա"+base_2+"անց" + } ; + Ablat => table { + Sg => base_1+base_2+"ոջից" ; + Pl => base_1+"ա"+base_2+"անցից" + } ; + Instr => table { + Sg => base_1+base_2+"ոջով" ; + Pl => base_1+"ա"+base_2+"անցով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"ոջը" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+"ա"+base_2+"այքս" + } ; + Dat => table { + Sg => base_1+base_2+"ոջս" ; + Pl => base_1+"ա"+base_2+"անցս" + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցս" ; + Pl => base_1+"ա"+base_2+"անցիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ոջովս" ; + Pl => base_1+"ա"+base_2+"անցովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+"ա"+base_2+"այքդ" + } ; + Dat => table { + Sg => base_1+base_2+"ոջդ" ; + Pl => base_1+"ա"+base_2+"անցդ" + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցդ" ; + Pl => base_1+"ա"+base_2+"անցիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ոջովդ" ; + Pl => base_1+"ա"+base_2+"անցովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN034" + } ; + +mkN035 : Str -> N ; +mkN035 base = + case base of { + base_1+"ի"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+"ի"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ա" ; + Pl => base_1+"ի"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"անից" ; + Pl => base_1+"ի"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"անով" ; + Pl => base_1+"ի"+base_2+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"ան" ; + Pl => base_1+"ի"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => base_1+"ի"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+"ի"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"անս" ; + Pl => base_1+"ի"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"անիցս" ; + Pl => base_1+"ի"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"անովս" ; + Pl => base_1+"ի"+base_2+"ներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+"ի"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"անդ" ; + Pl => base_1+"ի"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"անիցդ" ; + Pl => base_1+"ի"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"անովդ" ; + Pl => base_1+"ի"+base_2+"ներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN035" + } ; + +mkN036 : Str -> N ; +mkN036 base = + case base of { + base_1+"այ"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"այ"+base_2 ; + Pl => base_1+"այ"+base_2+"եր" + } ; + Dat => table { + Sg => base_1+"ո"+base_2 ; + Pl => base_1+"այ"+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"ից" ; + Pl => base_1+"այ"+base_2+"երից" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ով" ; + Pl => base_1+"այ"+base_2+"երով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ո"+base_2+"ը" ; + Pl => base_1+"այ"+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"այ"+base_2+"ը" ; + Pl => base_1+"այ"+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"այ"+base_2+"ս" ; + Pl => base_1+"այ"+base_2+"երս" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"ս" ; + Pl => base_1+"այ"+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցս" ; + Pl => base_1+"այ"+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովս" ; + Pl => base_1+"այ"+base_2+"երովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"այ"+base_2+"դ" ; + Pl => base_1+"այ"+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"դ" ; + Pl => base_1+"այ"+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցդ" ; + Pl => base_1+"այ"+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովդ" ; + Pl => base_1+"այ"+base_2+"երովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN036" + } ; + +mkN037 : Str -> N ; +mkN037 base = + case base of { + base_1+"ե"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ե"+base_2 ; + Pl => base_1+"ե"+base_2+"եր" + } ; + Dat => table { + Sg => base_1+"ո"+base_2 ; + Pl => base_1+"ե"+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"ից" ; + Pl => base_1+"ե"+base_2+"երից" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ով" ; + Pl => base_1+"ե"+base_2+"երով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ո"+base_2+"ը" ; + Pl => base_1+"ե"+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"ե"+base_2+"ը" ; + Pl => base_1+"ե"+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"ս" ; + Pl => base_1+"ե"+base_2+"երս" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"ս" ; + Pl => base_1+"ե"+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցս" ; + Pl => base_1+"ե"+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովս" ; + Pl => base_1+"ե"+base_2+"երովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"դ" ; + Pl => base_1+"ե"+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"դ" ; + Pl => base_1+"ե"+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցդ" ; + Pl => base_1+"ե"+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովդ" ; + Pl => base_1+"ե"+base_2+"երովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN037" + } ; + +mkN038 : Str -> N ; +mkN038 base = + case base of { + base_1+"ու" => lin N + { s = table { + Nom => table { + Sg => base_1+"ու" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վա" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանից" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"վան" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ուն" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ուս" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վաս" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանիցս" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ուդ" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վադ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանիցդ" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN038" + } ; + +mkN039 : Str -> N ; +mkN039 base = + case base of { + base_1+base_2@?+"ւյր" => lin N + { s = table { + Nom => table { + Sg => base_1+base_2+"ւյր" ; + Pl => base_1+base_2+"ւյրներ" + } ; + Dat => table { + Sg => base_1+"ր"+base_2+"ջ" ; + Pl => base_1+base_2+"ւյրների" + } ; + Ablat => table { + Sg => base_1+"ր"+base_2+"ջից" ; + Pl => base_1+base_2+"ւյրներից" + } ; + Instr => table { + Sg => base_1+"ր"+base_2+"ջով" ; + Pl => base_1+base_2+"ւյրներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ր"+base_2+"ջը" ; + Pl => base_1+base_2+"ւյրներին" + } ; + def_nom = table { + Sg => base_1+base_2+"ւյրը" ; + Pl => base_1+base_2+"ւյրները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+base_2+"ւյրս" ; + Pl => base_1+base_2+"ւյրներս" + } ; + Dat => table { + Sg => base_1+"ր"+base_2+"ջս" ; + Pl => base_1+base_2+"ւյրներիս" + } ; + Ablat => table { + Sg => base_1+"ր"+base_2+"ջիցս" ; + Pl => base_1+base_2+"ւյրներիցս" + } ; + Instr => table { + Sg => base_1+"ր"+base_2+"ջովս" ; + Pl => base_1+base_2+"ւյրներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+base_2+"ւյրդ" ; + Pl => base_1+base_2+"ւյրներդ" + } ; + Dat => table { + Sg => base_1+"ր"+base_2+"ջդ" ; + Pl => base_1+base_2+"ւյրներիդ" + } ; + Ablat => table { + Sg => base_1+"ր"+base_2+"ջիցդ" ; + Pl => base_1+base_2+"ւյրներիցդ" + } ; + Instr => table { + Sg => base_1+"ր"+base_2+"ջովդ" ; + Pl => base_1+base_2+"ւյրներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN039" + } ; + +mkN040 : Str -> N ; +mkN040 base = + case base of { + base_1+"այ"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"այ"+base_2 ; + Pl => base_1+"այ"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+"ո"+base_2 ; + Pl => base_1+"այ"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"ից" ; + Pl => base_1+"այ"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ով" ; + Pl => base_1+"այ"+base_2+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ո"+base_2+"ը" ; + Pl => base_1+"այ"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"այ"+base_2+"ը" ; + Pl => base_1+"այ"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"այ"+base_2+"ս" ; + Pl => base_1+"այ"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"ս" ; + Pl => base_1+"այ"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցս" ; + Pl => base_1+"այ"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովս" ; + Pl => base_1+"այ"+base_2+"ներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"այ"+base_2+"դ" ; + Pl => base_1+"այ"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+"ո"+base_2+"դ" ; + Pl => base_1+"այ"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ո"+base_2+"իցդ" ; + Pl => base_1+"այ"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ո"+base_2+"ովդ" ; + Pl => base_1+"այ"+base_2+"ներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN040" + } ; + +mkN041 : Str -> N ; +mkN041 base = + case base of { + base_1+"ե"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ե"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ի"+base_2+"ի" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"ի"+base_2+"ից" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ի"+base_2+"ով" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ի"+base_2+"ում" ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ի"+base_2+"ին" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ե"+base_2+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"ս" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ի"+base_2+"իս" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"ի"+base_2+"իցս" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ի"+base_2+"ովս" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ի"+base_2+"ումս" ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"դ" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"ի"+base_2+"իդ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"ի"+base_2+"իցդ" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ի"+base_2+"ովդ" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ի"+base_2+"ումդ" ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN041" + } ; + +mkN042 : Str -> N ; +mkN042 base = + case base of { + base_1+"ի" => lin N + { s = table { + Nom => table { + Sg => base_1+"ի" ; + Pl => base_1+"իներ" + } ; + Dat => table { + Sg => base_1+"ու" ; + Pl => base_1+"իների" + } ; + Ablat => table { + Sg => base_1+"ուց" ; + Pl => base_1+"իներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"իներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ուն" ; + Pl => base_1+"իներին" + } ; + def_nom = table { + Sg => base_1+"ին" ; + Pl => base_1+"իները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"իս" ; + Pl => base_1+"իներս" + } ; + Dat => table { + Sg => base_1+"ուս" ; + Pl => base_1+"ունս" + } ; + Ablat => table { + Sg => base_1+"ուցս" ; + Pl => base_1+"իներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"իներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"իդ" ; + Pl => base_1+"իներդ" + } ; + Dat => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"իներիդ" + } ; + Ablat => table { + Sg => base_1+"ուցդ" ; + Pl => base_1+"իներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"իներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN042" + } ; + +mkN043 : Str -> N ; +mkN043 base = + case base of { + base_1+"ե"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ե"+base_2 ; + Pl => base_1+"ե"+base_2+"եր" + } ; + Dat => table { + Sg => base_1+"ի"+base_2+"ոջ" ; + Pl => base_1+"ե"+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+"ի"+base_2+"ոջից" ; + Pl => base_1+"ե"+base_2+"երից" + } ; + Instr => table { + Sg => base_1+"ի"+base_2+"ոջով" ; + Pl => base_1+"ե"+base_2+"երով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ի"+base_2+"ոջը" ; + Pl => base_1+"ե"+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"ե"+base_2+"ը" ; + Pl => base_1+"ե"+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"ս" ; + Pl => base_1+"ե"+base_2+"երս" + } ; + Dat => table { + Sg => base_1+"ի"+base_2+"ոջս" ; + Pl => base_1+"ե"+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+"ի"+base_2+"ոջիցս" ; + Pl => base_1+"ե"+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+"ի"+base_2+"ոջովս" ; + Pl => base_1+"ե"+base_2+"երովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ե"+base_2+"դ" ; + Pl => base_1+"ե"+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+"ի"+base_2+"ոջդ" ; + Pl => base_1+"ե"+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+"ի"+base_2+"ոջիցդ" ; + Pl => base_1+"ե"+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+"ի"+base_2+"ոջովդ" ; + Pl => base_1+"ե"+base_2+"երովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN043" + } ; + +mkN044 : Str -> N ; +mkN044 base = + case base of { + base_1+"ու"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"ոջ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+base_2+"ոջից" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ոջով" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"ոջը" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"ոջս" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցս" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ոջովս" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+base_2+"ոջդ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցդ" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+base_2+"ոջովդ" ; + Pl => nonExist + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN044" + } ; + +mkN045 : Str -> N ; +mkN045 base = + case base of { + base_1+"ը" => lin N + { s = table { + Nom => table { + Sg => base_1+"ը" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վա" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանից" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"վան" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ըս" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վաս" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանիցս" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ըդ" ; + Pl => nonExist + } ; + Dat => table { + Sg => base_1+"վադ" ; + Pl => nonExist + } ; + Ablat => table { + Sg => base_1+"վանիցդ" ; + Pl => nonExist + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => nonExist + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN045" + } ; + +mkN046 : Str -> N ; +mkN046 base = + case base of { + base_1+"ի"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+"ա"+base_2+"այք" --guessed + } ; + Dat => table { + Sg => base_1+base_2+"ոջ" ; + Pl => base_1+"ա"+base_2+"անց" --guessed + } ; + Ablat => table { + Sg => base_1+base_2+"ոջից" ; + Pl => base_1+"ա"+base_2+"անցից" --guessed + } ; + Instr => table { + Sg => base_1+base_2+"ոջով" ; + Pl => base_1+"ա"+base_2+"անցով" --guessed + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"ոջը" ; + Pl => base_1+"ի"+base_2+"ներին" --guessed + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => base_1+"ի"+base_2+"ները" --guessed + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+"ա"+base_2+"այքս" --guessed + } ; + Dat => table { + Sg => base_1+base_2+"ոջս" ; + Pl => base_1+"ա"+base_2+"անցս" --guessed + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցս" ; + Pl => base_1+"ա"+base_2+"անցիցս" --guessed + } ; + Instr => table { + Sg => base_1+base_2+"ոջովս" ; + Pl => base_1+"ա"+base_2+"անցովս" --guessed + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+"ա"+base_2+"այքդ" --guessed + } ; + Dat => table { + Sg => base_1+base_2+"ոջդ" ; + Pl => base_1+"ա"+base_2+"անցդ" --guessed + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցդ" ; + Pl => base_1+"ա"+base_2+"անցիցդ" --guessed + } ; + Instr => table { + Sg => base_1+base_2+"ոջովդ" ; + Pl => base_1+"ա"+base_2+"անցովդ" --guessed + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN046" + } ; + +mkN047 : Str -> N ; +mkN047 base = + case base of { + base_1 => lin N + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"իկ" + } ; + Dat => table { + Sg => base_1+"ու" ; + Pl => base_1+"կանց" + } ; + Ablat => table { + Sg => base_1+"ուց" ; + Pl => base_1+"կանցից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"կանցով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ուն" ; + Pl => nonExist + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => nonExist + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"իկս" + } ; + Dat => table { + Sg => base_1+"ուս" ; + Pl => base_1+"կանցս" + } ; + Ablat => table { + Sg => base_1+"ուցս" ; + Pl => base_1+"կանցիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"կանցովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"իկդ" + } ; + Dat => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"կանցդ" + } ; + Ablat => table { + Sg => base_1+"ուցդ" ; + Pl => base_1+"կանցիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"կանցովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN047" + } ; + +mkN048 : Str -> N ; +mkN048 base = + case base of { + base_1+"ու"+base_2@(?+?) => lin N + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+"ու"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"յան" ; + Pl => base_1+"ու"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"ից" ; + Pl => base_1+"ու"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"յամբ" ; + Pl => base_1+"ու"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ում" ; + Pl => base_1+"ու"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"յանը" ; + Pl => base_1+"ու"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+"ու"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+"ու"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"յանս" ; + Pl => base_1+"ու"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"իցս" ; + Pl => base_1+"ու"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ու"+base_2+"ովս" ; + Pl => base_1+"ու"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ումս" ; + Pl => base_1+"ու"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+"ու"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"յանդ" ; + Pl => base_1+"ու"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"ու"+base_2+"իցդ" ; + Pl => base_1+"ու"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ու"+base_2+"ովդ" ; + Pl => base_1+"ու"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+"ու"+base_2+"ումդ" ; + Pl => base_1+"ու"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkN048" + } ; + +mkN049 : Str -> N ; +mkN049 base = + case base of { + base_1+"ի"+base_2@? => lin N + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+"ի"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ոջ" ; + Pl => base_1+"ի"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"ոջից" ; + Pl => base_1+"ի"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"ոջով" ; + Pl => base_1+"ի"+base_2+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+base_2+"ոջը" ; + Pl => base_1+"ի"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => base_1+"ի"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+"ի"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"ոջս" ; + Pl => base_1+"ի"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցս" ; + Pl => base_1+"ի"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ոջովս" ; + Pl => base_1+"ի"+base_2+"ներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+"ի"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"ոջդ" ; + Pl => base_1+"ի"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"ոջիցդ" ; + Pl => base_1+"ի"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ոջովդ" ; + Pl => base_1+"ի"+base_2+"ներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkN049" + } ; + +mkA001 : Str -> A ; +mkA001 base = + case base of { + base_1 => lin A + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ներ" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"ների" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"ներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"ներով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"ներին" + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => base_1+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"ներս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"ներիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"ներովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"ներովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkA001" + } ; + +mkA002 : Str -> A ; +mkA002 base = + case base of { + base_1 => lin A + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ներ" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"ների" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"ներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"ներով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"ներին" + } ; + def_nom = table { + Sg => base_1+"ն" ; + Pl => base_1+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"ներս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"ներիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"ներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"ներովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"ներովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkA002" + } ; + +mkA003 : Str -> A ; +mkA003 base = + case base of { + base_1+"ի" => lin A + { s = table { + Nom => table { + Sg => base_1+"ի" ; + Pl => base_1+"իներ" + } ; + Dat => table { + Sg => base_1+"ու" ; + Pl => base_1+"իների" + } ; + Ablat => table { + Sg => base_1+"ուց" ; + Pl => base_1+"իներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"իներով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"իներում" + } + } ; + def_dat = table { + Sg => base_1+"ուն" ; + Pl => base_1+"իներին" + } ; + def_nom = table { + Sg => base_1+"ին" ; + Pl => base_1+"իները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"իս" ; + Pl => base_1+"իներս" + } ; + Dat => table { + Sg => base_1+"ուս" ; + Pl => base_1+"իներիս" + } ; + Ablat => table { + Sg => base_1+"ուցս" ; + Pl => base_1+"իներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"իներովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"իներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"իդ" ; + Pl => base_1+"իներդ" + } ; + Dat => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"իներիդ" + } ; + Ablat => table { + Sg => base_1+"ուցդ" ; + Pl => base_1+"իներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"իներովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"իներումդ" + } + } + }; + _ => error "Can't apply paradigm mkA003" + } ; + +mkA004 : Str -> A ; +mkA004 base = + case base of { + base_1 => lin A + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"ներ" + } ; + Dat => table { + Sg => base_1+"յի" ; + Pl => base_1+"ների" + } ; + Ablat => table { + Sg => base_1+"յից" ; + Pl => base_1+"ներից" + } ; + Instr => table { + Sg => base_1+"յով" ; + Pl => base_1+"ներով" + } ; + Loc => table { + Sg => base_1+"յում" ; + Pl => base_1+"ներում" + } + } ; + def_dat = table { + Sg => base_1+"յին" ; + Pl => base_1+"ներին" + } ; + def_nom = table { + Sg => base_1+"ն" ; + Pl => base_1+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"ներս" + } ; + Dat => table { + Sg => base_1+"յիս" ; + Pl => base_1+"ներիս" + } ; + Ablat => table { + Sg => base_1+"յիցս" ; + Pl => base_1+"ներիցս" + } ; + Instr => table { + Sg => base_1+"յովս" ; + Pl => base_1+"ներովս" + } ; + Loc => table { + Sg => base_1+"յումս" ; + Pl => base_1+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"ներդ" + } ; + Dat => table { + Sg => base_1+"յիդ" ; + Pl => base_1+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"յիցդ" ; + Pl => base_1+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"յովդ" ; + Pl => base_1+"ներովդ" + } ; + Loc => table { + Sg => base_1+"յումդ" ; + Pl => base_1+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkA004" + } ; + +mkA005 : Str -> A ; +mkA005 base = + case base of { + base_1 => lin A + { s = table { + Nom => table { + Sg => base_1 ; + Pl => base_1+"եր" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"երի" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"երից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"երով" + } ; + Loc => table { + Sg => base_1+"ում" ; + Pl => base_1+"երում" + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"երին" + } ; + def_nom = table { + Sg => base_1+"ը" ; + Pl => base_1+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ս" ; + Pl => base_1+"երս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"երիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"երիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"երովս" + } ; + Loc => table { + Sg => base_1+"ումս" ; + Pl => base_1+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"դ" ; + Pl => base_1+"երդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"երիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"երիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"երովդ" + } ; + Loc => table { + Sg => base_1+"ումդ" ; + Pl => base_1+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkA005" + } ; + +mkA006 : Str -> A ; +mkA006 base = + case base of { + base_1+"ի"+base_2@("շտ"|?) => lin A + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+"ի"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+"ի"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+"ի"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+"ի"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+"ի"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+"ի"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => base_1+"ի"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+"ի"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+"ի"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+"ի"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+"ի"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+"ի"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+"ի"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+"ի"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+"ի"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+"ի"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+"ի"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkA006" + } ; + +mkA007 : Str -> A ; +mkA007 base = + case base of { + base_1+base_2@(?+?+?+?+?) => lin A + { s = table { + Nom => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+"յ"+base_2+"յի" ; + Pl => base_1+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+"յ"+base_2+"յից" ; + Pl => base_1+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+"յ"+base_2+"յով" ; + Pl => base_1+base_2+"ներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"յ"+base_2+"յին" ; + Pl => base_1+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+base_2+"ն" ; + Pl => base_1+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+base_2+"ս" ; + Pl => base_1+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+"յ"+base_2+"յիս" ; + Pl => base_1+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+"յ"+base_2+"յիցս" ; + Pl => base_1+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+"յ"+base_2+"յովս" ; + Pl => base_1+base_2+"ներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+base_2+"դ" ; + Pl => base_1+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+"յ"+base_2+"յիդ" ; + Pl => base_1+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+"յ"+base_2+"յիցդ" ; + Pl => base_1+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+"յ"+base_2+"յովդ" ; + Pl => base_1+base_2+"ներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkA007" + } ; + +mkA008 : Str -> A ; +mkA008 base = + case base of { + base_1+"ու"+base_2@("նչ"|?) => lin A + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+"ու"+base_2+"ներ" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+"ու"+base_2+"ների" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+"ու"+base_2+"ներից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+"ու"+base_2+"ներով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+"ու"+base_2+"ներում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+"ու"+base_2+"ներին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+"ու"+base_2+"ները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+"ու"+base_2+"ներս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+"ու"+base_2+"ներիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+"ու"+base_2+"ներիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+"ու"+base_2+"ներովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+"ու"+base_2+"ներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+"ու"+base_2+"ներդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+"ու"+base_2+"ներիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+"ու"+base_2+"ներիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+"ու"+base_2+"ներովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+"ու"+base_2+"ներումդ" + } + } + }; + _ => error "Can't apply paradigm mkA008" + } ; + +mkA009 : Str -> A ; +mkA009 base = + case base of { + base_1+"ու" => lin A + { s = table { + Nom => table { + Sg => base_1+"ու" ; + Pl => base_1+"ուներ" + } ; + Dat => table { + Sg => base_1+"վի" ; + Pl => base_1+"ուների" + } ; + Ablat => table { + Sg => base_1+"վից" ; + Pl => base_1+"ուներից" + } ; + Instr => table { + Sg => base_1+"վով" ; + Pl => base_1+"ուներով" + } ; + Loc => table { + Sg => base_1+"վում" ; + Pl => base_1+"ուներում" + } + } ; + def_dat = table { + Sg => base_1+"վին" ; + Pl => base_1+"ուներին" + } ; + def_nom = table { + Sg => base_1+"ուն" ; + Pl => base_1+"ուները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ուս" ; + Pl => base_1+"ուներս" + } ; + Dat => table { + Sg => base_1+"վիս" ; + Pl => base_1+"ուներիս" + } ; + Ablat => table { + Sg => base_1+"վիցս" ; + Pl => base_1+"ուներիցս" + } ; + Instr => table { + Sg => base_1+"վովս" ; + Pl => base_1+"ուներովս" + } ; + Loc => table { + Sg => base_1+"վումս" ; + Pl => base_1+"ուներումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ուդ" ; + Pl => base_1+"ուներդ" + } ; + Dat => table { + Sg => base_1+"վիդ" ; + Pl => base_1+"ուներիդ" + } ; + Ablat => table { + Sg => base_1+"վիցդ" ; + Pl => base_1+"ուներիցդ" + } ; + Instr => table { + Sg => base_1+"վովդ" ; + Pl => base_1+"ուներովդ" + } ; + Loc => table { + Sg => base_1+"վումդ" ; + Pl => base_1+"ուներումդ" + } + } + }; + _ => error "Can't apply paradigm mkA009" + } ; + +mkA010 : Str -> A ; +mkA010 base = + case base of { + base_1@?+"ի"+base_2 => lin A + { s = table { + Nom => table { + Sg => base_1+"ի"+base_2 ; + Pl => base_1+base_2+"եր" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+base_2+"երից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+base_2+"երով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+base_2+"երում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"ի"+base_2+"ը" ; + Pl => base_1+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"ս" ; + Pl => base_1+base_2+"երս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+base_2+"երովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+base_2+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ի"+base_2+"դ" ; + Pl => base_1+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+base_2+"երովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+base_2+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkA010" + } ; + +mkA011 : Str -> A ; +mkA011 base = + case base of { + base_1+"ու"+base_2@? => lin A + { s = table { + Nom => table { + Sg => base_1+"ու"+base_2 ; + Pl => base_1+base_2+"եր" + } ; + Dat => table { + Sg => base_1+base_2+"ի" ; + Pl => base_1+base_2+"երի" + } ; + Ablat => table { + Sg => base_1+base_2+"ից" ; + Pl => base_1+base_2+"երից" + } ; + Instr => table { + Sg => base_1+base_2+"ով" ; + Pl => base_1+base_2+"երով" + } ; + Loc => table { + Sg => base_1+base_2+"ում" ; + Pl => base_1+base_2+"երում" + } + } ; + def_dat = table { + Sg => base_1+base_2+"ին" ; + Pl => base_1+base_2+"երին" + } ; + def_nom = table { + Sg => base_1+"ու"+base_2+"ը" ; + Pl => base_1+base_2+"երը" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"ս" ; + Pl => base_1+base_2+"երս" + } ; + Dat => table { + Sg => base_1+base_2+"իս" ; + Pl => base_1+base_2+"երիս" + } ; + Ablat => table { + Sg => base_1+base_2+"իցս" ; + Pl => base_1+base_2+"երիցս" + } ; + Instr => table { + Sg => base_1+base_2+"ովս" ; + Pl => base_1+base_2+"երովս" + } ; + Loc => table { + Sg => base_1+base_2+"ումս" ; + Pl => base_1+base_2+"երումս" + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"ու"+base_2+"դ" ; + Pl => base_1+base_2+"երդ" + } ; + Dat => table { + Sg => base_1+base_2+"իդ" ; + Pl => base_1+base_2+"երիդ" + } ; + Ablat => table { + Sg => base_1+base_2+"իցդ" ; + Pl => base_1+base_2+"երիցդ" + } ; + Instr => table { + Sg => base_1+base_2+"ովդ" ; + Pl => base_1+base_2+"երովդ" + } ; + Loc => table { + Sg => base_1+base_2+"ումդ" ; + Pl => base_1+base_2+"երումդ" + } + } + }; + _ => error "Can't apply paradigm mkA011" + } ; + +mkA012 : Str -> A ; +mkA012 base = + case base of { + base_1+"ի" => lin A + { s = table { + Nom => table { + Sg => base_1+"ի" ; + Pl => base_1+"իներ" + } ; + Dat => table { + Sg => base_1+"ի" ; + Pl => base_1+"իների" + } ; + Ablat => table { + Sg => base_1+"ից" ; + Pl => base_1+"իներից" + } ; + Instr => table { + Sg => base_1+"ով" ; + Pl => base_1+"իներով" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + def_dat = table { + Sg => base_1+"ին" ; + Pl => base_1+"իներին" + } ; + def_nom = table { + Sg => base_1+"ին" ; + Pl => base_1+"իները" + } ; + poss1 = table { + Nom => table { + Sg => base_1+"իս" ; + Pl => base_1+"իներս" + } ; + Dat => table { + Sg => base_1+"իս" ; + Pl => base_1+"իներիս" + } ; + Ablat => table { + Sg => base_1+"իցս" ; + Pl => base_1+"իներիցս" + } ; + Instr => table { + Sg => base_1+"ովս" ; + Pl => base_1+"իներովս" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + poss2 = table { + Nom => table { + Sg => base_1+"իդ" ; + Pl => base_1+"իներդ" + } ; + Dat => table { + Sg => base_1+"իդ" ; + Pl => base_1+"իներիդ" + } ; + Ablat => table { + Sg => base_1+"իցդ" ; + Pl => base_1+"իներիցդ" + } ; + Instr => table { + Sg => base_1+"ովդ" ; + Pl => base_1+"իներովդ" + } ; + Loc => table { + Sg => nonExist ; + Pl => nonExist + } + } + }; + _ => error "Can't apply paradigm mkA012" + } ; +} \ No newline at end of file diff --git a/src/armenian/NounHye.gf b/src/armenian/NounHye.gf new file mode 100644 index 00000000..652b2511 --- /dev/null +++ b/src/armenian/NounHye.gf @@ -0,0 +1,4 @@ +concrete NounHye of Noun = CatHye ** { +lin + UseN n = n ; +} diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf new file mode 100644 index 00000000..434f5453 --- /dev/null +++ b/src/armenian/ParadigmsHye.gf @@ -0,0 +1,488 @@ +resource ParadigmsHye = MorphoHye ** open Predef, Prelude, CatHye, ResHye in { +oper + regV : Str -> V -- s + = \form -> case form of { + _ + "ղալ" => mkV002 form; + _ + "ձալ" => mkV002 form; + _ + "զալ" => mkV002 form; + _ + "լալ" => mkV002 form; + _ + "թալ" => mkV002 form; + _ + "ռալ" => mkV002 form; + _ + "րալ" => mkV002 form; + _ + "ւալ" => mkV002 form; + _ + "ջալ" => mkV002 form; + _ + "գալ" => mkV002 form; + _ + "տալ" => mkV002 form; + _ + "ճալ" => mkV002 form; + _ + "սալ" => mkV002 form; + _ + "փալ" => mkV002 form; + _ + "կալ" => mkV002 form; + _ + "վալ" => mkV002 form; + _ + "բալ" => mkV002 form; + _ + "ծալ" => mkV002 form; + _ + "չալ" => mkV002 form; + _ + "նալ" => mkV004 form; + _ + "ել" => mkV001 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2V : Str -> Str -> V -- s Imperative_Jussive;Pl + = \form1, form2 -> case of { + <_ + "լ", _ + "է՛ք"> => mkV012 form1; + _ => regV form1 + } ; + + regN : Str -> N -- s;Nom;Sg + = \form -> case form of { + _ + "իւն" => mkN008 form; + _ + "ժամ" => mkN007 form; + _ + "մոմ" => mkN007 form; + _ + "ւնտ" => mkN007 form; + _ + "րստ" => mkN007 form; + _ + "խոտ" => mkN007 form; + _ + "ելտ" => mkN007 form; + _ + "տառ" => mkN007 form; + _ + "երդ" => mkN007 form; + _ + "ձող" => mkN007 form; + _ + "փող" => mkN007 form; + _ + "հող" => mkN007 form; + _ + "խաղ" => mkN007 form; + _ + "իկղ" => mkN007 form; + _ + "շոր" => mkN007 form; + _ + "զոր" => mkN007 form; + _ + "շեր" => mkN016 form; + _ + "եգր" => mkN007 form; + _ + "թել" => mkN007 form; + _ + "խել" => mkN007 form; + _ + "ճոճ" => mkN007 form; + _ + "իցք" => mkN007 form; + _ + "ենք" => mkN007 form; + _ + "ուրծք" => mkN005 form; + _ + "յծք" => mkN007 form; + _ + "նչք" => mkN007 form; + _ + "ծոց" => mkN007 form; + _ + "այց" => mkN007 form; + _ + "կաց" => mkN007 form; + _ + "ջիջ" => mkN013 form; + _ + "եղջ" => mkN007 form; + _ + "ւրթ" => mkN007 form; + _ + "յոթ" => mkN007 form; + _ + "ճապ" => mkN001 form; + _ + "րապ" => mkN001 form; + _ + "լեպ" => mkN001 form; + _ + "ծագ" => mkN007 form; + _ + "ենգ" => mkN007 form; + _ + "գիչ" => mkN013 form; + _ + "միչ" => mkN013 form; + _ + "տիչ" => mkN013 form; + _ + "նիչ" => mkN013 form; + _ + "ւրծ" => mkN007 form; + _ + "թու" => mkN012 form; + _ + "զու" => mkN012 form; + _ + "ռու" => mkN012 form; + _ + "ճու" => mkN012 form; + _ + "ղու" => mkN012 form; + _ + "ճաշ" => mkN007 form; + _ + "վիշ" => mkN013 form; + _ + "ուրձ" => mkN005 form; + _ + "դհի" => mkN006 form; + _ + "ւդի" => mkN006 form; + _ + "ուն" => mkN010 form; + _ + "սն" => mkN007 form; + _ + "կն" => mkN007 form; + _ + "շն" => mkN007 form; + _ + "մն" => mkN007 form; + _ + "ռն" => mkN007 form; + _ + "ձն" => mkN007 form; + _ + "նն" => mkN007 form; + _ + "ւմ" => mkN004 form; + _ + "րմ" => mkN007 form; + _ + "ղմ" => mkN007 form; + _ + "յմ" => mkN007 form; + _ + "հմ" => mkN007 form; + _ + "լմ" => mkN007 form; + _ + "յտ" => mkN007 form; + _ + "յռ" => mkN007 form; + _ + "ղդ" => mkN007 form; + _ + "տղ" => mkN007 form; + _ + "ղխ" => mkN007 form; + _ + "լխ" => mkN007 form; + _ + "ճխ" => mkN007 form; + _ + "չխ" => mkN007 form; + _ + "ղկ" => mkN007 form; + _ + "սկ" => mkN007 form; + _ + "տր" => mkN007 form; + _ + "կր" => mkN007 form; + _ + "նր" => mkN007 form; + _ + "ղր" => mkN007 form; + _ + "խր" => mkN007 form; + _ + "բր" => mkN007 form; + _ + "օր" => mkN016 form; + _ + "յլ" => mkN007 form; + _ + "րս" => mkN007 form; + _ + "մս" => mkN007 form; + _ + "փս" => mkN007 form; + _ + "լս" => mkN007 form; + _ + "րճ" => mkN007 form; + _ + "եճ" => mkN007 form; + _ + "աճ" => mkN007 form; + _ + "նճ" => mkN007 form; + _ + "ջք" => mkN007 form; + _ + "մք" => mkN007 form; + _ + "վք" => mkN007 form; + _ + "թք" => mkN007 form; + _ + "բք" => mkN007 form; + _ + "խց" => mkN007 form; + _ + "ղց" => mkN007 form; + _ + "վթ" => mkN007 form; + _ + "ղբ" => mkN007 form; + _ + "րբ" => mkN007 form; + _ + "ուբ" => mkN005 form; + _ + "զբ" => mkN007 form; + _ + "եբ" => mkN007 form; + _ + "ոպ" => mkN001 form; + _ + "ւպ" => mkN001 form; + _ + "իպ" => mkN001 form; + _ + "եգ" => mkN007 form; + _ + "իգ" => mkN007 form; + _ + "ոգ" => mkN007 form; + _ + "յգ" => mkN007 form; + _ + "ուրչ" => mkN005 form; + _ + "շչ" => mkN007 form; + _ + "նծ" => mkN007 form; + _ + "եծ" => mkN007 form; + _ + "յծ" => mkN007 form; + _ + "եւ" => mkN001 form; + _ + "աւ" => mkN001 form; + _ + "ւժ" => mkN007 form; + _ + "իժ" => mkN013 form; + _ + "քշ" => mkN007 form; + _ + "րշ" => mkN007 form; + _ + "ուզ" => mkN005 form; + _ + "րզ" => mkN007 form; + _ + "ավ" => mkN007 form; + _ + "յվ" => mkN007 form; + _ + "աֆ" => mkN001 form; + _ + "լֆ" => mkN001 form; + _ + "իփ" => mkN001 form; + _ + "ափ" => mkN001 form; + _ + "ոյ" => mkN007 form; + _ + "լի" => mkN006 form; + _ + "բի" => mkN006 form; + _ + "խի" => mkN006 form; + _ + "թի" => mkN006 form; + _ + "պի" => mkN006 form; + _ + "վի" => mkN006 form; + _ + "փի" => mkN006 form; + _ + "աի" => mkN006 form; + _ + "ջի" => mkN006 form; + _ + "ն" => mkN001 form; + _ + "մ" => mkN001 form; + _ + "տ" => mkN001 form; + _ + "ռ" => mkN001 form; + _ + "դ" => mkN001 form; + _ + "ղ" => mkN001 form; + _ + "խ" => mkN001 form; + _ + "կ" => mkN001 form; + _ + "ր" => mkN001 form; + _ + "լ" => mkN001 form; + _ + "ս" => mkN001 form; + _ + "ճ" => mkN001 form; + _ + "ք" => mkN001 form; + _ + "ց" => mkN001 form; + _ + "ջ" => mkN001 form; + _ + "թ" => mkN001 form; + _ + "բ" => mkN001 form; + _ + "պ" => mkN007 form; + _ + "գ" => mkN001 form; + _ + "չ" => mkN001 form; + _ + "ծ" => mkN001 form; + _ + "ւ" => mkN006 form; + _ + "ժ" => mkN001 form; + _ + "շ" => mkN001 form; + _ + "զ" => mkN001 form; + _ + "ձ" => mkN007 form; + _ + "վ" => mkN001 form; + _ + "ֆ" => mkN007 form; + _ + "հ" => mkN001 form; + _ + "փ" => mkN007 form; + _ + "յ" => mkN001 form; + _ + "ա" => mkN002 form; + _ + "ո" => mkN002 form; + _ + "ի" => mkN003 form; + _ + "ե" => mkN006 form; + _ + "է" => mkN006 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2N : Str -> Str -> N -- s;Nom;Sg s;Dat;Sg + = \form1, form2 -> case of { + <_ + "թու", _ + "ւի"> => mkN006 form1; + <_ + "շեր", _ + "ի"> => mkN001 form1; + <_ + "ժամ", _ + "ա"> => mkN016 form1; + <_ + "ուն", _ + "բնի"> => mkN005 form1; + <_ + "ւն", _ + "վան"> => mkN009 form1; + <_ + "ւն", _ + "տան"> => mkN028 form1; + <_ + "ւն", _ + "շան"> => mkN028 form1; + <_ + "ւզ", _ + "ւզի"> => mkN001 form1; + <_ + "ւն", _ + "ի"> => mkN001 form1; + <_ + "ւն", _ + "ա"> => mkN032 form1; + <_ + "ւմ", _ + "ի"> => mkN001 form1; + <_ + "լի", _ + "ւ"> => mkN003 form1; + <_ + "բի", _ + "ւ"> => mkN003 form1; + <_ + "խի", _ + "ւ"> => mkN003 form1; + <_ + "թի", _ + "ւ"> => mkN003 form1; + <_ + "տ", _ + "մտի"> => mkN005 form1; + <_ + "տ", _ + "գտի"> => mkN005 form1; + <_ + "տ", _ + "վտի"> => mkN013 form1; + <_ + "ռ", _ + "ճռի"> => mkN013 form1; + <_ + "ն", _ + "ծնի"> => mkN013 form1; + <_ + "ն", _ + "տնի"> => mkN013 form1; + <_ + "ն", _ + "ցնի"> => mkN013 form1; + <_ + "ն", _ + "ձնի"> => mkN013 form1; + <_ + "ն", _ + "բնի"> => mkN013 form1; + <_ + "ն", _ + "խնի"> => mkN013 form1; + <_ + "ղ", _ + "ւղի"> => mkN007 form1; + <_ + "ղ", _ + "վղի"> => mkN013 form1; + <_ + "ղ", _ + "փղի"> => mkN015 form1; + <_ + "ղ", _ + "տղի"> => mkN031 form1; + <_ + "խ", _ + "ծխի"> => mkN005 form1; + <_ + "խ", _ + "բխի"> => mkN031 form1; + <_ + "կ", _ + "ղկի"> => mkN013 form1; + <_ + "կ", _ + "տկի"> => mkN013 form1; + <_ + "կ", _ + "պկի"> => mkN013 form1; + <_ + "կ", _ + "զկի"> => mkN031 form1; + <_ + "ս", _ + "մսի"> => mkN013 form1; + <_ + "ճ", _ + "վճի"> => mkN013 form1; + <_ + "ճ", _ + "հճի"> => mkN013 form1; + <_ + "ց", _ + "տցի"> => mkN005 form1; + <_ + "ց", _ + "կցի"> => mkN013 form1; + <_ + "ր", _ + "դրի"> => mkN013 form1; + <_ + "ր", _ + "գրի"> => mkN015 form1; + <_ + "ր", _ + "տրի"> => mkN005 form1; + <_ + "ր", _ + "ջրի"> => mkN005 form1; + <_ + "ր", _ + "լրի"> => mkN005 form1; + <_ + "ր", _ + "նրի"> => mkN013 form1; + <_ + "ր", _ + "խրի"> => mkN013 form1; + <_ + "ր", _ + "կրի"> => mkN013 form1; + <_ + "ր", _ + "ցրի"> => mkN013 form1; + <_ + "չ", _ + "պչի"> => mkN013 form1; + <_ + "չ", _ + "կչի"> => mkN013 form1; + <_ + "չ", _ + "րչի"> => mkN013 form1; + <_ + "չ", _ + "ցչի"> => mkN013 form1; + <_ + "չ", _ + "վչի"> => mkN013 form1; + <_ + "ծ", _ + "գծի"> => mkN015 form1; + <_ + "շ", _ + "փշի"> => mkN005 form1; + <_ + "ի", _ + "իու"> => mkN027 form1; + <_ + "ի", _ + "ձիի"> => mkN017 form1; + <_ + "ւ", _ + "վի"> => mkN012 form1; + <_ + "տ", _ + "ա"> => mkN016 form1; + <_ + "ռ", _ + "ն"> => mkN026 form1; + <_ + "ն", _ + "ջ"> => mkN034 form1; + <_ + "կ", _ + "ա"> => mkN016 form1; + <_ + "կ", _ + "ն"> => mkN023 form1; + <_ + "ր", _ + "ջ"> => mkN043 form1; + <_ + "ի", _ + "ի"> => mkN006 form1; + _ => regN form1 + } ; + + regA : Str -> A -- s;Nom;Sg + = \form -> case form of { + _ + "կիչ" => mkA006 form; + _ + "ենգ" => mkA005 form; + _ + "աղջ" => mkA005 form; + _ + "սկի" => mkA003 form; + _ + "աղի" => mkA003 form; + _ + "ղց" => mkA005 form; + _ + "ջն" => mkA005 form; + _ + "եպ" => mkA005 form; + _ + "նտ" => mkA005 form; + _ + "ոդ" => mkA005 form; + _ + "ղծ" => mkA005 form; + _ + "յծ" => mkA005 form; + _ + "եծ" => mkA005 form; + _ + "ձր" => mkA005 form; + _ + "նր" => mkA005 form; + _ + "ծր" => mkA005 form; + _ + "մր" => mkA005 form; + _ + "սր" => mkA005 form; + _ + "քր" => mkA005 form; + _ + "ցր" => mkA005 form; + _ + "եւ" => mkA001 form; + _ + "ոկ" => mkA005 form; + _ + "ղմ" => mkA005 form; + _ + "տք" => mkA005 form; + _ + "իղ" => mkA006 form; + _ + "նչ" => mkA008 form; + _ + "ոխ" => mkA005 form; + _ + "ղխ" => mkA005 form; + _ + "ղթ" => mkA005 form; + _ + "ւթ" => mkA011 form; + _ + "րշ" => mkA005 form; + _ + "եշ" => mkA005 form; + _ + "քշ" => mkA005 form; + _ + "ոռ" => mkA005 form; + _ + "ւգ" => mkA005 form; + _ + "եգ" => mkA005 form; + _ + "րճ" => mkA005 form; + _ + "րզ" => mkA005 form; + _ + "եզ" => mkA005 form; + _ + "ւփ" => mkA005 form; + _ + "նջ" => mkA005 form; + _ + "աջ" => mkA005 form; + _ + "մբ" => mkA001 form; + _ + "ոյ" => mkA001 form; + _ + "բի" => mkA003 form; + _ + "սի" => mkA003 form; + _ + "ց" => mkA001 form; + _ + "ն" => mkA001 form; + _ + "պ" => mkA001 form; + _ + "տ" => mkA001 form; + _ + "դ" => mkA001 form; + _ + "վ" => mkA001 form; + _ + "ծ" => mkA001 form; + _ + "ձ" => mkA001 form; + _ + "ր" => mkA001 form; + _ + "լ" => mkA001 form; + _ + "ւ" => mkA002 form; + _ + "կ" => mkA001 form; + _ + "մ" => mkA001 form; + _ + "ք" => mkA001 form; + _ + "ղ" => mkA001 form; + _ + "չ" => mkA001 form; + _ + "ժ" => mkA001 form; + _ + "խ" => mkA001 form; + _ + "թ" => mkA001 form; + _ + "ս" => mkA001 form; + _ + "շ" => mkA001 form; + _ + "հ" => mkA001 form; + _ + "ռ" => mkA001 form; + _ + "գ" => mkA001 form; + _ + "ճ" => mkA001 form; + _ + "զ" => mkA001 form; + _ + "փ" => mkA001 form; + _ + "ջ" => mkA001 form; + _ + "բ" => mkA005 form; + _ + "յ" => mkA005 form; + _ + "ե" => mkA002 form; + _ + "ի" => mkA002 form; + _ + "ա" => mkA004 form; + _ + "ո" => mkA004 form; + _ => error "Cannot find an inflection rule" + } ; + + reg2A : Str -> Str -> A -- s;Nom;Sg s;Nom;Pl + = \form1, form2 -> case of { + <_ + "ոռ", _ + "ներ"> => mkA001 form1; + <_ + "տ", _ + "տեր"> => mkA005 form1; + <_ + "վ", _ + "վեր"> => mkA005 form1; + <_ + "ծ", _ + "ծեր"> => mkA005 form1; + <_ + "ձ", _ + "ձեր"> => mkA005 form1; + <_ + "լ", _ + "լեր"> => mkA005 form1; + <_ + "կ", _ + "կեր"> => mkA005 form1; + <_ + "մ", _ + "մեր"> => mkA005 form1; + <_ + "ք", _ + "քեր"> => mkA005 form1; + <_ + "ղ", _ + "ղեր"> => mkA005 form1; + <_ + "խ", _ + "խեր"> => mkA005 form1; + <_ + "թ", _ + "թեր"> => mkA005 form1; + <_ + "շ", _ + "շեր"> => mkA005 form1; + <_ + "հ", _ + "հեր"> => mkA005 form1; + <_ + "ռ", _ + "ռեր"> => mkA005 form1; + <_ + "գ", _ + "գեր"> => mkA005 form1; + <_ + "ճ", _ + "ճեր"> => mkA005 form1; + <_ + "զ", _ + "զեր"> => mkA005 form1; + <_ + "ջ", _ + "ջեր"> => mkA005 form1; + _ => regA form1 + } ; + + mkV = overload { + mkV : Str -> V = regV; -- s + mkV : Str -> Str -> V = reg2V -- s Imperative_Jussive;Pl + } ; + + mkVV,mkVS,mkVQ,mkVA = \v -> v ; + + mkV2 = overload { + mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; + mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + } ; + + mkV3 = overload { + mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2A = overload { + mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2S = overload { + mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2Q = overload { + mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkV2V = overload { + mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + } ; + + mkN = overload { + mkN : Str -> N = regN; -- s;Nom;Sg + mkN : Str -> Str -> N = reg2N -- s;Nom;Sg s;Dat;Sg + } ; + + mkN2 = overload { + mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; + mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + } ; + + mkN3 = overload { + mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + } ; + + mkA = overload { + mkA : Str -> A = regA; -- s;Nom;Sg + mkA : Str -> Str -> A = reg2A -- s;Nom;Sg s;Nom;Pl + } ; + + mkA2 = overload { + mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; + mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + } ; + + mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; + mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; + mkAdA : Str -> AdA = \s -> lin AdA {s=s} ; + mkAdN : Str -> AdN = \s -> lin AdN {s=s} ; + mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s; p=""} ; + mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + + mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Dat} ; + + mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; + mkIP : Str -> IP = \s -> lin IP {s=s} ; + mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; + mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; + mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; + mkQuant : Str -> Quant = \s -> lin Quant {s=s} ; + mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; + mkDet : Str -> Det = \s -> lin Det {s=s} ; + mkCard : Str -> Card = \s -> lin Card {s=s} ; + mkConj : Str -> Conj = \s -> lin Conj {s=s} ; + mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; + mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; + + mkLN : Str -> LN = \s -> lin LN {s=s} ; + mkGN : Str -> GN = \s -> lin GN {s=s} ; + mkSN : Str -> SN = \s -> lin SN {s=s} ; + mkPN : Str -> PN = \s -> lin PN {s=s} ; + +} diff --git a/src/armenian/PhraseHye.gf b/src/armenian/PhraseHye.gf new file mode 100644 index 00000000..3a1de8aa --- /dev/null +++ b/src/armenian/PhraseHye.gf @@ -0,0 +1,11 @@ +concrete PhraseHye of Phrase = CatHye ** { +lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + + UttS s = s ; + UttInterj i = i ; + + NoPConj = {s = []} ; + + NoVoc = {s = []} ; +} diff --git a/src/armenian/ResHye.gf b/src/armenian/ResHye.gf new file mode 100644 index 00000000..aad80cec --- /dev/null +++ b/src/armenian/ResHye.gf @@ -0,0 +1,269 @@ +resource ResHye = { + +param Aspect = Non_Past | Perfect ; +param Person = P1 | P3 | P2 ; +param Number = Sg | Pl ; +param Case = Nom | Dat | Ablat | Instr | Loc ; +param PartType = Resultative | Subject ; +oper Verb = {s: Str; Causative: Str; Conditional: Aspect => Person => Number => Str; Converb: {Imperfective: Str; FutCon1: Str; FutCon2: Str; Negative: Str; Perfective: Str; Simultaneous: Str}; Imperative_Jussive: Number => Str; Passive: Str; Past: Person => Number => Str; Participle: PartType => Str; Subjunctive: Aspect => Person => Number => Str} ; -- 898 +oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43 -> + { s = f1 ; + Causative = f2 ; + Conditional = table { + Perfect => table { + P1 => table { + Sg => f3 ; + Pl => f4 + } ; + P2 => table { + Sg => f5 ; + Pl => f6 + } ; + P3 => table { + Sg => f7 ; + Pl => f8 + } + } ; + Non_Past => table { + P1 => table { + Sg => f9 ; + Pl => f10 + } ; + P2 => table { + Sg => f11 ; + Pl => f12 + } ; + P3 => table { + Sg => f13 ; + Pl => f14 + } + } + } ; + Converb = { Imperfective = f15 ; + FutCon1 = f16 ; + FutCon2 = f17 ; + Negative = f18 ; + Perfective = f19 ; + Simultaneous = f20 + } ; + Imperative_Jussive = table { + Sg => f21 ; + Pl => f22 + } ; + Passive = f23 ; + Past = table { + P1 => table { + Sg => f24 ; + Pl => f25 + } ; + P2 => table { + Sg => f26 ; + Pl => f27 + } ; + P3 => table { + Sg => f28 ; + Pl => f29 + } + } ; + Participle = table { + Resultative => f30 ; + Subject => f31 + } ; + Subjunctive = table { + Perfect => table { + P1 => table { + Sg => f32 ; + Pl => f33 + } ; + P2 => table { + Sg => f34 ; + Pl => f35 + } ; + P3 => table { + Sg => f36 ; + Pl => f37 + } + } ; + Non_Past => table { + P1 => table { + Sg => f38 ; + Pl => f39 + } ; + P2 => table { + Sg => f40 ; + Pl => f41 + } ; + P3 => table { + Sg => f42 ; + Pl => f43 + } + } + } + } ; + + +oper Noun = {s: Case => Number => Str; def_dat: Number => Str; def_nom: Number => Str; poss1: Case => Number => Str; poss2: Case => Number => Str} ; -- 4880 +oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Noun = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34 -> + { s = table { + Nom => table { + Sg => f1 ; + Pl => f2 + } ; + Dat => table { + Sg => f3 ; + Pl => f4 + } ; + Ablat => table { + Sg => f5 ; + Pl => f6 + } ; + Instr => table { + Sg => f7 ; + Pl => f8 + } ; + Loc => table { + Sg => f9 ; + Pl => f10 + } + } ; + def_dat = table { + Sg => f11 ; + Pl => f12 + } ; + def_nom = table { + Sg => f13 ; + Pl => f14 + } ; + poss1 = table { + Nom => table { + Sg => f15 ; + Pl => f16 + } ; + Dat => table { + Sg => f17 ; + Pl => f18 + } ; + Ablat => table { + Sg => f19 ; + Pl => f20 + } ; + Instr => table { + Sg => f21 ; + Pl => f22 + } ; + Loc => table { + Sg => f23 ; + Pl => f24 + } + } ; + poss2 = table { + Nom => table { + Sg => f25 ; + Pl => f26 + } ; + Dat => table { + Sg => f27 ; + Pl => f28 + } ; + Ablat => table { + Sg => f29 ; + Pl => f30 + } ; + Instr => table { + Sg => f31 ; + Pl => f32 + } ; + Loc => table { + Sg => f33 ; + Pl => f34 + } + } + } ; + + +oper Adj = {s: Case => Number => Str; def_dat: Number => Str; def_nom: Number => Str; poss1: Case => Number => Str; poss2: Case => Number => Str} ; -- 1608 +oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34 -> + { s = table { + Nom => table { + Sg => f1 ; + Pl => f2 + } ; + Dat => table { + Sg => f3 ; + Pl => f4 + } ; + Ablat => table { + Sg => f5 ; + Pl => f6 + } ; + Instr => table { + Sg => f7 ; + Pl => f8 + } ; + Loc => table { + Sg => f9 ; + Pl => f10 + } + } ; + def_dat = table { + Sg => f11 ; + Pl => f12 + } ; + def_nom = table { + Sg => f13 ; + Pl => f14 + } ; + poss1 = table { + Nom => table { + Sg => f15 ; + Pl => f16 + } ; + Dat => table { + Sg => f17 ; + Pl => f18 + } ; + Ablat => table { + Sg => f19 ; + Pl => f20 + } ; + Instr => table { + Sg => f21 ; + Pl => f22 + } ; + Loc => table { + Sg => f23 ; + Pl => f24 + } + } ; + poss2 = table { + Nom => table { + Sg => f25 ; + Pl => f26 + } ; + Dat => table { + Sg => f27 ; + Pl => f28 + } ; + Ablat => table { + Sg => f29 ; + Pl => f30 + } ; + Instr => table { + Sg => f31 ; + Pl => f32 + } ; + Loc => table { + Sg => f33 ; + Pl => f34 + } + } + } ; + + +oper Compl = {s : Str; c : Case} ; +oper noPrep : Compl = {s=""; c=Dat} ; + +} From 35a650141ee0fa83ef0ccbb3fe9d01aabf672276 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 5 Oct 2025 09:47:31 +0200 Subject: [PATCH 067/169] fix UseN and PositA --- src/belarusian/AdjectiveBel.gf | 4 ++-- src/belarusian/NounBel.gf | 4 ++-- src/belarusian/ResBel.gf | 4 ++-- src/ukrainian/AdjectiveUkr.gf | 4 ++-- src/ukrainian/NounUkr.gf | 4 ++-- src/ukrainian/ResUkr.gf | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/belarusian/AdjectiveBel.gf b/src/belarusian/AdjectiveBel.gf index 24fbdf42..1ea6e1a5 100644 --- a/src/belarusian/AdjectiveBel.gf +++ b/src/belarusian/AdjectiveBel.gf @@ -1,4 +1,4 @@ concrete AdjectiveBel of Adjective = CatBel ** { ---lin --- PositA a = a ; +lin + PositA a = a ; } diff --git a/src/belarusian/NounBel.gf b/src/belarusian/NounBel.gf index c70c89f8..8c208e3e 100644 --- a/src/belarusian/NounBel.gf +++ b/src/belarusian/NounBel.gf @@ -1,4 +1,4 @@ concrete NounBel of Noun = CatBel ** { ---lin --- UseN n = n ; +lin + UseN n = n ; } diff --git a/src/belarusian/ResBel.gf b/src/belarusian/ResBel.gf index 47aa5501..13aaf399 100644 --- a/src/belarusian/ResBel.gf +++ b/src/belarusian/ResBel.gf @@ -157,7 +157,7 @@ oper mkA : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> A = oper Compl = {s : Str; c : Case} ; oper noPrep : Compl = {s=""; c=Acc} ; -oper CommonNoun = {s : Str} ; -oper AdjPhrase = {s : Str} ; +oper CommonNoun = Noun ; +oper AdjPhrase = A ; } diff --git a/src/ukrainian/AdjectiveUkr.gf b/src/ukrainian/AdjectiveUkr.gf index efad4049..c92be58b 100644 --- a/src/ukrainian/AdjectiveUkr.gf +++ b/src/ukrainian/AdjectiveUkr.gf @@ -1,4 +1,4 @@ concrete AdjectiveUkr of Adjective = CatUkr ** { ---lin --- PositA a = a ; +lin + PositA a = a ; } diff --git a/src/ukrainian/NounUkr.gf b/src/ukrainian/NounUkr.gf index 1aaabb1a..370f1a1d 100644 --- a/src/ukrainian/NounUkr.gf +++ b/src/ukrainian/NounUkr.gf @@ -1,4 +1,4 @@ concrete NounUkr of Noun = CatUkr ** { ---lin --- UseN n = n ; +lin + UseN n = n ; } diff --git a/src/ukrainian/ResUkr.gf b/src/ukrainian/ResUkr.gf index 2f8ce831..12252abc 100644 --- a/src/ukrainian/ResUkr.gf +++ b/src/ukrainian/ResUkr.gf @@ -160,7 +160,7 @@ oper mkA : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> A = oper Compl = {s : Str; c : Case} ; oper noPrep : Compl = {s=""; c=Acc} ; -oper CommonNoun = {s : Str} ; -oper AdjPhrase = {s : Str} ; +oper CommonNoun = N ; +oper AdjPhrase = A ; } From 1aed4c3b5fdc7ccd69342b99a4616e2606236f4b Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 25 Oct 2025 08:20:33 +0200 Subject: [PATCH 068/169] added missig functions --- src/basque/CatEus.gf | 2 +- src/basque/ParadigmsEus.gf | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/basque/CatEus.gf b/src/basque/CatEus.gf index 28687c0c..cc982df0 100644 --- a/src/basque/CatEus.gf +++ b/src/basque/CatEus.gf @@ -121,7 +121,7 @@ concrete CatEus of Cat = CommonX ** open ResEus, Prelude in { N = ResEus.Noun ; N2 = ResEus.Noun2 ; N3 = ResEus.Noun3 ; - PN = ResEus.PNoun ; + PN,LN,GN,SN = ResEus.PNoun ; linref diff --git a/src/basque/ParadigmsEus.gf b/src/basque/ParadigmsEus.gf index 4bbce1da..c2146107 100644 --- a/src/basque/ParadigmsEus.gf +++ b/src/basque/ParadigmsEus.gf @@ -42,7 +42,10 @@ oper } ; mkPN : Str -> PN = \s -> lin PN (mkPNoun s) ; - + mkLN : Str -> LN = \s -> lin LN (mkPNoun s) ; + mkGN : Str -> GN = \s -> lin GN (mkPNoun s) ; + mkSN : Str -> SN = \s -> lin SN (mkPNoun s) ; + mkN2 = overload { mkN2 : Str -> N2 = \s -> lin N2 (mkNoun2 s genitive) ; mkN2 : Str -> Case -> N2 = \s,cas -> lin N2 (mkNoun2 s cas) ; @@ -101,7 +104,7 @@ oper mkV2A : Str -> V2A = \s -> lin V2A (mkVerbDu s) ; -- Nor-nork mkVQ : Str -> VQ = \s -> lin VQ (mkVerbDu s) ; -- Nor-nork mkVS : Str -> VS = \s -> lin VS (mkVerbDu s) ; -- Nor-nork - + mkVV : V -> VV = \v -> v ; mkV2V : Str -> V2V = \s -> lin V2V (mkVerbDio s) ; -- ??? TODO check valency mkV2S : Str -> V2S = \s -> lin V2S (mkVerbDio s) ; -- Nor-nori-nork: (mutilari) (neska datorrela) erantzun diot @@ -154,6 +157,10 @@ oper mkAdA : Str -> AdA = \s -> lin AdA {s = s} ; + oper mkAdN : Str -> AdN = \s -> lin AdN {s=s} ; + + oper mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; + oper mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; --. ------------------------------------------------------------------------------- From 8e63f9b32d2a0e36dcaa6a7c11c3bc60b28d8a7a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 25 Oct 2025 08:21:28 +0200 Subject: [PATCH 069/169] fix conflicts --- src/api/TryEus.gf | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/api/TryEus.gf b/src/api/TryEus.gf index 0a0eec2e..00d97ac3 100644 --- a/src/api/TryEus.gf +++ b/src/api/TryEus.gf @@ -1,3 +1,16 @@ --# -path=.:../basque:../common:../abstract:../prelude -resource TryEus = SyntaxEus, LexiconEus, ParadigmsEus - [mkAdv,mkAdN,mkDet,mkQuant,mkPConj] ; +resource TryEus = SyntaxEus-[mkVoc], LexiconEus, ParadigmsEus - [mkAdv,mkAdN,mkDet,mkQuant,mkPConj,mkVoc] ** + open (P = ParadigmsEus) in { + +oper + mkAdv = overload SyntaxEus { + mkAdv : Str -> Adv = P.mkAdv ; + } ; + + mkVoc = overload { + mkVoc : NP -> Voc = SyntaxEus.mkVoc ; + mkVoc : Str -> Voc = P.mkVoc ; + } ; + +} From c604bd3b7781b38998db34a07cafc354a4abe955 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 25 Oct 2025 11:15:21 +0200 Subject: [PATCH 070/169] added Sub1000000000 and Sub1000000000000 --- src/basque/NumeralEus.gf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/basque/NumeralEus.gf b/src/basque/NumeralEus.gf index 4cb1c5fb..de9be7a5 100644 --- a/src/basque/NumeralEus.gf +++ b/src/basque/NumeralEus.gf @@ -29,6 +29,8 @@ lincat Sub10 = LinDigit ; lincat Sub100 = {s : Str ; n : Number } ; lincat Sub1000 = {s : Str ; n : Number ; isHundred : Bool } ; lincat Sub1000000 = {s : Str ; n : Number } ; +lincat Sub1000000000 = {s : Str ; n : Number } ; +lincat Sub1000000000000 = {s : Str ; n : Number } ; ---------------------------------------------------------------------------- From 7383b30ceec3c78612687ecdd3bbd8581ae5b8ad Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 25 Oct 2025 12:07:43 +0200 Subject: [PATCH 071/169] started with documentation --- src/basque/DocumentationEus.gf | 39 ++++++++++++++++++++++++++++++++++ src/basque/LangEus.gf | 3 ++- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/basque/DocumentationEus.gf diff --git a/src/basque/DocumentationEus.gf b/src/basque/DocumentationEus.gf new file mode 100644 index 00000000..6beef056 --- /dev/null +++ b/src/basque/DocumentationEus.gf @@ -0,0 +1,39 @@ +--# -path=.:../abstract:../common +concrete DocumentationEus of Documentation = CatEus ** open + ResEus, + Prelude, + HTML in { + +lincat + Inflection = {t : Str; s1,s2 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin + InflectionN, InflectionN2, InflectionN3 = \n -> { + t = "n" ; + s1 = heading1 "Noun" ; + s2 = frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "absolutive" ++ td (n.s++artDef ! Sg ! Abs ! n.ph) ++ td (n.s++artDef ! Pl ! Abs ! n.ph)) ++ + tr (th "ergative" ++ td (n.s++artDef ! Sg ! Erg ! n.ph) ++ td (n.s++artDef ! Pl ! Erg ! n.ph)) ++ + tr (th "dative" ++ td (n.s++artDef ! Sg ! Dat ! n.ph) ++ td (n.s++artDef ! Pl ! Dat ! n.ph)) ++ + tr (th "genitive" ++ td (n.s++artDef ! Sg ! Gen ! n.ph) ++ td (n.s++artDef ! Pl ! Gen ! n.ph)) ++ + tr (th "commitative" ++ td (n.s++artDef ! Sg ! Soc ! n.ph) ++ td (n.s++artDef ! Pl ! Soc ! n.ph)) ++ + tr (th "instrumental"++ td (n.s++artDef ! Sg ! Ins ! n.ph) ++ td (n.s++artDef ! Pl ! Ins ! n.ph)) ++ + tr (th "inessive" ++ td (n.s++artDef ! Sg ! Ine ! n.ph) ++ td (n.s++artDef ! Pl ! Ine ! n.ph)) ++ + tr (th "partitive" ++ td (n.s++artDef ! Sg ! Par ! n.ph) ++ td (n.s++artDef ! Pl ! Par ! n.ph)) + ) ; + } ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

Definition:"++t.s++d.s++"

Example:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ paragraph e.s} ; + MkTag i = {s = i.t} ; + +} diff --git a/src/basque/LangEus.gf b/src/basque/LangEus.gf index e0c69f69..0bee5530 100644 --- a/src/basque/LangEus.gf +++ b/src/basque/LangEus.gf @@ -2,7 +2,8 @@ concrete LangEus of Lang = GrammarEus, LexiconEus, ConstructionEus + ,DocumentationEus --# notpresent ** { -} ; \ No newline at end of file +} ; From cf947426dcff75fe505d9ce12a85edfc75855879 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 25 Oct 2025 12:40:02 +0200 Subject: [PATCH 072/169] extended documentation --- src/basque/DocumentationEus.gf | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/basque/DocumentationEus.gf b/src/basque/DocumentationEus.gf index 6beef056..f62cbf27 100644 --- a/src/basque/DocumentationEus.gf +++ b/src/basque/DocumentationEus.gf @@ -27,6 +27,32 @@ lin ) ; } ; + InflectionA, InflectionA2, InflectionA3 = \a -> { + t = "a" ; + s1 = heading1 "Adjective" ; + s2 = frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "absolutive" ++ td (a.s ! AF Posit++artDef ! Sg ! Abs ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Abs ! a.ph)) ++ + tr (th "ergative" ++ td (a.s ! AF Posit++artDef ! Sg ! Erg ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Erg ! a.ph)) ++ + tr (th "dative" ++ td (a.s ! AF Posit++artDef ! Sg ! Dat ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Dat ! a.ph)) ++ + tr (th "genitive" ++ td (a.s ! AF Posit++artDef ! Sg ! Gen ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Gen ! a.ph)) ++ + tr (th "commitative" ++ td (a.s ! AF Posit++artDef ! Sg ! Soc ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Soc ! a.ph)) ++ + tr (th "instrumental"++ td (a.s ! AF Posit++artDef ! Sg ! Ins ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Ins ! a.ph)) ++ + tr (th "inessive" ++ td (a.s ! AF Posit++artDef ! Sg ! Ine ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Ine ! a.ph)) ++ + tr (th "partitive" ++ td (a.s ! AF Posit++artDef ! Sg ! Par ! a.ph) ++ td (a.s ! AF Posit++artDef ! Pl ! Par ! a.ph)) + ) ; + } ; + + InflectionV, InflectionV2, InflectionV3, InflectionVA, InflectionVS, InflectionVQ, InflectionV2A, InflectionV2S, InflectionV2Q = \v -> { + t = "v" ; + s1 = heading1 "Verb" ; + s2 = frameTable ( + tr (th "present" ++ td (v.prc ! Pres)) ++ + tr (th "past" ++ td (v.prc ! Past)) ++ + tr (th "future" ++ td (v.prc ! Fut)) + ) ; + } ; + lin NoDefinition t = {s=t.s}; MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; From 4514ebfc00614dcf7cfc49a9b5756967bb08547d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 27 Oct 2025 09:43:01 +0100 Subject: [PATCH 073/169] fix type errors with the old type checker --- src/belarusian/ParadigmsBel.gf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/belarusian/ParadigmsBel.gf b/src/belarusian/ParadigmsBel.gf index 284eb22e..9b99d0a0 100644 --- a/src/belarusian/ParadigmsBel.gf +++ b/src/belarusian/ParadigmsBel.gf @@ -766,7 +766,10 @@ oper mkV : Str -> Str -> V = reg2V -- infinitive Imperative;Sg } ; - mkVV,mkVS,mkVQ,mkVA = \v -> v ; + mkVV : V -> VV = \v -> v ; + mkVS : V -> VS = \v -> v ; + mkVQ : V -> VQ = \v -> v ; + mkVA : V -> VA = \v -> v ; mkV2 = overload { mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; From bba1de3605918f657aa07c2ba2855f4553fbdb16 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 27 Oct 2025 09:46:22 +0100 Subject: [PATCH 074/169] fix type errors with the old type checker --- src/armenian/ParadigmsHye.gf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf index 434f5453..02210bef 100644 --- a/src/armenian/ParadigmsHye.gf +++ b/src/armenian/ParadigmsHye.gf @@ -400,7 +400,10 @@ oper mkV : Str -> Str -> V = reg2V -- s Imperative_Jussive;Pl } ; - mkVV,mkVS,mkVQ,mkVA = \v -> v ; + mkVV : V -> VV = \v -> v ; + mkVS : V -> VS = \v -> v ; + mkVQ : V -> VQ = \v -> v ; + mkVA : V -> VA = \v -> v ; mkV2 = overload { mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; From 3e51c585ce4350e0c151d8c24b783544ae24662f Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 27 Oct 2025 09:51:16 +0100 Subject: [PATCH 075/169] fix mkA008 --- src/ukrainian/MorphoUkr.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ukrainian/MorphoUkr.gf b/src/ukrainian/MorphoUkr.gf index 1632ee8a..60c4cdfd 100644 --- a/src/ukrainian/MorphoUkr.gf +++ b/src/ukrainian/MorphoUkr.gf @@ -33370,7 +33370,7 @@ mkA008 base = } ; Instr => table { GSg Fem => base_1+"ою"+base_2+"ою" ; - GSg Neuter => base_1+"им"+base_2+"им" ; + GSg _ => base_1+"им"+base_2+"им" ; GPl => base_1+"ими"+base_2+"ими" } } From 066d6f9c857138ad16ed57e982bb6976b066b1bc Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 27 Oct 2025 10:00:29 +0100 Subject: [PATCH 076/169] fix type errors with the old type checker --- src/ukrainian/ParadigmsUkr.gf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ukrainian/ParadigmsUkr.gf b/src/ukrainian/ParadigmsUkr.gf index 4fd51f78..3c075b1b 100644 --- a/src/ukrainian/ParadigmsUkr.gf +++ b/src/ukrainian/ParadigmsUkr.gf @@ -1258,7 +1258,10 @@ oper mkV : Str -> Str -> V = reg2V -- Active;Imperf;Pres;P1;Sg imperative1 } ; - mkVV,mkVS,mkVQ,mkVA = \v -> v ; + mkVV : V -> VV = \v -> v ; + mkVS : V -> VS = \v -> v ; + mkVQ : V -> VQ = \v -> v ; + mkVA : V -> VA = \v -> v ; mkV2 = overload { mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; From 6b93e873636b7f4239a534320e106082d26628f3 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 11:47:31 +0100 Subject: [PATCH 077/169] merge of the manual and automatic grammars --- src/gaelic/AdjectiveGla.gf | 14 +- src/gaelic/AdverbGla.gf | 8 +- src/gaelic/AllGla.gf | 4 +- src/gaelic/CatGla.gf | 13 +- src/gaelic/DocumentationGla.gf | 77 + src/gaelic/ExtendGla.gf | 1 + src/gaelic/LangGla.gf | 5 +- src/gaelic/LexiconGla.gf | 14 +- src/gaelic/MorphoGla.gf | 10648 +++++++++++++++++++++++++++++++ src/gaelic/NounGla.gf | 24 +- src/gaelic/ParadigmsGla.gf | 2384 ++++++- src/gaelic/PhraseGla.gf | 5 +- src/gaelic/ResGla.gf | 423 +- src/gaelic/SentenceGla.gf | 2 +- 14 files changed, 13140 insertions(+), 482 deletions(-) create mode 100644 src/gaelic/DocumentationGla.gf create mode 100644 src/gaelic/MorphoGla.gf diff --git a/src/gaelic/AdjectiveGla.gf b/src/gaelic/AdjectiveGla.gf index 39c79158..8d103483 100644 --- a/src/gaelic/AdjectiveGla.gf +++ b/src/gaelic/AdjectiveGla.gf @@ -10,14 +10,14 @@ concrete AdjectiveGla of Adjective = CatGla ** open ResGla, Prelude in { } ; -- : A -> AP ; - PositA a = a ** { - compar = [] ; - } ; + --PositA a = a ** { + -- compar = [] ; + -- } ; -- : A -> NP -> AP ; - ComparA a np = a ** { - compar = np.s - } ; + --ComparA a np = a ** { + -- compar = np.s + -- } ; -- : A2 -> NP -> AP ; -- married to her -- ComplA2 a2 np = a2 ** { } ; @@ -26,7 +26,7 @@ concrete AdjectiveGla of Adjective = CatGla ** open ResGla, Prelude in { -- ReflA2 a2 = a2 ** { } ; -- : A2 -> AP ; -- married - UseA2 = PositA ; + -- UseA2 = PositA ; -- : A -> AP ; -- warmer -- UseComparA a = a ** { diff --git a/src/gaelic/AdverbGla.gf b/src/gaelic/AdverbGla.gf index 5a832613..9165f7de 100644 --- a/src/gaelic/AdverbGla.gf +++ b/src/gaelic/AdverbGla.gf @@ -15,13 +15,13 @@ lin PrepNP prep np = { s = prepAndArt ++ noun } where { - defaultCase : CoreCase = prep.c2 ! getDefi np.a ; + defaultCase : Case = prep.c2 ! getDefi np.a ; complCase : Case = case of { - => CC (Dat Lenited) ; -- force lenition if possessive triggers it + => Dat Lenited ; -- force lenition if possessive triggers it - => CC (Nom Lenited) ; -- force lenition if possessive triggers it - _ => CC defaultCase } ; + => Nom Lenited ; -- force lenition if possessive triggers it + _ => defaultCase } ; prepStr : Str = prep.s ! agr2pagr np.a ; -- can be Prep or Prep+Pron merged artStr : Str = np.art ! complCase ; prepAndArt : Str = case np.a of { diff --git a/src/gaelic/AllGla.gf b/src/gaelic/AllGla.gf index 29b533cb..e9a81d60 100644 --- a/src/gaelic/AllGla.gf +++ b/src/gaelic/AllGla.gf @@ -1,6 +1,6 @@ --# -path=.:../abstract:../common:../prelude concrete AllGla of AllGlaAbs = - LangGla, - ExtendGla + LangGla -- , + -- ExtendGla ; diff --git a/src/gaelic/CatGla.gf b/src/gaelic/CatGla.gf index 4f589838..6e23a46d 100644 --- a/src/gaelic/CatGla.gf +++ b/src/gaelic/CatGla.gf @@ -49,7 +49,7 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { -- Many atomic noun phrases e.g. "everybody" -- are constructed in StructuralGla. - CN = ResGla.LinCN ; + CN = ResGla.LinN ; NP = ResGla.LinNP ; Pron = LinPron ; Det = ResGla.LinDet ; -- s : Str , n : Number @@ -93,17 +93,17 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { V = ResGla.LinV ; VV -- verb-phrase-complement verb e.g. "want" - = SS ; + = ResGla.LinV ; V2A, -- verb with NP and AP complement e.g. "paint" V2V, -- verb with NP and V complement e.g. "cause" V2S, -- verb with NP and S complement e.g. "tell" V2Q, -- verb with NP and Q complement e.g. "ask" - V2 = SS ; - V3 = SS ; + V2 = LinV ** {c2 : LinPrep} ; + V3 = LinV ** {c2,c3 : LinPrep} ; - A = SS ; - A2 = SS ; + A = LinA ; + A2 = LinA ** {c2 : LinPrep} ; N = ResGla.LinN ; N2 = ResGla.LinN ; @@ -116,6 +116,7 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { LN = SS ; -- Location name, e.g. "Sweden" linref + NP = linNP ; Cl = linCl ; } diff --git a/src/gaelic/DocumentationGla.gf b/src/gaelic/DocumentationGla.gf new file mode 100644 index 00000000..5e83707e --- /dev/null +++ b/src/gaelic/DocumentationGla.gf @@ -0,0 +1,77 @@ +concrete DocumentationGla of Documentation = CatGla ** open + ResGla, Prelude, HTML in { + +lincat + Inflection = {t : Str; s1,s2,s3 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin + InflectionN,InflectionN2,InflectionN3 = \x -> { + t="n" ; + s1=heading1 ("Noun"++ + case x.g of { + Masc => "(masculine)" ; + Fem => "(feminine)" + }) ; + s2=frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (intagAttr "th" "colspan=\"3\"" "indefinite") ++ + tr (th "nom" ++ td (x.s ! Nom NoMutation ! Indef ! Sg) ++ td (x.s ! Nom NoMutation ! Indef ! Pl)) ++ + tr (th "dat" ++ td (x.s ! Dat NoMutation ! Indef ! Sg) ++ td (x.s ! Dat NoMutation ! Indef ! Pl)) ++ + tr (th "gen" ++ td (x.s ! Gen ! Indef ! Sg) ++ td (x.s ! Gen ! Indef ! Pl)) ++ + tr (intagAttr "th" "colspan=\"3\"" "definite") ++ + tr (th "nom" ++ td (x.s ! Nom NoMutation ! Def ! Sg) ++ td (x.s ! Nom NoMutation ! Def ! Pl)) ++ + tr (th "dat" ++ td (x.s ! Dat NoMutation ! Def ! Sg) ++ td (x.s ! Dat NoMutation ! Def ! Pl)) ++ + tr (th "gen" ++ td (x.s ! Gen ! Def ! Sg) ++ td (x.s ! Gen ! Def ! Pl)) ++ + tr (th "voc" ++ td (x.voc ! Sg) ++ td (x.voc ! Pl))) ; + s3=[] + } ; +lin + InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> { + t="v" ; + s1=heading1 "Verb" ; + s2=frameTable ( + tr (th "s" ++ td (x.s)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Conditional" ++ th "Sg" ++ td (x.conditional ! Sg)) ++ + tr (th "Pl" ++ td (x.conditional ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Imperative" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.imperative ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2" ++ th "Sg" ++ td (x.imperative ! P2 ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! P2 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.imperative ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Indicative" ++ th "Fut" ++ td (x.future ! Indep)) ++ + tr (th "Past" ++ td (x.past ! Indep)) ++ + tr (th "Participle" ++ td (x.participle))) ; + s3=[] + } ; +lin + InflectionA,InflectionA2 = \x -> { + t="a" ; + s1=heading1 "Adjective" ; + s2=frameTable ( + tr (intagAttr "th" "rowspan=\"2\"" "" ++ + th "masculine" ++ th "feminine") ++ + tr (intagAttr "th" "colspan=\"2\"" "singular") ++ + tr (th "Nom" ++ td (x.s ! ASg (Nom NoMutation) Masc) ++ td (x.s ! ASg (Nom NoMutation) Fem)) ++ + tr (th "Dat" ++ td (x.s ! ASg (Dat NoMutation) Masc) ++ td (x.s ! ASg (Dat NoMutation) Fem)) ++ + tr (th "Gen" ++ td (x.s ! ASg Gen Masc) ++ td (x.s ! ASg Gen Fem)) ++ + tr (th "Voc" ++ td (x.voc ! Masc) ++ td (x.voc ! Fem)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "" ++ intagAttr "th" "colspan=\"2\"" "plural") ++ + tr ( intagAttr "td" "colspan=\"2\"" (x.s ! APl))) ++ + heading2 "Comparative" ++ + paragraph (x.compar) ; + s3=[] + } ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

Definition:"++t.s++d.s++"

Example:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ; + MkTag i = {s = i.t} ; +} diff --git a/src/gaelic/ExtendGla.gf b/src/gaelic/ExtendGla.gf index 5e70f743..78f6ceaf 100644 --- a/src/gaelic/ExtendGla.gf +++ b/src/gaelic/ExtendGla.gf @@ -31,5 +31,6 @@ concrete ExtendGla of Extend = CatGla , UseComp_ser, UseComp_estar , iFem_Pron, weFem_Pron, youFem_Pron, youPlFem_Pron, youPolFem_Pron, youPolPlFem_Pron, youPolPl_Pron, theyFem_Pron, theyNeutr_Pron , GenModNP + , PiedPipingQuestSlash, PiedPipingRelSlash, SubjunctRelCN ] with (Grammar=GrammarGla) ; diff --git a/src/gaelic/LangGla.gf b/src/gaelic/LangGla.gf index 99fee6e3..e8acf49b 100644 --- a/src/gaelic/LangGla.gf +++ b/src/gaelic/LangGla.gf @@ -1,5 +1,6 @@ --# -path=.:../abstract:../common:../prelude:../api concrete LangGla of Lang = GrammarGla, - LexiconGla, - ConstructionGla ; + LexiconGla + ,DocumentationGla --# notpresent + ; diff --git a/src/gaelic/LexiconGla.gf b/src/gaelic/LexiconGla.gf index e775e8b1..0c85ac91 100644 --- a/src/gaelic/LexiconGla.gf +++ b/src/gaelic/LexiconGla.gf @@ -31,7 +31,7 @@ lin beg_V2V = mkV2V (mkV "") ; lin belly_N = mkN "" ; lin big_A = mkA "" ; lin bike_N = mkN "" ;-} -lin bird_N = smartN "eun" "eòin" "eòin" Masc ;{- +lin bird_N = mkN "eun" "eòin" "eòin" Masc ;{- lin bite_V2 = mkV2 "" ; lin black_A = mkA "" ; lin blood_N = mkN "" ; @@ -86,9 +86,9 @@ lin cut_V2 = mkV2 "" ; ---- -- D -lin day_N = mkN "" ; -} +lin day_N = mkN "" ; lin die_V = mkV "die" ; -{-lin dig_V = mkV "" ; +lin dig_V = mkV "" ; lin dirty_A = mkA "" ; lin distance_N3 = mkN3 (mkN "") ; lin do_V2 = mkV2 "" ; @@ -161,7 +161,7 @@ lin green_A = mkA "" ; -- H lin hair_N = mkN "" ;-} -lin hand_N = smartN "làmh" Fem ;{- +lin hand_N = mkN "làmh" Fem ;{- lin harbour_N = mkN "" ; lin hat_N = mkN "" ; lin hate_V2 = mkV2 "" ; @@ -199,7 +199,7 @@ lin know_VS = mkV "" ; ---- -- L -lin lake_N = smartN "loch" "locha" "lochan" Masc ; +lin lake_N = mkN "loch" "locha" "lochan" Masc ; {- lin lamp_N = mkN "" ; lin language_N = mkN "" ; @@ -223,7 +223,7 @@ lin love_V2 = mkV2 "" ; ---- -- M --}lin man_N = smartN "fear" Masc ;{- +-}lin man_N = mkN "fear" Masc ;{- lin married_A2 = mkA2 (mkA "") ; lin meat_N = mkN "" ; lin milk_N = mkN "" ; @@ -408,7 +408,7 @@ lin window_N = mkN "" ; lin wine_N = mkN "" ; lin wing_N = mkN "" ; lin wipe_V2 = mkV2 "" ;-} -lin woman_N = smartN "boireannach" Masc ;{- +lin woman_N = mkN "boireannach" Masc ;{- lin wonder_VQ = mkVQ (mkV "") ; lin wood_N = mkN "" ; lin worm_N = mkN "" ; diff --git a/src/gaelic/MorphoGla.gf b/src/gaelic/MorphoGla.gf new file mode 100644 index 00000000..b9f7ee7b --- /dev/null +++ b/src/gaelic/MorphoGla.gf @@ -0,0 +1,10648 @@ +resource MorphoGla = open CatGla, ResGla, Predef in { + +oper + +mkA001 : Str -> A ; +mkA001 base = + case base of { + base_1+base_2@("l"|"r"|"n"|(?+?)) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+"i"+base_2 ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+base_2 + } ; + voc = table { + Masc => base_1+"i"+base_2 ; + Fem => base_1+base_2 + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA001" + } ; + +mkA002 : Str -> A ; +mkA002 base = + case base of { + base_1@?+base_2+base_3@("r"|"m"|"s"|"rbh"|(?+?)) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+"h"+base_2+"i"+base_3 ; + APl => base_1+base_2+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"i"+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA002" + } ; + +mkA003 : Str -> A ; +mkA003 base = + case base of { + base_1@?+base_2 => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+"h"+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+base_2+"e" ; + APl => base_1+base_2+"e" + } ; + voc = table { + Masc => base_1+"h"+base_2 ; + Fem => base_1+"h"+base_2 + } ; + compar = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkA003" + } ; + +mkA004 : Str -> A ; +mkA004 base = + case base of { + base_1@?+base_2+"ea"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"ea"+base_3 ; + ASg (Dat _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+"ea"+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"ea"+base_3 + } ; + compar = base_1+base_2+base_3+"e" + }; + _ => error "Can't apply paradigm mkA004" + } ; + +mkA005 : Str -> A ; +mkA005 base = + case base of { + base_1+"ea"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ea"+base_2 ; + ASg (Nom _) Fem => base_1+"ea"+base_2 ; + ASg (Dat _) Masc => base_1+"ea"+base_2 ; --guessed + ASg (Dat _) Fem => base_1+"hi"+base_2 ; --guessed + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+"ea"+base_2 + } ; + voc = table { + Masc => base_1+"i"+base_2 ; + Fem => base_1+"hea"+base_2 --guessed + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA005" + } ; + +mkA006 : Str -> A ; +mkA006 base = + case base of { + base_1@?+base_2+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA006" + } ; + +mkA007 : Str -> A ; +mkA007 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => base_1 ; + ASg (Dat _) Masc => base_1 ; --guessed + ASg (Dat _) Fem => base_1+"e" ; --guessed + ASg Gen Masc => base_1 ; + ASg Gen Fem => base_1+"e" ; + APl => base_1+"e" + } ; + voc = table { + Masc => base_1 ; --guessed + Fem => base_1 --guessed + } ; + compar = base_1+"e" + }; + _ => error "Can't apply paradigm mkA007" + } ; + +mkA008 : Str -> A ; +mkA008 base = + case base of { + base_1@?+base_2+"ea"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"ea"+base_3 ; + ASg (Dat _) Masc => base_1+"h"+base_2+"ea"+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+"ea"+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"ea"+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA008" + } ; + +mkA009 : Str -> A ; +mkA009 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => base_1 ; + ASg (Dat _) Masc => base_1 ; --guessed + ASg (Dat _) Fem => base_1+"e" ; --guessed + ASg Gen Masc => base_1 ; --guessed + ASg Gen Fem => base_1 ; --guessed + APl => base_1+"a" + } ; + voc = table { + Masc => base_1 ; --guessed + Fem => base_1 --guessed + } ; + compar = base_1 + }; + _ => error "Can't apply paradigm mkA009" + } ; + +mkA010 : Str -> A ; +mkA010 base = + case base of { + base_1+"o"+base_2@("rch"|"rb"|"rm"|?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"o"+base_2 ; + ASg (Nom _) Fem => base_1+"ho"+base_2 ; + ASg (Dat _) Masc => base_1+"ho"+base_2 ; + ASg (Dat _) Fem => base_1+"hui"+base_2 ; + ASg Gen Masc => base_1+"hui"+base_2 ; + ASg Gen Fem => base_1+"hui"+base_2 ; + APl => base_1+"o"+base_2 + } ; + voc = table { + Masc => base_1+"hui"+base_2 ; + Fem => base_1+"ho"+base_2 + } ; + compar = base_1+"ui"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA010" + } ; + +mkA011 : Str -> A ; +mkA011 base = + case base of { + base_1+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+"i"+base_2 ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2 ; + APl => base_1+base_2 + } ; + voc = table { + Masc => base_1+"i"+base_2 ; + Fem => base_1+"i"+base_2 + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA011" + } ; + +mkA012 : Str -> A ; +mkA012 base = + case base of { + base_1+"ea"+base_2@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ea"+base_2 ; + ASg (Nom _) Fem => base_1+"hea"+base_2 ; + ASg (Dat _) Masc => base_1+"ea"+base_2 ; + ASg (Dat _) Fem => base_1+"hi"+base_2 ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+"ea"+base_2+"a" + } ; + voc = table { + Masc => base_1+"hi"+base_2 ; + Fem => base_1+"hea"+base_2 + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA012" + } ; + +mkA013 : Str -> A ; +mkA013 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+"h"+base_2+"i"+base_3 ; + APl => base_1+"h"+base_2+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"i"+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" --guessed + }; + _ => error "Can't apply paradigm mkA013" + } ; + +mkA014 : Str -> A ; +mkA014 base = + case base of { + base_1@?+base_2+base_3@("r"|"n"|(?+?)) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+base_3+"a" + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA014" + } ; + +mkA015 : Str -> A ; +mkA015 base = + case base of { + base_1@?+base_2 => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+"h"+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+base_2+"a" ; + APl => base_1+base_2+"a" + } ; + voc = table { + Masc => base_1+"h"+base_2 ; + Fem => base_1+"h"+base_2 + } ; + compar = base_1+base_2+"a" + }; + _ => error "Can't apply paradigm mkA015" + } ; + +mkA016 : Str -> A ; +mkA016 base = + case base of { + base_1+"o"+base_2@(?+?)+"a"+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"o"+base_2+"a"+base_3 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"ui"+base_2+base_3+"e" + }; + _ => error "Can't apply paradigm mkA016" + } ; + +mkA017 : Str -> A ; +mkA017 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?)+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+base_3 + } ; + compar = base_1+base_2+"i"+base_3 + }; + _ => error "Can't apply paradigm mkA017" + } ; + +mkA018 : Str -> A ; +mkA018 base = + case base of { + base_1+base_2@?+"ea"+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"ea"+base_3 ; + ASg (Dat _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+"ea"+base_3+"a" + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"ea"+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA018" + } ; + +mkA019 : Str -> A ; +mkA019 base = + case base of { + base_1+base_2@?+"un" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"un" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"èin"+base_2 + }; + _ => error "Can't apply paradigm mkA019" + } ; + +mkA020 : Str -> A ; +mkA020 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1+base_2 ; + ASg Gen Fem => base_1+base_2+"e" ; + APl => base_1+base_2+"e" + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkA020" + } ; + +mkA021 : Str -> A ; +mkA021 base = + case base of { + base_1@?+base_2 => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+"h"+base_2 ; + ASg (Dat _) Fem => base_1+"h"+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+"h"+base_2 ; + APl => base_1+base_2 + } ; + voc = table { + Masc => base_1+"h"+base_2 ; + Fem => base_1+"h"+base_2 + } ; + compar = base_1+base_2+"a" --guessed + }; + _ => error "Can't apply paradigm mkA021" + } ; + +mkA022 : Str -> A ; +mkA022 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+"h"+base_2+"i"+base_3 ; + APl => base_1+base_2+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA022" + } ; + +mkA023 : Str -> A ; +mkA023 base = + case base of { + base_1+"_1" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"_1" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1 + }; + _ => error "Can't apply paradigm mkA023" + } ; + +mkA024 : Str -> A ; +mkA024 base = + case base of { + base_1+base_2@("dh"|"ch"|"rd"|?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+"i"+base_2 ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+base_2+"a" + } ; + voc = table { + Masc => base_1+"i"+base_2 ; + Fem => base_1+base_2 + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA024" + } ; + +mkA025 : Str -> A ; +mkA025 base = + case base of { + base_1@?+base_2+"a"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"a"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"a"+base_3 ; + ASg (Dat _) Masc => base_1+base_2+"a"+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+"a"+base_3+"a" + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"a"+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA025" + } ; + +mkA026 : Str -> A ; +mkA026 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => base_1 ; --guessed + ASg (Dat _) Masc => base_1 ; --guessed + ASg (Dat _) Fem => base_1+"e" ; --guessed + ASg Gen Masc => base_1 ; --guessed + ASg Gen Fem => base_1 ; --guessed + APl => base_1+"a" --guessed + } ; + voc = table { + Masc => base_1 ; --guessed + Fem => base_1 --guessed + } ; + compar = base_1+"a" + }; + _ => error "Can't apply paradigm mkA026" + } ; + +mkA027 : Str -> A ; +mkA027 base = + case base of { + base_1@?+base_2@?+"a"+base_3 => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"a"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"a"+base_3 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"è"+base_2+base_3+"e" + }; + _ => error "Can't apply paradigm mkA027" + } ; + +mkA028 : Str -> A ; +mkA028 base = + case base of { + base_1@?+base_2 => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+"h"+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+base_2+"e" ; + APl => base_1+base_2 + } ; + voc = table { + Masc => base_1+"h"+base_2 ; + Fem => base_1+"h"+base_2 + } ; + compar = base_1+base_2+"a" --guessed + }; + _ => error "Can't apply paradigm mkA028" + } ; + +mkA029 : Str -> A ; +mkA029 base = + case base of { + base_1+"a"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"a"+base_2 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"oi"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA029" + } ; + +mkA030 : Str -> A ; +mkA030 base = + case base of { + base_1@(?+?)+"a"+base_2 => lin A + { s = table { + ASg (Nom _) Masc => base_1+"a"+base_2 ; + ASg (Nom _) Fem => base_1+"a"+base_2 ; + ASg (Dat _) Masc => base_1+"a"+base_2 ; --guessed + ASg (Dat _) Fem => base_1+"i"+base_2 ; --guessed + ASg Gen Masc => base_1+"i"+base_2 ; --guessed + ASg Gen Fem => base_1+"i"+base_2+"e" ; --guessed + APl => base_1+"a"+base_2+"a" --guessed + } ; + voc = table { + Masc => base_1+"i"+base_2 ; --guessed + Fem => base_1+"a"+base_2 --guessed + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA030" + } ; + +mkA031 : Str -> A ; +mkA031 base = + case base of { + base_1+base_2@(?+?+?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+"h"+base_2 ; + ASg (Dat _) Fem => base_1+"h"+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+base_2+"e" ; + APl => base_1+base_2 + } ; + voc = table { + Masc => base_1+"h"+base_2+"e" ; + Fem => base_1+"h"+base_2+"e" + } ; + compar = base_1+base_2+"a" --guessed + }; + _ => error "Can't apply paradigm mkA031" + } ; + +mkA032 : Str -> A ; +mkA032 base = + case base of { + base_1+base_2@?+base_3@(?+?)+"ai"+base_4@?+"n" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3+"ai"+base_4+"n" ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3+"ai"+base_4+"n" ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"i"+base_3+base_4+"e" + }; + _ => error "Can't apply paradigm mkA032" + } ; + +mkA033 : Str -> A ; +mkA033 base = + case base of { + "d"+base_1+"n"+base_2@? => lin A + { s = table { + ASg (Nom _) Masc => "d"+base_1+"n"+base_2 ; + ASg (Nom _) Fem => "dh"+base_1+"n"+base_2 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = "mi"+base_1+"s"+base_2 + }; + _ => error "Can't apply paradigm mkA033" + } ; + +mkA034 : Str -> A ; +mkA034 base = + case base of { + base_1+"o"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"o"+base_2 ; + ASg (Nom _) Fem => base_1+"ho"+base_2 ; + ASg (Dat _) Masc => base_1+"o"+base_2 ; + ASg (Dat _) Fem => base_1+"hui"+base_2 ; + ASg Gen Masc => base_1+"hui"+base_2 ; + ASg Gen Fem => base_1+"ui"+base_2+"e" ; + APl => base_1+"o"+base_2+"a" + } ; + voc = table { + Masc => base_1+"hui"+base_2 ; + Fem => base_1+"ho"+base_2 + } ; + compar = base_1+"ui"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA034" + } ; + +mkA035 : Str -> A ; +mkA035 base = + case base of { + base_1+"o"+base_2@(?+?+?)+"a" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"o"+base_2+"a" ; + ASg (Nom _) Fem => base_1+"ho"+base_2+"a" ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"ui"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA035" + } ; + +mkA036 : Str -> A ; +mkA036 base = + case base of { + "dr"+base_1+"ch" => lin A + { s = table { + ASg (Nom _) Masc => "dr"+base_1+"ch" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = "mi"+base_1+"sa" + }; + _ => error "Can't apply paradigm mkA036" + } ; + +mkA037 : Str -> A ; +mkA037 base = + case base of { + base_1+base_2@(?+?+?+?+?+?)+"ea"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"ea"+base_3 ; + ASg (Dat _) Masc => base_1+"h"+base_2+"ea"+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3 ; + APl => base_1+base_2+"ea"+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"i"+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA037" + } ; + +mkA038 : Str -> A ; +mkA038 base = + case base of { + base_1@?+base_2+base_3@("r"|(?+?)) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3 ; + APl => base_1+base_2+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"i"+base_3 + } ; + compar = base_1+"h"+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA038" + } ; + +mkA039 : Str -> A ; +mkA039 base = + case base of { + base_1+base_2@(?+?+?)+"ic"+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ic"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"ic"+base_3 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"g"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA039" + } ; + +mkA040 : Str -> A ; +mkA040 base = + case base of { + base_1+base_2@?+"as" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"as" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"s"+base_2 + }; + _ => error "Can't apply paradigm mkA040" + } ; + +mkA041 : Str -> A ; +mkA041 base = + case base of { + base_1+base_2@?+base_3@?+"a" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3+"a" ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3+"a" ; + ASg (Dat _) Masc => base_1+base_2+base_3+"a" ; + ASg (Dat _) Fem => base_1+"h"+base_2+base_3+"a" ; + ASg Gen Masc => base_1+"h"+base_2+base_3+"a" ; + ASg Gen Fem => base_1+base_2+base_3+"a" ; + APl => base_1+base_2+base_3+"a" + } ; + voc = table { + Masc => base_1+"h"+base_2+base_3+"a" ; + Fem => base_1+"h"+base_2+base_3+"a" + } ; + compar = base_1+"h"+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA041" + } ; + +mkA042 : Str -> A ; +mkA042 base = + case base of { + base_1+base_2@(?+?+?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => base_1+base_2+"e" ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"h"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA042" + } ; + +mkA043 : Str -> A ; +mkA043 base = + case base of { + base_1+"ur"+base_2@(?+?)+"d"+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ur"+base_2+"d"+base_3 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"h"+base_2+base_3 + }; + _ => error "Can't apply paradigm mkA043" + } ; + +mkA044 : Str -> A ; +mkA044 base = + case base of { + base_1+"ur"+base_2@(?+?)+"t"+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ur"+base_2+"t"+base_3 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"h"+base_2+base_3 + }; + _ => error "Can't apply paradigm mkA044" + } ; + +mkA045 : Str -> A ; +mkA045 base = + case base of { + base_1+base_2@("ch"|(?+?+?+?+?+?+?)) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+"h"+base_2 ; + APl => base_1+base_2 + } ; + voc = table { + Masc => base_1+"h"+base_2 ; + Fem => base_1+"h"+base_2 + } ; + compar = base_1+"i"+base_2 + }; + _ => error "Can't apply paradigm mkA045" + } ; + +mkA046 : Str -> A ; +mkA046 base = + case base of { + base_1+"ea"+base_2@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ea"+base_2 ; + ASg (Nom _) Fem => base_1+"hea"+base_2 ; + ASg (Dat _) Masc => base_1+"ea"+base_2 ; + ASg (Dat _) Fem => base_1+"hi"+base_2 ; + ASg Gen Masc => base_1+"hi"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+"ea"+base_2+"a" + } ; + voc = table { + Masc => base_1+"hi"+base_2 ; + Fem => base_1+"hea"+base_2 + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA046" + } ; + +mkA047 : Str -> A ; +mkA047 base = + case base of { + base_1+base_2@?+"ur" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ur" ; + ASg (Nom _) Fem => base_1+"h"+base_2+"ur" ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"èir"+base_2 + }; + _ => error "Can't apply paradigm mkA047" + } ; + +mkA048 : Str -> A ; +mkA048 base = + case base of { + base_1+"eà"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"eà"+base_2 ; + ASg (Nom _) Fem => base_1+"heà"+base_2 ; + ASg (Dat _) Masc => base_1+"eà"+base_2 ; + ASg (Dat _) Fem => base_1+"heà"+base_2 ; + ASg Gen Masc => base_1+"heà"+base_2 ; + ASg Gen Fem => base_1+"eà"+base_2 ; + APl => base_1+"eà"+base_2 + } ; + voc = table { + Masc => base_1+"heà"+base_2 ; + Fem => base_1+"heà"+base_2 + } ; + compar = base_1+"io"+base_2+"a" + }; + _ => error "Can't apply paradigm mkA048" + } ; + +mkA049 : Str -> A ; +mkA049 base = + case base of { + base_1+base_2@(?+?+?+?)+"ea"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"ea"+base_3 ; + ASg (Dat _) Masc => base_1+base_2+"ea"+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+"ea"+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+"ea"+base_3 + } ; + compar = nonExist + }; + _ => error "Can't apply paradigm mkA049" + } ; + +mkA050 : Str -> A ; +mkA050 base = + case base of { + base_1+base_2@?+"o"+base_3@?+"a"+base_4@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"o"+base_3+"a"+base_4 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"o"+base_3+"a"+base_4 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => base_1+base_2+base_3+"i"+base_4+"e" ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+base_3+"i"+base_4+"e" + }; + _ => error "Can't apply paradigm mkA050" + } ; + +mkA051 : Str -> A ; +mkA051 base = + case base of { + base_1+base_2@(?+?)+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"h"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+base_2+"i"+base_3+"e" ; + APl => base_1+base_2+base_3+"a" + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA051" + } ; + +mkA052 : Str -> A ; +mkA052 base = + case base of { + base_1+"o"+base_2@?+base_3@?+"id" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"o"+base_2+base_3+"id" ; + ASg (Nom _) Fem => base_1+"ho"+base_2+base_3+"id" ; + ASg (Dat _) Masc => base_1+"o"+base_2+base_3+"id" ; + ASg (Dat _) Fem => base_1+"ho"+base_2+base_3+"id" ; + ASg Gen Masc => base_1+"ho"+base_2+base_3+"id" ; + ASg Gen Fem => base_1+"o"+base_2+base_3+"ide" ; + APl => base_1+"o"+base_2+base_3+"ide" + } ; + voc = table { + Masc => base_1+"ho"+base_2+base_3+"id" ; + Fem => base_1+"ho"+base_2+base_3+"id" + } ; + compar = base_1+base_2+"o"+base_3+"ra" + }; + _ => error "Can't apply paradigm mkA052" + } ; + +mkA053 : Str -> A ; +mkA053 base = + case base of { + base_1+base_2@(?+?)+"a"+base_3@(?+?+?)+base_4@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"a"+base_3+base_4 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"a"+base_3+base_4 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+base_3+"i"+base_4+"e" + }; + _ => error "Can't apply paradigm mkA053" + } ; + +mkA054 : Str -> A ; +mkA054 base = + case base of { + base_1+"ri"+base_2@?+"n" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ri"+base_2+"n" ; + ASg (Nom _) Fem => base_1+"hri"+base_2+"n" ; + ASg (Dat _) Masc => base_1+"hri"+base_2+"n" ; + ASg (Dat _) Fem => base_1+"hri"+base_2+"n" ; + ASg Gen Masc => base_1+"hri"+base_2+"n" ; + ASg Gen Fem => base_1+"hri"+base_2+"n" ; + APl => base_1+"la"+base_2 + } ; + voc = table { + Masc => base_1+"hri"+base_2+"n" ; + Fem => base_1+"hri"+base_2+"n" + } ; + compar = nonExist + }; + _ => error "Can't apply paradigm mkA054" + } ; + +mkA055 : Str -> A ; +mkA055 base = + case base of { + base_1+base_2@(?+?+?+?+?)+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1+base_2+"i"+base_3 ; + ASg Gen Fem => nonExist ; + APl => base_1+"h"+base_2+base_3 + } ; + voc = table { + Masc => base_1+"h"+base_2+"i"+base_3 ; + Fem => base_1+"h"+base_2+base_3 + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA055" + } ; + +mkA056 : Str -> A ; +mkA056 base = + case base of { + base_1@?+base_2@(?+?)+base_3+"a" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3+"a" ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3+"a" ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA056" + } ; + +mkA057 : Str -> A ; +mkA057 base = + case base of { + base_1+"ea"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ea"+base_2 ; + ASg (Nom _) Fem => base_1+"ea"+base_2 ; + ASg (Dat _) Masc => base_1+"ea"+base_2 ; + ASg (Dat _) Fem => base_1+"i"+base_2 ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2 ; + APl => base_1+"ea"+base_2 + } ; + voc = table { + Masc => base_1+"i"+base_2 ; + Fem => base_1+"ea"+base_2 + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA057" + } ; + +mkA058 : Str -> A ; +mkA058 base = + case base of { + "ionmh"+base_1+"i"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => "ionmh"+base_1+"i"+base_2 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"sa" + }; + _ => error "Can't apply paradigm mkA058" + } ; + +mkA059 : Str -> A ; +mkA059 base = + case base of { + "ionmhui"+base_1 => lin A + { s = table { + ASg (Nom _) Masc => "ionmhui"+base_1 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = "a"+base_1+"sa" + }; + _ => error "Can't apply paradigm mkA059" + } ; + +mkA060 : Str -> A ; +mkA060 base = + case base of { + base_1+"nn" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"nn" ; + ASg (Nom _) Fem => base_1+"nn" ; + ASg (Dat _) Masc => base_1+"nn" ; + ASg (Dat _) Fem => base_1+"inn" ; + ASg Gen Masc => base_1+"inn" ; + ASg Gen Fem => base_1+"inne" ; + APl => base_1+"nna" + } ; + voc = table { + Masc => base_1+"inn" ; + Fem => base_1+"nn" + } ; + compar = base_1 + }; + _ => error "Can't apply paradigm mkA060" + } ; + +mkA061 : Str -> A ; +mkA061 base = + case base of { + "mat"+base_1 => lin A + { s = table { + ASg (Nom _) Masc => "mat"+base_1 ; + ASg (Nom _) Fem => "m"+base_1+"ath" ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => "mait"+base_1 ; + ASg Gen Fem => "mait"+base_1+"e" ; + APl => "mat"+base_1+"a" + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = "f"+base_1+"eàrr" + }; + _ => error "Can't apply paradigm mkA061" + } ; + +mkA062 : Str -> A ; +mkA062 base = + case base of { + base_1+"i"+base_2@?+"i"+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"i"+base_2+"i"+base_3 ; + ASg (Nom _) Fem => base_1+"hi"+base_2+"i"+base_3 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1+"hi"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+"ì"+base_2+base_3+"e" ; + APl => base_1+"ì"+base_2+base_3+"e" + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"ì"+base_2+base_3+"e" + }; + _ => error "Can't apply paradigm mkA062" + } ; + +mkA063 : Str -> A ; +mkA063 base = + case base of { + base_1+base_2@(?+?)+"_1" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"_1" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA063" + } ; + +mkA064 : Str -> A ; +mkA064 base = + case base of { + base_1+"òr" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"òr" ; + ASg (Nom _) Fem => base_1+"hòr" ; + ASg (Dat _) Masc => base_1+"òr" ; + ASg (Dat _) Fem => base_1+"hòir" ; + ASg Gen Masc => base_1+"hòir" ; + ASg Gen Fem => base_1+"òire" ; + APl => base_1+"òra" + } ; + voc = table { + Masc => base_1+"hòir" ; + Fem => base_1+"hòr" + } ; + compar = base_1+"otha" + }; + _ => error "Can't apply paradigm mkA064" + } ; + +mkA065 : Str -> A ; +mkA065 base = + case base of { + base_1+base_2@(?+?+?+?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+"h"+base_2 ; + ASg (Dat _) Fem => base_1+"h"+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+base_2+"e" ; + APl => base_1+base_2+"e" + } ; + voc = table { + Masc => base_1+"h"+base_2 ; + Fem => base_1+"h"+base_2 + } ; + compar = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkA065" + } ; + +mkA066 : Str -> A ; +mkA066 base = + case base of { + base_1+"ór" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ór" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"otha" + }; + _ => error "Can't apply paradigm mkA066" + } ; + +mkA067 : Str -> A ; +mkA067 base = + case base of { + "neo-"+base_1+"h"+base_2@(?+?+?)+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => "neo-"+base_1+"h"+base_2+base_3 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => base_1+base_2+base_3+"a" + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA067" + } ; + +mkA068 : Str -> A ; +mkA068 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => base_1 ; + ASg (Dat _) Masc => base_1 ; + ASg (Dat _) Fem => base_1+"e" ; + ASg Gen Masc => base_1 ; + ASg Gen Fem => base_1 ; + APl => base_1 + } ; + voc = table { + Masc => base_1 ; + Fem => base_1 + } ; + compar = nonExist + }; + _ => error "Can't apply paradigm mkA068" + } ; + +mkA069 : Str -> A ; +mkA069 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => base_1 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1 ; + ASg Gen Fem => base_1+"e" ; + APl => base_1+"e" + } ; + voc = table { + Masc => base_1 ; + Fem => base_1 + } ; + compar = base_1+"e" + }; + _ => error "Can't apply paradigm mkA069" + } ; + +mkA070 : Str -> A ; +mkA070 base = + case base of { + base_1+"lc" => lin A + { s = table { + ASg (Nom _) Masc => base_1+"lc" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = "mi"+base_1+"sa" + }; + _ => error "Can't apply paradigm mkA070" + } ; + +mkA071 : Str -> A ; +mkA071 base = + case base of { + base_1+"a"+base_2@(?+?)+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"a"+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"a"+base_2+base_3 ; + ASg (Dat _) Masc => base_1+"a"+base_2+base_3 ; + ASg (Dat _) Fem => base_1+"a"+base_2+"i"+base_3 ; + ASg Gen Masc => base_1+"a"+base_2+"i"+base_3 ; + ASg Gen Fem => base_1+"o"+base_2+"i"+base_3+"e" ; + APl => base_1+"a"+base_2+base_3 + } ; + voc = table { + Masc => base_1+"a"+base_2+"i"+base_3 ; + Fem => base_1+"a"+base_2+base_3 + } ; + compar = nonExist + }; + _ => error "Can't apply paradigm mkA071" + } ; + +mkA072 : Str -> A ; +mkA072 base = + case base of { + base_1+base_2@?+"o"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"o"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"o"+base_3 ; + ASg (Dat _) Masc => base_1+base_2+"o"+base_3 ; + ASg (Dat _) Fem => base_1+"h"+base_2+"ui"+base_3 ; + ASg Gen Masc => base_1+base_2+"ui"+base_3 ; + ASg Gen Fem => base_1+base_2+"ui"+base_3+"e" ; + APl => base_1+base_2+"o"+base_3+"a" + } ; + voc = table { + Masc => base_1+"h"+base_2+"ui"+base_3 ; + Fem => base_1+"h"+base_2+"o"+base_3 + } ; + compar = base_1+base_2+"ui"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA072" + } ; + +mkA073 : Str -> A ; +mkA073 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+"h"+base_2 ; + ASg (Dat _) Masc => base_1+base_2 ; + ASg (Dat _) Fem => base_1+"h"+base_2 ; + ASg Gen Masc => base_1+"h"+base_2 ; + ASg Gen Fem => base_1+"h"+base_2 ; + APl => base_1+base_2 + } ; + voc = table { + Masc => base_1+"h"+base_2 ; + Fem => base_1+"h"+base_2 + } ; + compar = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkA073" + } ; + +mkA074 : Str -> A ; +mkA074 base = + case base of { + base_1+"a"+base_2@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"a"+base_2 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"a" + }; + _ => error "Can't apply paradigm mkA074" + } ; + +mkA075 : Str -> A ; +mkA075 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => base_1 ; + ASg (Dat _) Masc => base_1 ; + ASg (Dat _) Fem => base_1 ; + ASg Gen Masc => base_1 ; + ASg Gen Fem => base_1 ; + APl => base_1 + } ; + voc = table { + Masc => base_1 ; + Fem => base_1 + } ; + compar = base_1+"e" + }; + _ => error "Can't apply paradigm mkA075" + } ; + +mkA076 : Str -> A ; +mkA076 base = + case base of { + base_1+"è"+base_2@(?+?)+"ea"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"è"+base_2+"ea"+base_3 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1+"è"+base_2+"i"+base_3 ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"é"+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkA076" + } ; + +mkA077 : Str -> A ; +mkA077 base = + case base of { + base_1+base_2@("g"|(?+?)) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => base_1+base_2 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+base_2+"a" + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA077" + } ; + +mkA078 : Str -> A ; +mkA078 base = + case base of { + base_1+base_2@?+"an" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"an" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"in"+base_2 + }; + _ => error "Can't apply paradigm mkA078" + } ; + +mkA079 : Str -> A ; +mkA079 base = + case base of { + base_1+"a"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"a"+base_2 ; + ASg (Nom _) Fem => base_1+"a"+base_2 ; + ASg (Dat _) Masc => base_1+"a"+base_2 ; + ASg (Dat _) Fem => base_1+"i"+base_2 ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+"a"+base_2+"a" + } ; + voc = table { + Masc => base_1+"i"+base_2 ; + Fem => base_1+"a"+base_2 + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA079" + } ; + +mkA080 : Str -> A ; +mkA080 base = + case base of { + base_1+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1+base_2 ; + ASg Gen Fem => base_1+base_2 ; + APl => base_1+base_2 + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA080" + } ; + +mkA081 : Str -> A ; +mkA081 base = + case base of { + base_1+"ea"+base_2@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+"ea"+base_2 ; + ASg (Nom _) Fem => base_1+"ea"+base_2 ; + ASg (Dat _) Masc => base_1+"ea"+base_2 ; + ASg (Dat _) Fem => base_1+"i"+base_2 ; + ASg Gen Masc => base_1+"i"+base_2 ; + ASg Gen Fem => base_1+"i"+base_2+"e" ; + APl => base_1+"ea"+base_2 + } ; + voc = table { + Masc => base_1+"i"+base_2 ; + Fem => base_1+"ea"+base_2 + } ; + compar = nonExist + }; + _ => error "Can't apply paradigm mkA081" + } ; + +mkA082 : Str -> A ; +mkA082 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => base_1 ; + ASg (Dat _) Masc => base_1 ; + ASg (Dat _) Fem => base_1 ; + ASg Gen Masc => base_1 ; + ASg Gen Fem => base_1+"e" ; + APl => base_1 + } ; + voc = table { + Masc => base_1 ; + Fem => base_1 + } ; + compar = nonExist + }; + _ => error "Can't apply paradigm mkA082" + } ; + +mkA083 : Str -> A ; +mkA083 base = + case base of { + base_1+base_2@?+"inn" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"inn" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"n"+base_2 + }; + _ => error "Can't apply paradigm mkA083" + } ; + +mkA084 : Str -> A ; +mkA084 base = + case base of { + base_1@(?+?)+base_2+"a" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"a" ; + ASg (Nom _) Fem => base_1+base_2+"a" ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA084" + } ; + +mkA085 : Str -> A ; +mkA085 base = + case base of { + base_1+base_2@?+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"o"+base_3+"a" + }; + _ => error "Can't apply paradigm mkA085" + } ; + +mkA086 : Str -> A ; +mkA086 base = + case base of { + base_1+base_2@?+"u"+base_3@(?+?) => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"u"+base_3 ; + ASg (Nom _) Fem => base_1+"h"+base_2+"u"+base_3 ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+base_3+"e" + }; + _ => error "Can't apply paradigm mkA086" + } ; + +mkA087 : Str -> A ; +mkA087 base = + case base of { + base_1+base_2@?+base_3@?+"un" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+base_3+"un" ; + ASg (Nom _) Fem => base_1+"h"+base_2+base_3+"un" ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+"èin"+base_3 + }; + _ => error "Can't apply paradigm mkA087" + } ; + +mkA088 : Str -> A ; +mkA088 base = + case base of { + base_1 => lin A + { s = table { + ASg (Nom _) Masc => base_1 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => base_1 ; + ASg Gen Fem => nonExist ; + APl => base_1+"an" + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = nonExist + }; + _ => error "Can't apply paradigm mkA088" + } ; + +mkA089 : Str -> A ; +mkA089 base = + case base of { + base_1+base_2@?+"ai"+base_3@?+"n" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"ai"+base_3+"n" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"i"+base_2+base_3+"e" + }; + _ => error "Can't apply paradigm mkA089" + } ; + +mkA090 : Str -> A ; +mkA090 base = + case base of { + base_1+"o"+base_2@?+"a"+base_3@? => lin A + { s = table { + ASg (Nom _) Masc => base_1+"o"+base_2+"a"+base_3 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+base_2+base_3+"e" + }; + _ => error "Can't apply paradigm mkA090" + } ; + +mkA091 : Str -> A ; +mkA091 base = + case base of { + base_1+base_2@?+"al" => lin A + { s = table { + ASg (Nom _) Masc => base_1+base_2+"al" ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = base_1+"l"+base_2 + }; + _ => error "Can't apply paradigm mkA091" + } ; + +mkA092 : Str -> A ; +mkA092 base = + case base of { + "ù"+base_1+base_2@? => lin A + { s = table { + ASg (Nom _) Masc => "ù"+base_1+base_2 ; + ASg (Nom _) Fem => nonExist ; + ASg (Dat _) Masc => nonExist ; + ASg (Dat _) Fem => nonExist ; + ASg Gen Masc => nonExist ; + ASg Gen Fem => nonExist ; + APl => nonExist + } ; + voc = table { + Masc => nonExist ; + Fem => nonExist + } ; + compar = "u"+base_1+"i"+base_2+"e" + }; + _ => error "Can't apply paradigm mkA092" + } ; + +reg4N' nom pl gen pal g = + lin N + { s = table { + Nom _ => table { + Indef => table { + Sg => nom ; + Pl => pl + } ; + Def => table { + Sg => nom ; + Pl => pl + } + } ; + Dat _ => table { + Indef => table { + Sg => nom ; + Pl => pl + } ; + Def => table { + Sg => lenite nom ; + Pl => pl + } + } ; + Gen => table { + Indef => table { + Sg => gen ; + Pl => pl + } ; + Def => table { + Sg => case g of { + Fem => gen ; + Masc => lenite pal + } ; + Pl => pl + } + } + } ; + voc = table { + Sg => lenite pal ; + Pl => pl + } ; + g = g + }; + +mkN001 : Str -> LinN ; +mkN001 base = + let pal = palatalise base + in mk5N base base pal (base+"an") pal Masc ; + +mkN002 : Str -> LinN ; +mkN002 base = + let pal = palatalise base + in mk5N base base pal pal pal Masc ; + +mkN004 : Str -> LinN ; +mkN004 base = mk5N base base base (base+"an") (palatalise base) Fem ; + +mkN005 : Str -> LinN ; +mkN005 base = + case base of { + base_1+base_2@(?+?)+"r" => + let pal = palatalise base + in mk5N base base pal (base_1+"r"+base_2+"chean") pal Masc ; + _ => error "Can't apply paradigm mkN005" + } ; + +mkN007 : Str -> LinN ; +mkN007 base = mk5N base base (base+"e") (base+"ean") (palatalise base) Fem ; + +mkN009 : Str -> LinN ; +mkN009 base = mk5N base base base (base+"an") (palatalise base) Masc ; + +mkN010 : Str -> LinN ; +mkN010 base = mk5N base base (base+"e") (base+"ean") (palatalise base) Masc ; + +mkN011 : Str -> LinN ; +mkN011 base = + case base of { + base_1@(_+("e"|"è"))+"a"+base_2@("sg"|"mh"|"nd"|"nn"|"bh"|"rt"|"nt"|"rg"|?) => mk5N base base (base_1+"i"+base_2) (base+"an") (base_1+"i"+base_2) Masc ; + _ => error "Can't apply paradigm mkN011" + } ; + +mkN013 : Str -> LinN ; +mkN013 base = + case base of { + base_1+"ia" => mk5N base base (base_1+"hè") (base+"than") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN013" + } ; + +mkN014 : Str -> LinN ; +mkN014 base = + case base of { + base_1+base_2@(?+?) => mk5N base base (base_1+"i"+base_2+"e") base (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN014" + } ; + +mkN015 : Str -> LinN ; +mkN015 base = + case base of { + base_1+"a"+base_2@("ng"|?) => mk5N base base (base_1+"i"+base_2) (base_1+"i"+base_2) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN015" + } ; + +mkN016 : Str -> LinN ; +mkN016 base = + case base of { + base_1+"a"+base_2@(?+?) => mk5N base base (base_1+"oi"+base_2) (base_1+"oi"+base_2) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN016" + } ; + +mkN017 : Str -> LinN ; +mkN017 base = + let pal = palatalise base + in mk5N base base pal (pal+"ean") pal Masc ; + +mkN019 : Str -> LinN ; +mkN019 base = + case base of { + base_1+"a"+base_2@("rc"|"ch"|"ng"|"rg"|"lg"|?) => mk5N base base (base_1+"i"+base_2+"e") (base+"an") (base_1+"i"+base_2) Fem ; + _ => error "Can't apply paradigm mkN019" + } ; + +mkN020 : Str -> LinN ; +mkN020 base = + let pal = palatalise base ; + len = lenite base + in mkNoun base pal base pal base pal base pal pal len pal base (lenite pal) (len+"a") Masc ; + +mkN021 : Str -> LinN ; +mkN021 base = mk5N base base (base+"a") (base+"achan") (palatalise base) Masc ; + +mkN022 : Str -> LinN ; +mkN022 base = reg4N' base (base+"chan") base (palatalise base) Masc ; + +mkN023 : Str -> LinN ; +mkN023 base = + let pal = palatalise base + in mk5N base base pal (base+"an") pal Fem ; + +mkN024 : Str -> LinN ; +mkN024 base = + case base of { + base_1@?+base_2+"ainn" => mk5N base base (base_1+"i"+base_2+"ne") (base_1+"i"+base_2+"nichean") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN024" + } ; + +mkN025 : Str -> LinN ; +mkN025 base = mk5N base base base (base+"ean") (palatalise base) Fem ; + +mkN026 : Str -> LinN ; +mkN026 base = + case base of { + base_1+base_2@?+"ir" => mk5N base base (base_1+"r"+base_2+"ch") (base_1+"r"+base_2+"ichean") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN026" + } ; + +mkN027 : Str -> LinN ; +mkN027 base = mk5N base base base (base+"annan") (palatalise base) Fem ; + +mkN028 : Str -> LinN ; +mkN028 base = mk5N base base base (base+"ean") (palatalise base) Masc ; + +mkN029 : Str -> LinN ; +mkN029 base = + case base of { + base_1+"as" => + let pal = palatalise base + in mk5N base base pal (base_1+"an") pal Masc ; + _ => error "Can't apply paradigm mkN029" + } ; + +mkN030 : Str -> LinN ; +mkN030 base = + let pal = palatalise base + in mk5N base base (pal+"e") (base+"an") pal Fem ; + +mkN031 : Str -> LinN ; +mkN031 base = + case base of { + "adha" => mk5N base base base "àinean" (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN031" + } ; + +mkN032 : Str -> LinN ; +mkN032 base = mk5N base base (palatalise base+"e") base (palatalise base) Fem ; + +mkN033 : Str -> LinN ; +mkN033 base = mk5N base base (palatalise base) (base+"aichean") (palatalise base) Masc ; + +mkN034 : Str -> LinN ; +mkN034 base = mk5N base base (palatalise base) (palatalise base+"an") (palatalise base) Masc ; + +mkN035 : Str -> LinN ; +mkN035 base = mk5N base base (base+"aig") (base+"an") (palatalise base) Masc ; + +mkN036 : Str -> LinN ; +mkN036 base = mkNoun base (palatalise base+"ean") base (palatalise base+"ean") (palatalise base) (palatalise base+"ean") (palatalise base) (palatalise base+"ean") (palatalise base+"e") base (palatalise base+"e") base (lenite base) (lenite base+"a") Fem ; + +mkN037 : Str -> LinN ; +mkN037 base = + case base of { + "aghann" => mk5N base base "aighne" (base+"an") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN037" + } ; + +mkN038 : Str -> LinN ; +mkN038 base = reg4N' base (base+"an") base (palatalise base) Masc ; + +mkN039 : Str -> LinN ; +mkN039 base = + case base of { + base_1@(_+"e")+"a"+base_2@? => reg4N' base (base+"an") (base_1+"i"+base_2) (base_1+"i"+base_2) Masc ; + _ => error "Can't apply paradigm mkN039" + } ; + +mkN040 : Str -> LinN ; +mkN040 base = reg4N' base (base+"ean") (base+"e") base Fem ; + +mkN041 : Str -> LinN ; +mkN041 base = mkNoun base (base+"ean") base (base+"ean") base (base+"ean") base (base+"ean") base (base+"ean") (base+"e") (base+"ean") (lenite base) (base+"ean") Fem ; + +mkN042 : Str -> LinN ; +mkN042 base = + case base of { + base_1+"ea"+base_2@(?+?) => mk5N base base base (base_1+"i"+base_2) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN042" + } ; + +mkN043 : Str -> LinN ; +mkN043 base = + case base of { + base_1@(_+("e"|"è"))+"a"+base_2@("bh"|"rt"|"lg"|"mh"|?) => mk5N base base (base_1+"i"+base_2) (base+"an") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN043" + } ; + +mkN044 : Str -> LinN ; +mkN044 base = + case base of { + base_1+"iach" => mk5N base base (base_1+"eich") (base_1+"iachan") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN044" + } ; + +mkN045 : Str -> LinN ; +mkN045 base = mk5N base base (palatalise base) (palatalise base) (palatalise base) Fem ; + +mkN046 : Str -> LinN ; +mkN046 base = mk5N base base base (base+"n") (palatalise base) Masc ; + +mkN047 : Str -> LinN ; +mkN047 base = + case base of { + base_1+"o"+base_2@("n"|"d"|"ll") => mk5N base base (base_1+base_2) (base+"tan") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN047" + } ; + +mkN048 : Str -> LinN ; +mkN048 base = mk5N base base base base (palatalise base) Fem ; + +mkN049 : Str -> LinN ; +mkN049 base = + case base of { + base_1+"i"+base_2@? => mk5N base base (base_1+base_2+"e") (base_1+base_2+"ean") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN049" + } ; + +mkN050 : Str -> LinN ; +mkN050 base = + case base of { + base_1+"ea"+base_2@(?+?) => mk5N base base (base_1+"io"+base_2+"a") (base+"an") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN050" + } ; + +mkN051 : Str -> LinN ; +mkN051 base = + case base of { + ("a"|"o")+base_1 => mk5N base base ("ui"+base_1) ("ui"+base_1) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN051" + } ; + +mkN052 : Str -> LinN ; +mkN052 base = + case base of { + "alp" => mk5N base base "ailp" (base+"a") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN052" + } ; + +mkN053 : Str -> LinN ; +mkN053 base = + case base of { + "alt" => mk5N base base "uilt" "altan" (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN053" + } ; + +mkN054 : Str -> LinN ; +mkN054 base = mk5N base base (palatalise base) (palatalise base+"ean") (palatalise base) Fem ; + +mkN055 : Str -> LinN ; +mkN055 base = + case base of { + base_1+"i"+base_2@? => mk5N base base (base_1+base_2+"ach") (base+"ean") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN055" + } ; + +mkN056 : Str -> LinN ; +mkN056 base = + case base of { + base_1+"am" => mk5N base base (base_1+"ma") (base_1+"man") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN056" + } ; + +mkN057 : Str -> LinN ; +mkN057 base = mk5N base base base (base+"ichean") (palatalise base) Fem ; + +mkN058 : Str -> LinN ; +mkN058 base = + case base of { + base_1+"air" => mkNoun base (base_1+"raichean") base (base_1+"raichean") base (base_1+"raichean") base (base_1+"raichean") (base_1+"ar") (base_1+"raichean") (base_1+"ar") (base_1+"raichean") base (base_1+"raichean") Masc ; + _ => error "Can't apply paradigm mkN058" + } ; + +mkN059 : Str -> LinN ; +mkN059 base = mk5N base base (base+"a") (base+"an") (palatalise base) Masc ; + +mkN060 : Str -> LinN ; +mkN060 base = mkNoun base (palatalise base+"ean") base (palatalise base+"ean") base (palatalise base+"ean") (lenite base) (palatalise base+"ean") (palatalise base) (lenite (palatalise base)+"ean") (lenite (palatalise base)) (palatalise base+"ean") (lenite (palatalise base)) (lenite (palatalise base)+"ean") Masc ; + +mkN061 : Str -> LinN ; +mkN061 base = mk5N base base base (base+"ichean") (palatalise base) Masc ; + +mkN062 : Str -> LinN ; +mkN062 base = + case base of { + base_1+"e" => mkNoun base (base_1+"tean") base (palatalise base) base (base_1+"tean") (base_1+"he") (palatalise base) base (lenite base) (base_1+"he") base (base_1+"he") (base+"a") Masc ; + _ => error "Can't apply paradigm mkN062" + } ; + +mkN063 : Str -> LinN ; +mkN063 base = mk5N base base base (base+"rean") (palatalise base) Fem ; + +mkN064 : Str -> LinN ; +mkN064 base = + case base of { + "baintighearna" => mkNoun base (base+"n") (lenite base) (base+"n") base (base+"n") (lenite base) (base+"n") base (lenite base+"n") base (base+"n") (lenite base) (lenite base+"n") Fem ; + _ => error "Can't apply paradigm mkN064" + } ; + +mkN067 : Str -> LinN ; +mkN067 base = + case base of { + base_1+"a"+base_2@(?+?) => mk5N base base (base_1+"ui"+base_2) (base_1+"ui"+base_2) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN067" + } ; + +mkN068 : Str -> LinN ; +mkN068 base = + case base of { + "balla" => mkNoun base (base+"chan") base (base+"chan") base (base+"chan") (lenite base) (base+"chan") base (lenite base+"chan") (lenite base) (base+"chan") (lenite base) (lenite base+"chan") Masc ; + _ => error "Can't apply paradigm mkN068" + } ; + +mkN069 : Str -> LinN ; +mkN069 base = + case base of { + base_1+("a"|"o")+base_2@("sg"|"lt"|"rt"|"rc"|"nn"|?) => mk5N base base (base_1+"ui"+base_2) (base+"an") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN069" + } ; + +mkN070 : Str -> LinN ; +mkN070 base = mk5N base base base (base+"thaichean") (palatalise base) Masc ; + +mkN071 : Str -> LinN ; +mkN071 base = + case base of { + base_1+"nais" => mk5N base base (base_1+"innse") (base_1+"innsean") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN071" + } ; + +mkN072 : Str -> LinN ; +mkN072 base = + case base of { + base_1+"a"+base_2@("s"|"ch") => mk5N base (base_1+"oi"+base_2) (base_1+"oi"+base_2+"e") (base+"an") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN072" + } ; + +mkN073 : Str -> LinN ; +mkN073 base = + case base of { + "bea"+base_1 => mkNoun base ("m"+base_1+"athan") (lenite base) ("m"+base_1+"athan") base ("m"+base_1+"athan") (lenite base) ("m"+base_1+"athan") ("m"+base_1+"à") ("ba"+base_1) ("m"+base_1+"à") ("ba"+base_1) (lenite base) ("mh"+base_1+"athan") Fem ; + _ => error "Can't apply paradigm mkN073" + } ; + +mkN074 : Str -> LinN ; +mkN074 base = + case base of { + "beann" => mkNoun base (base+"an") (lenite base) (base+"an") "beinn" (base+"an") (lenite "beinn") (base+"an") "beinn" (lenite base) "beinne" base (lenite base) (lenite base+"a") Fem ; + _ => error "Can't apply paradigm mkN074" + } ; + +mkN075 : Str -> LinN ; +mkN075 base = + case base of { + "beatha" => mkNoun base (base+"nnan") base (base+"nnan") base (base+"nnan") (palatalise base) (base+"nnan") base (lenite base) base base (lenite base) (base+"a") Fem ; + _ => error "Can't apply paradigm mkN075" + } ; + +mkN076 : Str -> LinN ; +mkN076 base = mkNoun base (base+"ean") (lenite base) (base+"ean") base (base+"ean") (lenite base) (base+"ean") (base+"e") (lenite base+"ean") (base+"e") (base+"ean") (lenite base) (lenite base+"ean") Fem ; + +mkN077 : Str -> LinN ; +mkN077 base = + case base of { + "beinn" => mkNoun base "beanntan" (lenite base) "beanntan" base "beanntan" (lenite base) "beanntan" (base+"e") "beann" (base+"e") "beann" (lenite base) (lenite "beannta") Fem ; + _ => error "Can't apply paradigm mkN077" + } ; + +mkN078 : Str -> LinN ; +mkN078 base = + case base of { + "beithe" => mkNoun base (base+"an") "bheithe" (base+"an") base (base+"an") "bheithe" (base+"an") base "bheithean" base (base+"an") "bheithe" "bheithean" Fem ; + _ => error "Can't apply paradigm mkN078" + } ; + +mkN079 : Str -> LinN ; +mkN079 base = + case base of { + base_1+"i"+base_2@(?+?)+"i"+base_3@? => mkNoun base (base_1+"i"+base_2+base_3+"ichean") base (palatalise base) base (base_1+"i"+base_2+base_3+"ichean") (lenite base) (palatalise base) (base_1+"a"+base_2+base_3+"ach") (lenite base) (lenite (palatalise base)) (base) (lenite (palatalise base)) (base+"a") Masc ; + _ => error "Can't apply paradigm mkN079" + } ; + +mkN080 : Str -> LinN ; +mkN080 base = + case base of { + base_1+"u"+base_2@? => mkNoun base (base+"an") base (palatalise base) base (base+"an") (lenite base) (palatalise base) (base_1+"òi"+base_2) (base_1+"òi"+base_2) (lenite (palatalise base)) base (lenite (palatalise base)) (base+"a") Masc ; + _ => error "Can't apply paradigm mkN080" + } ; + +mkN081 : Str -> LinN ; +mkN081 base = + case base of { + base_1+"u"+base_2@? => mk5N base base (base_1+"òi"+base_2) (base_1+"òi"+base_2) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN081" + } ; + +mkN082 : Str -> LinN ; +mkN082 base = mk5N base base (base+"a") (base+"an") (palatalise base) Fem ; + +mkN083 : Str -> LinN ; +mkN083 base = + case base of { + base_1+"eà"+base_2@(?+?) => mkNoun base (base+"an") base (palatalise base) base (base+"an") (lenite base) (palatalise base) (base_1+"èi"+base_2) (lenite base) (lenite (palatalise base)) base (lenite (palatalise base)) (base+"a") Masc ; + _ => error "Can't apply paradigm mkN083" + } ; + +mkN084 : Str -> LinN ; +mkN084 base = mk5N base base base (base+"aichean") (palatalise base) Masc ; + +mkN085 : Str -> LinN ; +mkN085 base = mk5N base base base (base+"than") (palatalise base) Masc ; + +mkN086 : Str -> LinN ; +mkN086 base = + case base of { + base_1+"ia"+base_2@(?+?) => mk5N base base (base_1+"ì"+base_2) (base+"an") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN086" + } ; + +mkN088 : Str -> LinN ; +mkN088 base = mk5N base base base (base+"chan") (palatalise base) Masc ; + +mkN089 : Str -> LinN ; +mkN089 base = + case base of { + base_1@("st"|"cn"|"cr"|?)+"o"+base_2 => mkNoun base (base_1+"ui"+base_2) (base_1+"o"+base_2) (palatalise base) base (base_1+"ui"+base_2) (lenite base) (palatalise base) (base_1+"ui"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"o"+base_2) (lenite (palatalise base)) (base_1+"o"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN089" + } ; + +mkN090 : Str -> LinN ; +mkN090 base = + case base of { + base_1@?+base_2 => mkNoun base (base+"an") base (base+"an") base (base+"an") (lenite base) (base+"an") base (lenite base+"an") (lenite base) (base+"an") (lenite base) (lenite base+"an") Masc ; + _ => error "Can't apply paradigm mkN090" + } ; + +mkN092 : Str -> LinN ; +mkN092 base = + case base of { + base_1+"i"+base_2@? => mk5N base base (base_1+"ma") (base_1+base_2+"annan") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN092" + } ; + +mkN093 : Str -> LinN ; +mkN093 base = + case base of { + base_1+"ea"+base_2@("s"|(?+?)) => mkNoun base (base+"an") base (palatalise base) base (base+"an") (lenite base) (palatalise base) (base_1+"i"+base_2) (base_1+"i"+base_2) (lenite (palatalise base)) base (lenite (palatalise base)) (base+"a") Masc ; + _ => error "Can't apply paradigm mkN093" + } ; + +mkN094 : Str -> LinN ; +mkN094 base = + case base of { + base_1+base_2@?+"ug" => mk5N base base (base_1+"èig"+base_2) (base+"an") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN094" + } ; + +mkN095 : Str -> LinN ; +mkN095 base = + case base of { + base_1+"ar" => mk5N base base (base_1+"air") (base_1+"ran") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN095" + } ; + +mkN096 : Str -> LinN ; +mkN096 base = + case base of { + base_1+base_2@?+"o"+base_3@? => mkNoun base (base_1+base_2+"ui"+base_3) base (base_1+base_2+"ui"+base_3) base (base_1+base_2+"ui"+base_3) (base_1+"h"+base_2+"o"+base_3) (base_1+base_2+"ui"+base_3) (base_1+base_2+"ui"+base_3) (base_1+"h"+base_2+"o"+base_3) (base_1+"h"+base_2+"ui"+base_3) base (base_1+"h"+base_2+"ui"+base_3) (base_1+"h"+base_2+"o"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN096" + } ; + +mkN098 : Str -> LinN ; +mkN098 base = + case base of { + base_1@?+base_2+base_3@("s"|"c"|"g"|"ch"|"bh"|"th") => mkNoun base (base_1+base_2+base_3+"an") (base_1+"h"+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3+"e") (base_1+"h"+base_2+base_3) (base_1+base_2+"i"+base_3+"e") (base_1+base_2+base_3) (base_1+"h"+base_2+base_3) (base_1+"h"+base_2+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN098" + } ; + +mkN100 : Str -> LinN ; +mkN100 base = + case base of { + base_1+"inn" => mk5N base base (base_1+"ne") (base_1+"nean") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN100" + } ; + +mkN101 : Str -> LinN ; +mkN101 base = + case base of { + "brà" => mkNoun base (base+"thntan") "bhrà" (base+"thntan") base (base+"thntan") "bhrà" (base+"thntan") (base+"than") "bhràthntan" (base+"than") (base+"thntan") "bhrà" "bhràthntan" Fem ; + _ => error "Can't apply paradigm mkN101" + } ; + +mkN102 : Str -> LinN ; +mkN102 base = + case base of { + base_1+base_2@(?+?)+"i"+base_3@(?+?) => mkNoun base (base+"eachan") base (base+"eachan") base (base+"eachan") (base_1+"h"+base_2+"i"+base_3) (base+"eachan") (base_1+base_2+base_3+"ad") (base_1+"h"+base_2+"i"+base_3+"eachan") (base_1+"h"+base_2+base_3+"ad") (base+"eachan") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"i"+base_3+"eachan") Masc ; + _ => error "Can't apply paradigm mkN102" + } ; + +mkN103 : Str -> LinN ; +mkN103 base = + case base of { + base_1+base_2@(?+?)+base_3@(?+?)+"ai"+base_4@? => mkNoun (base_1+base_2+base_3+"ai"+base_4) (base_1+base_2+"i"+base_3+base_4+"ean") (base_1+base_2+base_3+"ai"+base_4) (base_1+base_2+"i"+base_3+base_4+"ean") (base_1+base_2+base_3+"ai"+base_4) (base_1+base_2+"i"+base_3+base_4+"ean") (base_1+"h"+base_2+base_3+"ai"+base_4) (base_1+base_2+"i"+base_3+base_4+"ean") (base_1+base_2+base_3+"a"+base_4) (base_1+"h"+base_2+"i"+base_3+base_4+"ean") (base_1+"h"+base_2+base_3+"a"+base_4) (base_1+base_2+"i"+base_3+base_4+"ean") (base_1+"h"+base_2+base_3+"ai"+base_4) (base_1+"h"+base_2+"i"+base_3+base_4+"ean") Masc ; + _ => error "Can't apply paradigm mkN103" + } ; + +mkN104 : Str -> LinN ; +mkN104 base = + case base of { + base_1+"ea"+base_2@(?+?) => mkNoun (base_1+"ea"+base_2) (base_1+"i"+base_2) (base_1+"ea"+base_2) (base_1+"i"+base_2) base (base_1+"i"+base_2) (palatalise base) (base_1+"i"+base_2) (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2) (base_1+"ea"+base_2) (lenite base) (base_1+"ea"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN104" + } ; + +mkN105 : Str -> LinN ; +mkN105 base = + case base of { + base_1+base_2@?+"ù" => mkNoun (base_1+base_2+"ù") (base_1+base_2+"ùthan") (base_1+"h"+base_2+"ù") (base_1+base_2+"ùthan") (base_1+base_2+"oinn") (base_1+base_2+"onnaibh") (base_1+"h"+base_2+"oinn") (base_1+base_2+"onnaibh") (base_1+base_2+"onn") (base_1+"h"+base_2+"onn") (base_1+base_2+"onn") (base_1+base_2+"onn") (base_1+"h"+base_2+"ù") (base_1+"h"+base_2+"ùtha") Fem ; + _ => error "Can't apply paradigm mkN105" + } ; + +mkN106 : Str -> LinN ; +mkN106 base = + case base of { + base_1+"i"+base_2@? => mkNoun (base_1+"i"+base_2) (base_1+base_2+"annan") (base_1+"i"+base_2) (base_1+base_2+"annan") base (base_1+base_2+"annan") (palatalise base) (base_1+base_2+"annan") (base_1+base_2+"a") (lenite base) (base_1+base_2+"a") (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN106" + } ; + +mkN107 : Str -> LinN ; +mkN107 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+"i"+base_2) (base_1+base_2) (palatalise base) base (base_1+"i"+base_2) (lenite base) (palatalise base) (base_1+base_2+"a") (lenite base) (lenite (palatalise base)) (base_1+base_2) (lenite (palatalise base)) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN107" + } ; + +mkN108 : Str -> LinN ; +mkN108 base = + case base of { + base_1+base_2@(?+?+?+?+?+?) => mkNoun (base_1+base_2) (base_1+"i"+base_2+"ean") (base_1+base_2) (palatalise base) base (base_1+"i"+base_2+"ean") (lenite base) (palatalise base) (base_1+"h"+base_2) (lenite base) (lenite (palatalise base)) (base_1+base_2) (lenite (palatalise base)) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN108" + } ; + +mkN109 : Str -> LinN ; +mkN109 base = + case base of { + base_1+"ea"+base_2@(?+?) => mkNoun (base_1+"ea"+base_2) (base_1+"i"+base_2+"ean") (base_1+"ea"+base_2) (base_1+"i"+base_2+"ean") base (base_1+"i"+base_2+"ean") (palatalise base) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2) (base_1+"ea"+base_2) (lenite base) (base_1+"ea"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN109" + } ; + +mkN110 : Str -> LinN ; +mkN110 base = + case base of { + base_1+"à"+base_2@(?+?) => mkNoun (base_1+"à"+base_2) (base_1+"a"+base_2+"an") (base_1+"à"+base_2) (palatalise base) base (base_1+"a"+base_2+"an") (lenite base) (palatalise base) (base_1+"a"+base_2+"a") (lenite base) (lenite (palatalise base)) (base_1+"à"+base_2) (lenite (palatalise base)) (base_1+"à"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN110" + } ; + +mkN111 : Str -> LinN ; +mkN111 base = + case base of { + base_1+"ò" => mkNoun (base_1+"ò") (base_1+"à") (base_1+"hò") (base_1+"à") (base_1+"ò") (base_1+"à") (base_1+"hoin") (base_1+"à") (base_1+"à") (base_1+"ò") (base_1+"à") (base_1+"ò") (base_1+"hò") (base_1+"hà") Fem ; + _ => error "Can't apply paradigm mkN111" + } ; + +mkN112 : Str -> LinN ; +mkN112 base = + case base of { + base_1+"l" => mkNoun (base_1+"l") (base_1+"gais") (base_1+"l") (palatalise base) base (base_1+"gais") (lenite base) (palatalise base) (base_1+"gais") (lenite base) (lenite (palatalise base)) (base_1+"l") (lenite (palatalise base)) (base_1+"la") Masc ; + _ => error "Can't apply paradigm mkN112" + } ; + +mkN113 : Str -> LinN ; +mkN113 base = + case base of { + base_1+"ò"+base_2@(?+?) => mkNoun (base_1+"ò"+base_2) (base_1+"ùi"+base_2) (base_1+"ò"+base_2) (palatalise base) base (base_1+"ùi"+base_2) (lenite base) (palatalise base) (base_1+"ùi"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"ò"+base_2) (lenite (palatalise base)) (base_1+"ò"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN113" + } ; + +mkN114 : Str -> LinN ; +mkN114 base = + case base of { + base_1+"ó" => mkNoun (base_1+"ó") (base_1+"à") (base_1+"ó") (base_1+"à") (base_1+"oin") (base_1+"à") (palatalise base) (base_1+"à") (base_1+"à") (base_1+"ó") (base_1+"à") (base_1+"ó") (base_1+"ó") (base_1+"óa") Fem ; + _ => error "Can't apply paradigm mkN114" + } ; + +mkN115 : Str -> LinN ; +mkN115 base = + case base of { + base_1@?+base_2 => mkNoun (base_1+base_2) (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+"h"+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+"h"+base_2+"ean") Masc ; + _ => error "Can't apply paradigm mkN115" + } ; + +mkN116 : Str -> LinN ; +mkN116 base = mk5N base base base (base+"annan") (palatalise base) Masc ; + +mkN117 : Str -> LinN ; +mkN117 base = + case base of { + base_1+"ea"+base_2@(?+?) => mkNoun (base_1+"ea"+base_2) (base_1+"ea"+base_2+"an") (base_1+"ea"+base_2) (base_1+"ea"+base_2+"an") (base_1+"ea"+base_2) (base_1+"ea"+base_2+"an") (palatalise base) (base_1+"ea"+base_2+"an") (base_1+"i"+base_2+"e") (lenite base) (base_1+"i"+base_2+"e") (base_1+"ea"+base_2) (lenite base) (base_1+"ea"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN117" + } ; + +mkN118 : Str -> LinN ; +mkN118 base = mk5N base base base (base+"idhean") (palatalise base) Masc ; + +mkN119 : Str -> LinN ; +mkN119 base = mk5N base base (base+"a") (base+"aidhean") (palatalise base) Masc ; + +mkN120 : Str -> LinN ; +mkN120 base = mk5N base base (base+"e") base (palatalise base) Masc ; + +mkN121 : Str -> LinN ; +mkN121 base = mk5N base base base (base+"nnan") (palatalise base) Masc ; + +mkN123 : Str -> LinN ; +mkN123 base = + case base of { + base_1+base_2@(?+?+?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"than") (base_1+base_2) (base_1+base_2+"than") (base_1+base_2) (base_1+base_2+"than") (base_1+"h"+base_2) (base_1+base_2+"than") (base_1+base_2) (base_1+"h"+base_2+"than") (base_1+"h"+base_2) (base_1+base_2+"than") (base_1+"h"+base_2) (base_1+"h"+base_2+"than") Masc ; + _ => error "Can't apply paradigm mkN123" + } ; + +mkN124 : Str -> LinN ; +mkN124 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+"i"+base_2+"tean") (base_1+base_2) (palatalise base) base (base_1+"i"+base_2+"tean") (lenite base) (palatalise base) (base_1+"i"+base_2) (lenite base) (lenite (palatalise base)) (base_1+base_2) (lenite (palatalise base)) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN124" + } ; + +mkN125 : Str -> LinN ; +mkN125 base = + case base of { + base_1+base_2@(?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"ich") (base_1+"h"+base_2) (base_1+base_2+"ich") (base_1+base_2) (base_1+base_2+"ibh") (base_1+"h"+base_2) (base_1+base_2+"ibh") (base_1+base_2+"ch") (base_1+base_2+"ch") (base_1+base_2+"ch") (base_1+base_2+"ch") (base_1+"h"+base_2) (base_1+"h"+base_2+"ich") Fem ; + _ => error "Can't apply paradigm mkN125" + } ; + +mkN126 : Str -> LinN ; +mkN126 base = + case base of { + base_1+"a"+base_2@?+base_3@?+"id" => mkNoun (base_1+"a"+base_2+base_3+"id") (base_1+"ài"+base_2+"de"+base_3+"n") (base_1+"a"+base_2+base_3+"id") (palatalise base) base (base_1+"ài"+base_2+"de"+base_3+"n") (lenite base) (palatalise base) (base_1+"a"+base_2+base_3+"id") (lenite base) (lenite (palatalise base)) (base_1+"a"+base_2+base_3+"id") (lenite (palatalise base)) (base_1+"a"+base_2+base_3+"ida") Masc ; + _ => error "Can't apply paradigm mkN126" + } ; + +mkN127 : Str -> LinN ; +mkN127 base = + case base of { + base_1@?+base_2+base_3@("gh"|?) => mkNoun (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+"h"+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"an") Masc ; + _ => error "Can't apply paradigm mkN127" + } ; + +mkN128 : Str -> LinN ; +mkN128 base = + case base of { + base_1+"u" => mkNoun (base_1+"u") (base_1+"othan") (base_1+"u") (palatalise base) base (base_1+"othan") (lenite base) (palatalise base) (base_1+"u") (lenite base) (lenite (palatalise base)) (base_1+"u") (lenite (palatalise base)) (base_1+"ua") Masc ; + _ => error "Can't apply paradigm mkN128" + } ; + +mkN129 : Str -> LinN ; +mkN129 base = + case base of { + base_1+base_2@(?+?+?)+base_3@?+"ir" => mkNoun (base_1+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+"h"+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+"h"+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+"r"+base_3+"ch") (base_1+"h"+base_2+"r"+base_3+"ichean") (base_1+base_2+"r"+base_3+"ch") (base_1+base_2+"r"+base_3+"ichean") (base_1+"h"+base_2+base_3+"ir") (base_1+"h"+base_2+"r"+base_3+"ichean") Fem ; + _ => error "Can't apply paradigm mkN129" + } ; + +mkN131 : Str -> LinN ; +mkN131 base = + case base of { + base_1+base_2@?+"l" => mkNoun (base_1+base_2+"l") (base_1+"l"+base_2+"n") (base_1+base_2+"l") (base_1+"l"+base_2+"n") base (base_1+"l"+base_2+"n") (lenite base) (base_1+"l"+base_2+"n") (base_1+base_2+"il") (lenite base) (lenite (palatalise base)) (base_1+base_2+"l") (lenite (palatalise base)) (base_1+base_2+"la") Masc ; + _ => error "Can't apply paradigm mkN131" + } ; + +mkN132 : Str -> LinN ; +mkN132 base = + case base of { + base_1+"eò"+base_2@? => mkNoun (base_1+"eò"+base_2) (base_1+"iùi"+base_2) (base_1+"eò"+base_2) (palatalise base) base (base_1+"iùi"+base_2) (lenite base) (palatalise base) (base_1+"iùi"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"eò"+base_2) (lenite (palatalise base)) (base_1+"eò"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN132" + } ; + +mkN133 : Str -> LinN ; +mkN133 base = + case base of { + base_1+base_2@?+"a"+base_3@("s"|"n"|(?+?)) => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (palatalise base) (base_1+base_2+"a"+base_3+"an") (base_1+"è"+base_2+base_3+"e") (lenite base) (base_1+"è"+base_2+base_3+"e") (base_1+base_2+"a"+base_3) (lenite base) (base_1+base_2+"a"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN133" + } ; + + +mkN134 : Str -> LinN ; +mkN134 base = + case base of { + base_1@?+base_2@?+"a"+base_3 => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (palatalise base) (base_1+"è"+base_2+base_3) (base_1+base_2+"a"+base_3+"an") (lenite base) (palatalise base) (base_1+"è"+base_2+base_3) (lenite base) (lenite (palatalise base)) (base_1+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN134" + } ; + +mkN135 : Str -> LinN ; +mkN135 base = mk5N base base (base+"e") (base+"tean") (palatalise base) Masc ; + +mkN137 : Str -> LinN ; +mkN137 base = + case base of { + base_1+base_2@?+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"ui"+base_3) (base_1+base_2+"a"+base_3) (base_1+base_2+"ui"+base_3) (base_1+base_2+"a"+base_3) (base_1+base_2+"ui"+base_3) (base_1+"h"+base_2+"a"+base_3) (base_1+base_2+"ui"+base_3) (base_1+base_2+"ui"+base_3) (base_1+"h"+base_2+"a"+base_3) (base_1+"h"+base_2+"ui"+base_3) (base_1+base_2+"a"+base_3) (base_1+"h"+base_2+"ui"+base_3) (base_1+"h"+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN137" + } ; + +mkN138 : Str -> LinN ; +mkN138 base = + case base of { + base_1+"ea"+base_2@?+base_3@? => mkNoun (base_1+"ea"+base_2+base_3) (base_1+base_2+"ea"+base_3) (base_1+"ea"+base_2+base_3) (palatalise base) base (base_1+base_2+"ea"+base_3) (lenite base) (palatalise base) (base_1+"i"+base_2+base_3) (lenite base) (lenite (palatalise base)) (base_1+"ea"+base_2+base_3) (lenite (palatalise base)) (base_1+"ea"+base_2+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN138" + } ; + +mkN139 : Str -> LinN ; +mkN139 base = + case base of { + base_1+base_2@?+"a"+base_3@(?+?) => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"oi"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"oi"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"oi"+base_3+"e") (base_1+"h"+base_2+"a"+base_3) (base_1+base_2+"oi"+base_3+"e") (base_1+base_2+"a"+base_3) (base_1+"h"+base_2+"a"+base_3) (base_1+"h"+base_2+"a"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN139" + } ; + +mkN140 : Str -> LinN ; +mkN140 base = + case base of { + base_1+base_2@?+"a"+base_3@(?+?) => mkNoun (base_1+base_2+"a"+base_3) (base_1+"è"+base_2+base_3) (base_1+base_2+"a"+base_3) (palatalise base) base (base_1+"è"+base_2+base_3) (lenite base) (palatalise base) (base_1+"è"+base_2+base_3) (lenite base) (lenite (palatalise base)) (base_1+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN140" + } ; + +mkN141 : Str -> LinN ; +mkN141 base = + case base of { + base_1+"i"+base_2@(?+?+?)+base_3@?+"inn" => mkNoun (base_1+"i"+base_2+base_3+"inn") (base_1+"e"+base_2+"n"+base_3+"n") (base_1+"i"+base_2+base_3+"inn") (palatalise base) base (base_1+"e"+base_2+"n"+base_3+"n") (lenite base) (palatalise base) (base_1+"e"+base_2+"n"+base_3) (lenite base) (lenite (palatalise base)) (base_1+"i"+base_2+base_3+"inn") (lenite (palatalise base)) (base_1+"i"+base_2+base_3+"inna") Masc ; + _ => error "Can't apply paradigm mkN141" + } ; + +mkN142 : Str -> LinN ; +mkN142 base = + case base of { + base_1@?+base_2+"a"+base_3@("ct"|?) => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") Masc ; + _ => error "Can't apply paradigm mkN142" + } ; + +mkN143 : Str -> LinN ; +mkN143 base = mk5N base base base (base+"ithean") (palatalise base) Masc ; + +mkN144 : Str -> LinN ; +mkN144 base = mk5N base base (base+"dha") (base+"dhan") (palatalise base) Masc ; + +mkN145 : Str -> LinN ; +mkN145 base = + case base of { + base_1+"imh" => mk5N base base (base_1+"mha") (base_1+"mhan") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN145" + } ; + +mkN147 : Str -> LinN ; +mkN147 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@? => mkNoun (base_1+base_2+base_3) (base_1+base_2+"t"+base_3+"an") (base_1+"h"+base_2+base_3) (base_1+base_2+"t"+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+"t"+base_3+"an") (base_1+"h"+base_2+base_3) (base_1+base_2+"t"+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+"t"+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+"t"+base_3+"an") (base_1+"h"+base_2+base_3) (base_1+base_2+"t"+base_3+"an") Fem ; + _ => error "Can't apply paradigm mkN147" + } ; + +mkN148 : Str -> LinN ; +mkN148 base = + case base of { + base_1+"i"+base_2@(?+?+?+?+?+?+?+?) => mkNoun (base_1+"i"+base_2) (base_1+base_2+"ean") (base_1+"i"+base_2) (palatalise base) base (base_1+base_2+"ean") (lenite base) (palatalise base) (base_1+"i"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"i"+base_2) (lenite (palatalise base)) (base_1+"i"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN148" + } ; + +mkN149 : Str -> LinN ; +mkN149 base = + case base of { + base_1+base_2@?+"al" => mkNoun (base_1+base_2+"al") (base_1+"l"+base_2+"an") (base_1+base_2+"al") (base_1+"l"+base_2+"an") base (base_1+"l"+base_2+"an") (palatalise base) (base_1+"l"+base_2+"an") (base_1+"l"+base_2) (lenite base) (base_1+"l"+base_2) (base_1+base_2+"al") (lenite base) (base_1+base_2+"ala") Fem ; + _ => error "Can't apply paradigm mkN149" + } ; + +mkN150 : Str -> LinN ; +mkN150 base = mk5N base base base (base+"achan") (palatalise base) Masc ; + +mkN151 : Str -> LinN ; +mkN151 base = + case base of { + base_1+base_2@(?+?) => mkNoun (base_1+base_2) (base_1+"i"+base_2+"ean") (base_1+base_2) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2+"e") (base_1+base_2) (base_1+base_2) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN151" + } ; + +mkN152 : Str -> LinN ; +mkN152 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+"h"+base_2+"ean") (base_1+base_2+"e") (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+"h"+base_2+"ean") Fem ; + _ => error "Can't apply paradigm mkN152" + } ; + +mkN153 : Str -> LinN ; +mkN153 base = + case base of { + base_1+base_2@?+"ll" => mkNoun (base_1+base_2+"ll") (base_1+"l"+base_2+"ichean") (base_1+base_2+"ll") (base_1+"l"+base_2+"ichean") base (base_1+"l"+base_2+"ichean") (palatalise base) (base_1+"l"+base_2+"ichean") (base_1+"l"+base_2+"ch") (lenite base) (base_1+"l"+base_2+"ch") (base_1+base_2+"ll") (lenite base) (base_1+base_2+"lla") Fem ; + _ => error "Can't apply paradigm mkN153" + } ; + +mkN154 : Str -> LinN ; +mkN154 base = + case base of { + base_1+base_2@(?+?) => mkNoun (base_1+base_2) (base_1+"i"+base_2) (base_1+base_2) (palatalise base) (base_1+base_2) (base_1+"i"+base_2) (base_1+"h"+base_2) (palatalise base) (base_1+base_2) (lenite base) (base_1+"h"+base_2) (base_1+base_2) (base_1+"h"+base_2) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN154" + } ; + +mkN155 : Str -> LinN ; +mkN155 base = + case base of { + base_1+"i"+base_2@("l"|(?+?)) => mkNoun (base_1+"i"+base_2) (base_1+base_2+"aichean") (base_1+"i"+base_2) (base_1+base_2+"aichean") base (base_1+base_2+"aichean") (palatalise base) (base_1+base_2+"aichean") (base_1+base_2+"ach") (lenite base) (base_1+base_2+"ach") (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN155" + } ; + +mkN156 : Str -> LinN ; +mkN156 base = + case base of { + base_1+base_2@(?+?)+"a" => mkNoun (base_1+base_2+"a") (base_1+"i"+base_2+"ean") (base_1+base_2+"a") (palatalise base) base (base_1+"i"+base_2+"ean") (lenite base) (palatalise base) (base_1+"i"+base_2+"e") (lenite base) (lenite (palatalise base)) (base_1+base_2+"a") (lenite (palatalise base)) (base_1+base_2+"aa") Masc ; + _ => error "Can't apply paradigm mkN156" + } ; + +mkN157 : Str -> LinN ; +mkN157 base = + case base of { + base_1+"o"+base_2@(?+?) => mkNoun (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (base_1+base_2) (base_1+"o"+base_2+"an") (palatalise base) (base_1+"o"+base_2+"an") (base_1+base_2+"e") (lenite base) (base_1+base_2+"e") (base_1+"o"+base_2) (lenite base) (base_1+"o"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN157" + } ; + +mkN158 : Str -> LinN ; +mkN158 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+base_2+"tan") (base_1+base_2) (palatalise base) base (base_1+base_2+"tan") (lenite base) (palatalise base) (base_1+"i"+base_2) (lenite base) (lenite (palatalise base)) (base_1+base_2) (lenite (palatalise base)) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN158" + } ; + +mkN159 : Str -> LinN ; +mkN159 base = mk5N base base base base (palatalise base) Masc ; + +mkN160 : Str -> LinN ; +mkN160 base = + case base of { + base_1+"ui"+base_2@? => mkNoun (base_1+"ui"+base_2) (base_1+"o"+base_2+"aichean") (base_1+"hui"+base_2) (base_1+"o"+base_2+"aichean") (base_1+"ui"+base_2) (base_1+"o"+base_2+"aichean") (base_1+"hui"+base_2) (base_1+"o"+base_2+"aichean") (base_1+"o"+base_2+"ach") (base_1+"ho"+base_2+"aichean") (base_1+"o"+base_2+"ach") (base_1+"o"+base_2+"aichean") (base_1+"hui"+base_2) (base_1+"ho"+base_2+"aiche") Fem ; + _ => error "Can't apply paradigm mkN160" + } ; + +mkN161 : Str -> LinN ; +mkN161 base = + case base of { + base_1+"ea"+base_2@?+"l" => mkNoun (base_1+"ea"+base_2+"l") (base_1+base_2+"eachan") (base_1+"ea"+base_2+"l") (base_1+base_2+"eachan") base (base_1+base_2+"eachan") (palatalise base) (base_1+base_2+"eachan") (base_1+"i"+base_2+"l") (lenite base) (base_1+"i"+base_2+"l") (base_1+"ea"+base_2+"l") (lenite base) (base_1+"ea"+base_2+"la") Fem ; + _ => error "Can't apply paradigm mkN161" + } ; + +mkN163 : Str -> LinN ; +mkN163 base = + case base of { + base_1+"s"+base_2@?+"a"+base_3@? => mkNoun (base_1+"s"+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"s"+base_2+"a"+base_3) (palatalise base) base (base_1+base_2+"a"+base_3+"an") (lenite base) (palatalise base) (base_1+"s"+base_2+"i"+base_3) (lenite base) (lenite (palatalise base)) (base_1+"s"+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+"s"+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN163" + } ; + +mkN164 : Str -> LinN ; +mkN164 base = + case base of { + base_1+base_2@?+base_3@? => mkNoun (base_1+base_2+base_3) (base_1+base_2+base_3+"aichean") (base_1+base_2+base_3) (base_1+base_2+base_3+"aichean") (base_1+base_2+base_3) (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+base_3) (base_1+base_2+base_3+"aichean") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"aichean") Masc ; + _ => error "Can't apply paradigm mkN164" + } ; + +mkN165 : Str -> LinN ; +mkN165 base = + case base of { + base_1+"à"+base_2@(?+?) => mkNoun (base_1+"à"+base_2) (base_1+"ùi"+base_2) (base_1+"à"+base_2) (base_1+"ùi"+base_2) (base_1+"à"+base_2) (base_1+"ùi"+base_2) (base_1+"hà"+base_2) (base_1+"ùi"+base_2) (base_1+"ùi"+base_2) (base_1+"hà"+base_2) (base_1+"hùi"+base_2) (base_1+"à"+base_2) (base_1+"hùi"+base_2) (base_1+"hà"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN165" + } ; + +mkN166 : Str -> LinN ; +mkN166 base = mk5N base base (base+"ithe") (base+"ithean") (palatalise base) Masc ; + +mkN167 : Str -> LinN ; +mkN167 base = + case base of { + base_1+"o"+base_2@(?+?) => mkNoun (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (palatalise base) (base_1+"o"+base_2+"an") (base_1+base_2+"e") (lenite base) (base_1+base_2+"e") (base_1+"o"+base_2) (lenite base) (base_1+"o"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN167" + } ; + +mkN168 : Str -> LinN ; +mkN168 base = + case base of { + base_1+"ò"+base_2@(?+?+?+?)+"a"+base_3@? => mkNoun (base_1+"ò"+base_2+"a"+base_3) (base_1+"ó"+base_2+"a"+base_3+"an") (base_1+"ò"+base_2+"a"+base_3) (palatalise base) base (base_1+"ó"+base_2+"a"+base_3+"an") (lenite base) (palatalise base) (base_1+"ó"+base_2+"i"+base_3) (lenite base) (lenite (palatalise base)) (base_1+"ò"+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+"ò"+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN168" + } ; + +mkN169 : Str -> LinN ; +mkN169 base = + case base of { + base_1+base_2@?+"i"+base_3@? => mkNoun (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+base_2+base_3+"ach") (base_1+base_2+base_3+"aichean") (base_1+base_2+base_3+"ach") (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"aiche") Fem ; + _ => error "Can't apply paradigm mkN169" + } ; + +mkN170 : Str -> LinN ; +mkN170 base = + case base of { + base_1+"h"+base_2@?+"i"+base_3@? => mkNoun (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") base (base_1+base_2+base_3+"aichean") (palatalise base) (base_1+base_2+base_3+"aichean") (base_1+base_2+base_3+"ach") (lenite base) (base_1+base_2+base_3+"ach") (base_1+"h"+base_2+"i"+base_3) (lenite base) (base_1+"h"+base_2+"i"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN170" + } ; + +mkN171 : Str -> LinN ; +mkN171 base = + case base of { + base_1+"ù" => mkNoun (base_1+"ù") (base_1+"oin") (base_1+"ù") (base_1+"oin") (base_1+"ù") (base_1+"oin") (base_1+"hù") (base_1+"oin") (base_1+"oin") (base_1+"hon") (base_1+"hoin") (base_1+"on") (base_1+"hoin") (base_1+"hona") Masc ; + _ => error "Can't apply paradigm mkN171" + } ; + +mkN172 : Str -> LinN ; +mkN172 base = + case base of { + base_1+"ea"+base_2@(?+?) => mkNoun (base_1+"ea"+base_2) (base_1+"i"+base_2+"ean") (base_1+"ea"+base_2) (base_1+"i"+base_2+"ean") base (base_1+"i"+base_2+"ean") (palatalise base) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2+"e") (lenite base) (base_1+"i"+base_2+"e") (base_1+"ea"+base_2) (lenite base) (base_1+"ea"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN172" + } ; + +mkN173 : Str -> LinN ; +mkN173 base = + case base of { + base_1@?+base_2+base_3@("ch"|?) => mkNoun (base_1+base_2+base_3) (base_1+base_2+"i"+base_3) (base_1+base_2+base_3) (base_1+base_2+"i"+base_3) (base_1+base_2+base_3) (base_1+base_2+"i"+base_3) (base_1+base_2+base_3) (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+base_3) (base_1+base_2+"i"+base_3) (base_1+base_2+base_3) (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN173" + } ; + +mkN174 : Str -> LinN ; +mkN174 base = + case base of { + base_1@?+base_2+base_3@? => mkNoun (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"an") Masc ; + _ => error "Can't apply paradigm mkN174" + } ; + +mkN175 : Str -> LinN ; +mkN175 base = + case base of { + base_1+base_2@?+"och" => mkNoun (base_1+base_2+"och") (base_1+base_2+"ochan") (base_1+base_2+"och") (base_1+base_2+"ochan") base (base_1+base_2+"ochan") (palatalise base) (base_1+base_2+"ochan") (base_1+"igh"+base_2) (lenite base) (base_1+"igh"+base_2) (base_1+base_2+"och") (lenite base) (base_1+base_2+"ocha") Fem ; + _ => error "Can't apply paradigm mkN175" + } ; + +mkN176 : Str -> LinN ; +mkN176 base = + case base of { + base_1+"u"+base_2@? => mkNoun (base_1+"u"+base_2) (base_1+"u"+base_2+"an") (base_1+"u"+base_2) (base_1+"u"+base_2+"an") base (base_1+"u"+base_2+"an") (lenite base) (base_1+"u"+base_2+"an") (base_1+"i"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"u"+base_2) (lenite (palatalise base)) (base_1+"u"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN176" + } ; + +mkN177 : Str -> LinN ; +mkN177 base = + case base of { + base_1+"ia" => mkNoun (base_1+"ia") (base_1+"iathan") (base_1+"ia") (base_1+"iathan") (base_1+"ia") (base_1+"iathan") (base_1+"ia") (base_1+"iathan") (base_1+"è") (base_1+"hia") (base_1+"è") (base_1+"ia") (base_1+"hè") (base_1+"hiatha") Masc ; + _ => error "Can't apply paradigm mkN177" + } ; + +mkN178 : Str -> LinN ; +mkN178 base = + case base of { + base_1@?+base_2+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") Masc ; + _ => error "Can't apply paradigm mkN178" + } ; + +mkN179 : Str -> LinN ; +mkN179 base = + case base of { + base_1+base_2@?+"s" => mkNoun (base_1+base_2+"s") (base_1+"s"+base_2+"n") (base_1+base_2+"s") (palatalise base) base (base_1+"s"+base_2+"n") (lenite base) (palatalise base) (base_1+base_2+"is") (lenite base) (lenite (palatalise base)) (base_1+base_2+"s") (lenite (palatalise base)) (base_1+base_2+"sa") Masc ; + _ => error "Can't apply paradigm mkN179" + } ; + +mkN180 : Str -> LinN ; +mkN180 base = + case base of { + base_1+base_2@?+"st" => mkNoun (base_1+base_2+"st") (base_1+"s"+base_2+"n") (base_1+base_2+"st") (palatalise base) base (base_1+"s"+base_2+"n") (lenite base) (palatalise base) (base_1+base_2+"ist") (lenite base) (lenite (palatalise base)) (base_1+base_2+"st") (lenite (palatalise base)) (base_1+base_2+"sta") Masc ; + _ => error "Can't apply paradigm mkN180" + } ; + +mkN181 : Str -> LinN ; +mkN181 base = + case base of { + base_1+"u"+base_2@? => mkNoun (base_1+"u"+base_2) (base_1+base_2+"an") (base_1+"u"+base_2) (palatalise base) base (base_1+base_2+"an") (lenite base) (palatalise base) (base_1+"ui"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"u"+base_2) (lenite (palatalise base)) (base_1+"u"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN181" + } ; + +mkN182 : Str -> LinN ; +mkN182 base = mk5N base base (base+"a") (base+"annan") (palatalise base) Masc ; + +mkN183 : Str -> LinN ; +mkN183 base = + case base of { + base_1+base_2@?+"as" => mkNoun (base_1+base_2+"as") (base_1+base_2+"asan") (base_1+base_2+"as") (base_1+base_2+"asan") base (base_1+base_2+"asan") (palatalise base) (base_1+base_2+"asan") (base_1+"is"+base_2) (lenite base) (base_1+"is"+base_2) (base_1+base_2+"as") (lenite base) (base_1+base_2+"asa") Fem ; + _ => error "Can't apply paradigm mkN183" + } ; + +mkN184 : Str -> LinN ; +mkN184 base = + case base of { + base_1+"ui"+base_2@? => mkNoun (base_1+"ui"+base_2) (base_1+"o"+base_2+"annan") (base_1+"ui"+base_2) (palatalise base) base (base_1+"o"+base_2+"annan") (lenite base) (palatalise base) (base_1+"o"+base_2+"a") (lenite base) (lenite (palatalise base)) (base_1+"ui"+base_2) (lenite (palatalise base)) (base_1+"ui"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN184" + } ; + +mkN185 : Str -> LinN ; +mkN185 base = + case base of { + base_1+base_2@(?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"ichean") (base_1+base_2) (base_1+base_2+"ichean") (base_1+base_2) (base_1+base_2+"ichean") (base_1+base_2) (base_1+base_2+"ichean") (base_1+base_2) (base_1+"h"+base_2+"ichean") (base_1+base_2) (base_1+base_2+"ichean") (base_1+"h"+base_2) (base_1+"h"+base_2+"ichean") Fem ; + _ => error "Can't apply paradigm mkN185" + } ; + +mkN186 : Str -> LinN ; +mkN186 base = + case base of { + base_1+"à"+base_2@? => mkNoun (base_1+"à"+base_2) (base_1+"a"+base_2+"annan") (base_1+"à"+base_2) (palatalise base) base (base_1+"a"+base_2+"annan") (lenite base) (palatalise base) (base_1+"a"+base_2+"a") (lenite base) (lenite (palatalise base)) (base_1+"à"+base_2) (lenite (palatalise base)) (base_1+"à"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN186" + } ; + +mkN187 : Str -> LinN ; +mkN187 base = + case base of { + base_1+"u"+base_2@(?+?+?) => mkNoun (base_1+"u"+base_2) (base_1+"ao"+base_2) (base_1+"u"+base_2) (palatalise base) base (base_1+"ao"+base_2) (lenite base) (palatalise base) (base_1+"u"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"u"+base_2) (lenite (palatalise base)) (base_1+"u"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN187" + } ; + +mkN188 : Str -> LinN ; +mkN188 base = + case base of { + base_1+"e" => mkNoun (base_1+"e") (base_1+"eannan") (base_1+"e") (base_1+"eannan") (base_1+"inn") (base_1+"eannan") (palatalise base) (base_1+"eannan") (base_1+"eann") (lenite base) (base_1+"eann") (base_1+"e") (lenite base) (base_1+"ea") Fem ; + _ => error "Can't apply paradigm mkN188" + } ; + +mkN189 : Str -> LinN ; +mkN189 base = + case base of { + base_1+"i"+base_2@? => mkNoun (base_1+"i"+base_2) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2) (base_1+"i"+base_2+"ean") base (base_1+"i"+base_2+"ean") (palatalise base) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2+"e") (base_1+base_2) (base_1+"i"+base_2+"e") (base_1+"i"+base_2) (base_1+base_2) (base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN189" + } ; + +mkN190 : Str -> LinN ; +mkN190 base = + case base of { + base_1+base_2@(?+?+?)+"ai"+base_3@(?+?) => mkNoun (base_1+base_2+"ai"+base_3) (base_1+base_2+base_3+"annan") (base_1+base_2+"ai"+base_3) (base_1+base_2+base_3+"annan") (base_1+base_2+"ai"+base_3) (base_1+base_2+base_3+"annan") (base_1+base_2+"ai"+base_3) (base_1+base_2+base_3+"annan") (base_1+base_2+base_3+"a") (base_1+"h"+base_2+base_3+"annan") (base_1+base_2+base_3+"a") (base_1+base_2+base_3+"annan") (base_1+"h"+base_2+"ai"+base_3) (base_1+"h"+base_2+base_3+"annan") Fem ; + _ => error "Can't apply paradigm mkN190" + } ; + +mkN191 : Str -> LinN ; +mkN191 base = + case base of { + base_1+"a"+base_2@("n"|(?+?)) => mkNoun (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN191" + } ; + +mkN192 : Str -> LinN ; +mkN192 base = mk5N base base (base+"idh") (base+"chan") (palatalise base) Masc ; + +mkN193 : Str -> LinN ; +mkN193 base = + case base of { + base_1+base_2@?+"r" => mkNoun (base_1+base_2+"r") (base_1+"r"+base_2+"ichean") (base_1+base_2+"r") (palatalise base) base (base_1+"r"+base_2+"ichean") (lenite base) (palatalise base) (base_1+base_2+"ir") (lenite base) (lenite (palatalise base)) (base_1+base_2+"r") (lenite (palatalise base)) (base_1+base_2+"ra") Masc ; + _ => error "Can't apply paradigm mkN193" + } ; + +mkN194 : Str -> LinN ; +mkN194 base = + case base of { + base_1+base_2@?+"ann" => mkNoun (base_1+base_2+"ann") (nonExist) (base_1+base_2+"ann") (nonExist) base (nonExist) (palatalise base) nonExist (base_1+"n"+base_2) (lenite base) (base_1+"n"+base_2) (base_1+base_2+"ann") (lenite base) (base_1+base_2+"anna") Fem ; + _ => error "Can't apply paradigm mkN194" + } ; + +mkN195 : Str -> LinN ; +mkN195 base = + case base of { + "e"+base_1+"i"+base_2@? => mkNoun ("e"+base_1+"i"+base_2) ("è"+base_1+base_2+"ean") ("e"+base_1+"i"+base_2) ("è"+base_1+base_2+"ean") base ("è"+base_1+base_2+"ean") (palatalise base) ("è"+base_1+base_2+"ean") ("è"+base_1+base_2+"e") (lenite base) ("è"+base_1+base_2+"e") ("e"+base_1+"i"+base_2) (lenite base) ("e"+base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN195" + } ; + +mkN196 : Str -> LinN ; +mkN196 base = + case base of { + "eu"+base_1 => mk5N base base ("èi"+base_1) (palatalise base) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN196" + } ; + +mkN197 : Str -> LinN ; +mkN197 base = + case base of { + "eò" => mkNoun ("eò") ("iach") ("eò") (palatalise base) base ("iach") (lenite base) (palatalise base) ("iach") (lenite base) (lenite (palatalise base)) ("eò") (lenite (palatalise base)) ("eòa") Masc ; + _ => error "Can't apply paradigm mkN197" + } ; + +mkN199 : Str -> LinN ; +mkN199 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+"ich"+base_2+"an") (base_1+base_2) (palatalise base) (base_1+base_2) (base_1+"ich"+base_2+"an") (base_1+"h"+base_2) (palatalise base) (base_1+base_2) (lenite base) (base_1+"h"+base_2) (base_1+base_2) (base_1+"h"+base_2) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN199" + } ; + +mkN200 : Str -> LinN ; +mkN200 base = + case base of { + base_1+base_2@?+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+"n"+base_2+"a"+base_3) (base_1+base_2+"a"+base_3) (palatalise base) base (base_1+"n"+base_2+"a"+base_3) (lenite base) (palatalise base) (base_1+base_2+"i"+base_3) (lenite base) (lenite (palatalise base)) (base_1+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN200" + } ; + +mkN201 : Str -> LinN ; +mkN201 base = + case base of { + base_1+"i"+base_2@(?+?) => mkNoun (base_1+"i"+base_2) (base+"an") (base_1+"i"+base_2) (base+"an") base (base+"an") (palatalise base) (base+"an") (base_1+base_2) (lenite base) (base_1+base_2) (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN201" + } ; + +mkN202 : Str -> LinN ; +mkN202 base = + case base of { + base_1+"ea"+base_2@? => mkNoun (base_1+"ea"+base_2) (base_1+"i"+base_2) (base_1+"ea"+base_2) (base_1+"i"+base_2) (base_1+"ea"+base_2) (base_1+"i"+base_2) (base_1+"hea"+base_2) (base_1+"i"+base_2) (base_1+"i"+base_2) (base_1+"hea"+base_2) (base_1+"hi"+base_2) (base_1+"ea"+base_2) (base_1+"hi"+base_2) (base_1+"hea"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN202" + } ; + +mkN203 : Str -> LinN ; +mkN203 base = + case base of { + base_1+base_2@(?+?)+"i"+base_3@? => mkNoun (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+base_3+"a") (base_1+"h"+base_2+"i"+base_3+"ean") (base_1+base_2+base_3+"a") (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN203" + } ; + +mkN204 : Str -> LinN ; +mkN204 base = + case base of { + base_1+base_2@?+"ill" => mk5N base base (base_1+"l"+base_2) (base_1+"l"+base_2+"n") (palatalise base) Fem ; + _ => error "Can't apply paradigm mkN204" + } ; + +mkN205 : Str -> LinN ; +mkN205 base = + case base of { + base_1+base_2@?+"a"+base_3@(?+?) => mkNoun base (base_1+"è"+base_2+base_3) base (base_1+"è"+base_2+base_3) base (base_1+"è"+base_2+base_3) (lenite base) (base_1+"è"+base_2+base_3) (base_1+"è"+base_2+base_3) (lenite base) (base_1+"hè"+base_2+base_3) base (base_1+"hè"+base_2+base_3) (lenite base+"a") Masc ; + _ => error "Can't apply paradigm mkN205" + } ; + +mkN206 : Str -> LinN ; +mkN206 base = + case base of { + base_1+"i"+base_2@(?+?)+"ea"+base_3@?+"l" => mkNoun (base_1+"i"+base_2+"ea"+base_3+"l") (base_1+"ì"+base_2+base_3+"ean") (base_1+"i"+base_2+"ea"+base_3+"l") (base_1+"ì"+base_2+base_3+"ean") (base_1+"i"+base_2+"i"+base_3+"l") (base_1+"ì"+base_2+base_3+"ean") (palatalise base) (base_1+"ì"+base_2+base_3+"ean") (base_1+"ì"+base_2+base_3+"e") (lenite base) (base_1+"ì"+base_2+base_3+"e") (base_1+"i"+base_2+"ea"+base_3+"l") (lenite base) (base_1+"i"+base_2+"ea"+base_3+"la") Fem ; + _ => error "Can't apply paradigm mkN206" + } ; + +mkN207 : Str -> LinN ; +mkN207 base = + case base of { + base_1+"o"+base_2@(?+?)+"a" => mkNoun base (base_1+"o"+base_2+"an") base (base_1+"o"+base_2+"an") base (base_1+"o"+base_2+"an") (palatalise base) base (base_1+"ui"+base_2+"e") (lenite base) (base_1+"ui"+base_2+"e") base (lenite base) (base+"a") Fem ; + _ => error "Can't apply paradigm mkN207" + } ; + +mkN208 : Str -> LinN ; +mkN208 base = + case base of { + base_1+"ui"+base_2@? => mkNoun (base_1+"ui"+base_2) (base+"an") (base_1+"hui"+base_2) (base+"an") (base_1+"ui"+base_2) (base+"an") (base_1+"hui"+base_2) (base+"an") (base_1+"a"+base_2+"a") (lenite base) (base_1+"a"+base_2+"a") (base_1+"ui"+base_2) (base_1+"hui"+base_2) (base_1+"ui"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN208" + } ; + +mkN209 : Str -> LinN ; +mkN209 base = + case base of { + base_1+base_2@(?+?+?)+"ea"+base_3@(?+?) => mkNoun (base_1+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"i"+base_3+"ean") Masc ; + _ => error "Can't apply paradigm mkN209" + } ; + +mkN210 : Str -> LinN ; +mkN210 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+"ich"+base_2+"an") (base_1+base_2) (base_1+"ich"+base_2+"an") (base_1+base_2) (base_1+"ich"+base_2+"an") (base_1+"h"+base_2) (base_1+"ich"+base_2+"an") (base_1+base_2) (lenite base) (base_1+base_2) (base_1+base_2) (base_1+"h"+base_2) (base_1+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN210" + } ; + +mkN211 : Str -> LinN ; +mkN211 base = mk5N base base (base+"a") (base+"tan") (palatalise base) Masc ; + +mkN212 : Str -> LinN ; +mkN212 base = + case base of { + base_1+base_2@(?+?+?+?)+"i"+base_3@? => mkNoun (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+base_3+"aichean") (base_1+base_2+base_3+"ach") (base_1+"h"+base_2+base_3+"aichean") (base_1+base_2+base_3+"ach") (base_1+base_2+base_3+"aichean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"aichean") Masc ; + _ => error "Can't apply paradigm mkN212" + } ; + +mkN213 : Str -> LinN ; +mkN213 base = + case base of { + base_1+"a"+base_2@?+"a"+base_3@(?+?+?) => mkNoun (base_1+"a"+base_2+"a"+base_3) (base_1+"i"+base_2+base_3+"ean") (base_1+"a"+base_2+"a"+base_3) (palatalise base) base (base_1+"i"+base_2+base_3+"ean") (lenite base) (palatalise base) (base_1+"i"+base_2+base_3) (lenite base) (lenite (palatalise base)) (base_1+"a"+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+"a"+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN213" + } ; + +mkN214 : Str -> LinN ; +mkN214 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"ea"+base_3@(?+?) => mkNoun (base_1+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"e") (base_1+base_2+"ea"+base_3) (base_1+"h"+base_2+"ea"+base_3) (base_1+"h"+base_2+"ea"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN214" + } ; + +mkN216 : Str -> LinN ; +mkN216 base = + case base of { + base_1+base_2@(?+?)+"ai"+base_3@?+"n" => mkNoun base (base_1+base_2+base_3+"a") (base_1+base_2+"ai"+base_3+"n") (palatalise base) base (base_1+base_2+base_3+"a") (lenite base) (palatalise base) (base_1+"i"+base_2+base_3+"e") (lenite base) (lenite (palatalise base)) base (lenite (palatalise base)) (base+"a") Masc ; + _ => error "Can't apply paradigm mkN216" + } ; + +mkN217 : Str -> LinN ; +mkN217 base = + case base of { + base_1+base_2@(?+?+?) => mkNoun base (base+"an") base (base+"an") (base+"a") (base+"an") (base_1+"h"+base_2+"a") (base+"an") (base+"a") (base_1+"h"+base_2+"an") (base_1+"h"+base_2+"a") (base+"an") (base_1+"h"+base_2) (base_1+"h"+base_2+"an") Masc ; + _ => error "Can't apply paradigm mkN217" + } ; + +mkN219 : Str -> LinN ; +mkN219 base = + case base of { + base_1+base_2@?+"a"+base_3@? => mkNoun base (base+"an") (base_1+"h"+base_2+"a"+base_3) (base+"an") (base+"a") (base+"an") (base_1+"h"+base_2+"a"+base_3+"a") (base+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") (base+"a") (base+"an") (base_1+"h"+base_2+"a"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") Fem ; + _ => error "Can't apply paradigm mkN219" + } ; + +mkN220 : Str -> LinN ; +mkN220 base = + case base of { + base_1+"ug" => mkNoun base (base+"an") base (base+"an") base (base+"an") (palatalise base) (base+"an") ("gèi"+base_1) (lenite base) ("gèi"+base_1) base (lenite base) (base+"a") Fem ; + _ => error "Can't apply paradigm mkN220" + } ; + +mkN221 : Str -> LinN ; +mkN221 base = + case base of { + base_1+base_2@?+"à"+base_3@(?+?) => mkNoun (base_1+base_2+"à"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"à"+base_3) (base_1+base_2+"à"+base_3+"an") (base_1+base_2+"à"+base_3+"a") (base_1+base_2+"à"+base_3+"an") (base_1+"h"+base_2+"à"+base_3+"a") (base_1+base_2+"à"+base_3+"an") (base_1+base_2+"a"+base_3+"a") (base_1+"h"+base_2+"à"+base_3+"an") (base_1+base_2+"à"+base_3+"a") (base_1+base_2+"à"+base_3+"an") (base_1+"h"+base_2+"à"+base_3) (base_1+"h"+base_2+"à"+base_3+"an") Fem ; + _ => error "Can't apply paradigm mkN221" + } ; + +mkN222 : Str -> LinN ; +mkN222 base = + case base of { + base_1+base_2@(?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"an") (base_1+"h"+base_2) (base_1+base_2+"an") (base_1+base_2+"a") (base_1+base_2+"an") (base_1+"h"+base_2+"a") (base_1+base_2+"an") (base_1+base_2+"a") (base_1+"h"+base_2+"an") (base_1+base_2+"a") (base_1+base_2+"an") (base_1+"h"+base_2) (base_1+"h"+base_2+"an") Fem ; + _ => error "Can't apply paradigm mkN222" + } ; + +mkN224 : Str -> LinN ; +mkN224 base = + case base of { + base_1@?+base_2 => mkNoun (base_1+base_2) (base_1+base_2+"an") (base_1+"h"+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+"h"+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+"h"+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+"h"+base_2) (base_1+"h"+base_2+"an") Masc ; + _ => error "Can't apply paradigm mkN224" + } ; + +mkN225 : Str -> LinN ; +mkN225 base = mk5N base base base (base+"dhean") (palatalise base) Masc ; + +mkN226 : Str -> LinN ; +mkN226 base = + case base of { + base_1+"ea"+base_2@(?+?) => mkNoun (base_1+"ea"+base_2) (base_1+"ea"+base_2+"tan") (base_1+"ea"+base_2) (palatalise base) base (base_1+"ea"+base_2+"tan") (lenite base) (palatalise base) (base_1+"i"+base_2+"e") (lenite base) (lenite (palatalise base)) (base_1+"ea"+base_2) (lenite (palatalise base)) (base_1+"ea"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN226" + } ; + +mkN227 : Str -> LinN ; +mkN227 base = mk5N base base base (base+"ithean") (palatalise base) Fem ; + +mkN228 : Str -> LinN ; +mkN228 base = + case base of { + base_1+base_2@?+base_3@(?+?)+base_4@? => mkNoun (base_1+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+"h"+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+base_2+base_3+base_4+"inn") (base_1+"h"+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+"h"+base_2+base_3+base_4+"inn") (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+"h"+base_2+base_3+base_4) (base_1+"h"+base_2+"i"+base_3+"ne"+base_4+"n") Masc ; + _ => error "Can't apply paradigm mkN228" + } ; + +mkN229 : Str -> LinN ; +mkN229 base = + case base of { + base_1@(?+?)+base_2+base_3@?+"l" => mkNoun (base_1+base_2+base_3+"l") (base_1+"i"+base_2+"le"+base_3+"n") (base_1+base_2+base_3+"l") (palatalise base) base (base_1+"i"+base_2+"le"+base_3+"n") (lenite base) (palatalise base) (base_1+base_2+base_3+"il") (lenite base) (lenite (palatalise base)) (base_1+base_2+base_3+"l") (lenite (palatalise base)) (base_1+base_2+base_3+"la") Masc ; + _ => error "Can't apply paradigm mkN229" + } ; + +mkN230 : Str -> LinN ; +mkN230 base = mk5N base base (base+"a") (base+"aichean") (palatalise base) Masc ; + +mkN231 : Str -> LinN ; +mkN231 base = mk5N base base (base+"e") (base+"eannan") (palatalise base) Masc ; + +mkN232 : Str -> LinN ; +mkN232 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"i"+base_3+"e") (base_1+"h"+base_2+"a"+base_3) (base_1+base_2+"i"+base_3+"e") (base_1+base_2+"a"+base_3) (base_1+"h"+base_2+"a"+base_3) (base_1+"h"+base_2+"a"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN232" + } ; + +mkN233 : Str -> LinN ; +mkN233 base = + case base of { + base_1+base_2@(?+?)+base_3@?+base_4@? => mkNoun (base_1+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+"h"+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+"h"+base_2+base_3+base_4) (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+base_2+base_3+base_4+"inn") (base_1+"h"+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+base_2+base_3+base_4+"inn") (base_1+base_2+"i"+base_3+"ne"+base_4+"n") (base_1+"h"+base_2+base_3+base_4) (base_1+"h"+base_2+"i"+base_3+"ne"+base_4+"n") Fem ; + _ => error "Can't apply paradigm mkN233" + } ; + +mkN234 : Str -> LinN ; +mkN234 base = + case base of { + base_1+base_2@(?+?)+base_3@?+base_4@?+base_5@?+"n" => mkNoun (base_1+base_2+base_3+base_4+base_5+"n") (base_1+base_2+"i"+base_3+"ne"+base_4+base_5) (base_1+"h"+base_2+base_3+base_4+base_5+"n") (base_1+base_2+"i"+base_3+"ne"+base_4+base_5) (base_1+base_2+base_3+base_4+base_5+"n") (base_1+base_2+"i"+base_3+"ne"+base_4+base_5) (base_1+"h"+base_2+base_3+base_4+base_5+"n") (base_1+base_2+"i"+base_3+"ne"+base_4+base_5) (base_1+base_2+base_3+base_4+"i"+base_5+"n") (base_1+"h"+base_2+"i"+base_3+"ne"+base_4+base_5) (base_1+base_2+base_3+base_4+"i"+base_5+"n") (base_1+base_2+"i"+base_3+"ne"+base_4+base_5) (base_1+"h"+base_2+base_3+base_4+base_5+"n") (base_1+"h"+base_2+"i"+base_3+"ne"+base_4+base_5) Fem ; + _ => error "Can't apply paradigm mkN234" + } ; + +mkN235 : Str -> LinN ; +mkN235 base = mk5N base base (base+"an") (base+"s") (palatalise base) Masc ; + +mkN236 : Str -> LinN ; +mkN236 base = + case base of { + base_1+"a"+base_2@("dh"|?) => mkNoun (base_1+"a"+base_2) (base_1+"i"+base_2+"ean") (base_1+"a"+base_2) (palatalise base) base (base_1+"i"+base_2+"ean") (lenite base) (palatalise base) (base_1+"i"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"a"+base_2) (lenite (palatalise base)) (base_1+"a"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN236" + } ; + +mkN237 : Str -> LinN ; +mkN237 base = + case base of { + base_1+"èa"+base_2@(?+?) => mkNoun (base_1+"èa"+base_2) (base_1+"eòi"+base_2) (base_1+"èa"+base_2) (base_1+"eòi"+base_2) (base_1+"èa"+base_2) (base_1+"eòi"+base_2) (base_1+"hèa"+base_2) (base_1+"eòi"+base_2) (base_1+"eòi"+base_2) (base_1+"hèa"+base_2) (base_1+"heòi"+base_2) (base_1+"èa"+base_2) (base_1+"heòi"+base_2) (base_1+"hèa"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN237" + } ; + +mkN238 : Str -> LinN ; +mkN238 base = + case base of { + base_1 => mkNoun (base_1) (base_1+"ean") (base_1) (base_1+"ean") (base_1) (base_1+"ean") (lenite base) (base_1+"ean") (base_1) (base_1+"ean") (base_1) (base_1+"ean") (base_1) (base_1+"ean") Masc ; + _ => error "Can't apply paradigm mkN238" + } ; + +mkN239 : Str -> LinN ; +mkN239 base = + case base of { + base_1+"a"+base_2@(?+?) => mkNoun (base_1+"a"+base_2) (base_1+"a"+base_2+"an") (base_1+"a"+base_2) (base_1+"a"+base_2+"an") base (base_1+"a"+base_2+"an") (palatalise base) (base_1+"a"+base_2+"an") ("è"+base_1+base_2+"e") (lenite base) (nonExist) (base_1+"a"+base_2) (lenite base) (base_1+"a"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN239" + } ; + +mkN240 : Str -> LinN ; +mkN240 base = + case base of { + base_1+"a"+base_2@(?+?) => mkNoun (base_1+"a"+base_2) ("è"+base_1+base_2) (base_1+"a"+base_2) ("è"+base_1+base_2) (base_1+"a"+base_2) ("è"+base_1+base_2) (base_1+"a"+base_2) ("è"+base_1+base_2) ("è"+base_1+base_2) (base_1+"a"+base_2) ("è"+base_1+base_2) (base_1+"a"+base_2) ("è"+base_1+base_2) (base_1+"a"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN240" + } ; + +mkN241 : Str -> LinN ; +mkN241 base = mk5N base base (base+"an") (base+"an") (palatalise base) Masc ; + +mkN242 : Str -> LinN ; +mkN242 base = + case base of { + "in"+base_1+base_2@?+"an" => mkNoun ("in"+base_1+base_2+"an") ("in"+base_1+base_2+"anan") ("in"+base_1+base_2+"an") ("in"+base_1+base_2+"anan") base ("in"+base_1+base_2+"anan") (palatalise base) ("in"+base_1+base_2+"anan") ("ì"+base_1+"n"+base_2) (lenite base) ("ì"+base_1+"n"+base_2) ("in"+base_1+base_2+"an") (lenite base) ("in"+base_1+base_2+"ana") Fem ; + _ => error "Can't apply paradigm mkN242" + } ; + +mkN243 : Str -> LinN ; +mkN243 base = + case base of { + "io"+base_1+"a" => mkNoun ("io"+base_1+"a") ("ì"+base_1+"nean") ("io"+base_1+"a") ("ì"+base_1+"nean") base ("ì"+base_1+"nean") (palatalise base) ("ì"+base_1+"nean") ("i"+base_1+"ne") (lenite base) ("i"+base_1+"ne") ("io"+base_1+"a") (lenite base) ("io"+base_1+"aa") Fem ; + _ => error "Can't apply paradigm mkN243" + } ; + +mkN244 : Str -> LinN ; +mkN244 base = + case base of { + base_1+base_2@(?+?)+"a" => mkNoun (base_1+base_2+"a") (base_1+"i"+base_2+"ean") (base_1+base_2+"a") (base_1+"i"+base_2+"ean") base (base_1+"i"+base_2+"ean") (palatalise base) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2+"e") (lenite base) (base_1+"i"+base_2+"e") (base_1+base_2+"a") (lenite base) (base_1+base_2+"aa") Fem ; + _ => error "Can't apply paradigm mkN244" + } ; + +mkN245 : Str -> LinN ; +mkN245 base = + case base of { + base_1 => mkNoun (base_1) (base_1+"annan") (base_1) (base_1+"annan") (base_1+"a") (base_1+"annan") (base_1+"a") (base_1+"annan") (base_1+"a") (base_1+"annan") (base_1+"a") (base_1+"annan") (base_1) (base_1+"annan") Masc ; + _ => error "Can't apply paradigm mkN245" + } ; + +mkN246 : Str -> LinN ; +mkN246 base = + case base of { + base_1+"t"+base_2@(?+?+?) => mkNoun (base_1+"t"+base_2) (base_1+"d"+base_2+"ean") (base_1+"t"+base_2) (palatalise base) base (base_1+"d"+base_2+"ean") (lenite base) (palatalise base) (nonExist) (lenite base) (lenite (palatalise base)) (base_1+"t"+base_2) (lenite (palatalise base)) (base_1+"t"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN246" + } ; + +mkN247 : Str -> LinN ; +mkN247 base = + case base of { + base_1+"a"+base_2@(?+?)+base_3@? => mkNoun (base_1+"a"+base_2+base_3) (base_1+"ài"+base_2+"e"+base_3+"n") (base_1+"a"+base_2+base_3) (palatalise base) base (base_1+"ài"+base_2+"e"+base_3+"n") (lenite base) (palatalise base) (base_1+"a"+base_2+base_3) (lenite base) (lenite (palatalise base)) (base_1+"a"+base_2+base_3) (lenite (palatalise base)) (base_1+"a"+base_2+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN247" + } ; + +mkN248 : Str -> LinN ; +mkN248 base = + case base of { + base_1+"b"+base_2@?+"idh" => mkNoun (base_1+"b"+base_2+"idh") (base_1+"b"+base_2+"ichean") (base_1+"b"+base_2+"idh") (base_1+"b"+base_2+"ichean") base (base_1+"b"+base_2+"ichean") (palatalise base) (base_1+"b"+base_2+"ichean") (base_1+"p"+base_2) (lenite base) (base_1+"p"+base_2) (base_1+"b"+base_2+"idh") (lenite base) (base_1+"b"+base_2+"idha") Fem ; + _ => error "Can't apply paradigm mkN248" + } ; + +mkN249 : Str -> LinN ; +mkN249 base = + case base of { + base_1+base_2@?+"r" => mkNoun (base_1+base_2+"r") (base_1+"r"+base_2+"ichean") (base_1+base_2+"r") (base_1+"r"+base_2+"ichean") (base_1+base_2+"r") (base_1+"r"+base_2+"ichean") (base_1+base_2+"r") (base_1+"r"+base_2+"ichean") (base_1+base_2+"ir") (base_1+"r"+base_2+"ichean") (base_1+base_2+"ir") (base_1+"r"+base_2+"ichean") (base_1+base_2+"r") (base_1+"r"+base_2+"ichean") Masc ; + _ => error "Can't apply paradigm mkN249" + } ; + +mkN250 : Str -> LinN ; +mkN250 base = + case base of { + base_1+"ea"+base_2@? => mkNoun (base_1+"ea"+base_2) (base_1+"ea"+base_2+"an") (base_1+"ea"+base_2) (base_1+"ea"+base_2+"an") (base_1+"i"+base_2) (base_1+"ea"+base_2+"an") (palatalise base) (base_1+"ea"+base_2+"an") (base_1+"i"+base_2+"e") (lenite base) (base_1+"i"+base_2+"e") (base_1+"ea"+base_2) (lenite base) (base_1+"ea"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN250" + } ; + +mkN251 : Str -> LinN ; +mkN251 base = + case base of { + base_1+"a"+base_2@?+"a"+base_3@(?+?) => mkNoun (base_1+"a"+base_2+"a"+base_3) (base_1+"a"+base_2+"a"+base_3+"an") (base_1+"a"+base_2+"a"+base_3) (palatalise base) base (base_1+"a"+base_2+"a"+base_3+"an") (lenite base) (palatalise base) (base_1+"i"+base_2+"i"+base_3) (lenite base) (lenite (palatalise base)) (base_1+"a"+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+"a"+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN251" + } ; + +mkN252 : Str -> LinN ; +mkN252 base = + case base of { + base_1+base_2@?+"thad" => mkNoun (base_1+base_2+"thad") (base_1+"òide"+base_2+"n") (base_1+base_2+"thad") (palatalise base) base (base_1+"òide"+base_2+"n") (lenite base) (palatalise base) (base_1+base_2+"thaid") (lenite base) (lenite (palatalise base)) (base_1+base_2+"thad") (lenite (palatalise base)) (base_1+base_2+"thada") Masc ; + _ => error "Can't apply paradigm mkN252" + } ; + +mkN253 : Str -> LinN ; +mkN253 base = + case base of { + base_1+"o"+base_2@? => mkNoun (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (base_1+"o"+base_2) (palatalise base) base (base_1+"o"+base_2+"an") (lenite base) (palatalise base) (base_1+"ui"+base_2+"e") (lenite base) (lenite (palatalise base)) (base_1+"o"+base_2) (lenite (palatalise base)) (base_1+"o"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN253" + } ; + +mkN254 : Str -> LinN ; +mkN254 base = + case base of { + base_1+"i"+base_2@? => mkNoun (base_1+"i"+base_2) (base_1+base_2+"ichean") (base_1+"i"+base_2) (base_1+base_2+"ichean") base (base_1+base_2+"ichean") (palatalise base) (base_1+base_2+"ichean") (base_1+base_2+"each") (lenite base) (base_1+base_2+"each") (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN254" + } ; + +mkN255 : Str -> LinN ; +mkN255 base = + case base of { + base_1+base_2@?+"a"+base_3@(?+?) => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"è"+base_2+base_3) (base_1+base_2+"a"+base_3+"an") (palatalise base) (base_1+base_2+"a"+base_3+"an") (base_1+"è"+base_2+base_3) (lenite base) (base_1+"è"+base_2+base_3) (base_1+base_2+"a"+base_3) (lenite base) (base_1+base_2+"a"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN255" + } ; + +mkN256 : Str -> LinN ; +mkN256 base = mk5N base base base (base+"tean") (palatalise base) Masc ; + +mkN257 : Str -> LinN ; +mkN257 base = + case base of { + base_1+base_2@?+"o"+base_3@(?+?) => mkNoun (base_1+base_2+"o"+base_3) (base_1+base_2+"o"+base_3+"an") (base_1+base_2+"o"+base_3) (base_1+base_2+"o"+base_3+"an") base (base_1+base_2+"o"+base_3+"an") (palatalise base) (base_1+base_2+"o"+base_3+"an") (base_1+"è"+base_2+base_3) (lenite base) (base_1+"è"+base_2+base_3) (base_1+base_2+"o"+base_3) (lenite base) (base_1+base_2+"o"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN257" + } ; + +mkN258 : Str -> LinN ; +mkN258 base = + case base of { + base_1+"o"+base_2@? => mkNoun (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (base_1+"o"+base_2) (palatalise base) (base_1+base_2) (base_1+"o"+base_2+"an") (lenite base) (palatalise base) (base_1+base_2+"e") (lenite base) (lenite (palatalise base)) (base_1+"o"+base_2) (lenite (palatalise base)) (base_1+"o"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN258" + } ; + +mkN259 : Str -> LinN ; +mkN259 base = + case base of { + base_1+"i"+base_2@(?+?+?)+"a"+base_3@? => mkNoun (base_1+"i"+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"i"+base_2+"a"+base_3) (palatalise base) base (base_1+base_2+"a"+base_3+"an") (lenite base) (palatalise base) (base_1+"i"+base_2+"i"+base_3) (lenite base) (lenite (palatalise base)) (base_1+"i"+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+"i"+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN259" + } ; + +mkN260 : Str -> LinN ; +mkN260 base = + case base of { + base_1+"o"+base_2@(?+?) => mkNoun (base_1+"o"+base_2) (base_1+"o"+base_2+"an") (base_1+"o"+base_2) (base_1+"o"+base_2+"an") base (base_1+"o"+base_2+"an") (palatalise base) (base_1+"o"+base_2+"an") (base_1+"ui"+base_2+"e") (lenite base) (base_1+"ui"+base_2+"e") (base_1+"o"+base_2) (lenite base) (base_1+"o"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN260" + } ; + +mkN261 : Str -> LinN ; +mkN261 base = mk5N base base (base+"a") (base+"aichean") (palatalise base) Fem ; + +mkN262 : Str -> LinN ; +mkN262 base = + case base of { + base_1 => mkNoun (base_1) (base_1+"an") (base_1) (base_1+"an") (base_1+"a") (base_1+"an") (base_1+"a") (base_1+"an") (base_1+"a") (base_1+"an") (base_1+"a") (base_1+"an") (base_1) (base_1+"an") Fem ; + _ => error "Can't apply paradigm mkN262" + } ; + +mkN263 : Str -> LinN ; +mkN263 base = + case base of { + base_1+base_2@("mh"|?) => mkNoun (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+"i"+base_2) (base_1+base_2+"an") (base_1+"i"+base_2) (base_1+base_2+"an") (base_1+"i"+base_2+"e") (base_1+base_2) (base_1+"i"+base_2+"e") (base_1+base_2) (base_1+base_2) (base_1+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN263" + } ; + +mkN264 : Str -> LinN ; +mkN264 base = + case base of { + base_1+base_2@(?+?+?+?+?) => mkNoun (base_1+base_2) (base_1+"i"+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2+"e") (base_1+base_2+"ean") (base_1+base_2+"e") (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") Fem ; + _ => error "Can't apply paradigm mkN264" + } ; + +mkN265 : Str -> LinN ; +mkN265 base = + case base of { + base_1+"èi"+base_2@? => mkNoun (base_1+"èi"+base_2) (base_1+"eu"+base_2+"an") (base_1+"èi"+base_2) (palatalise base) base (base_1+"eu"+base_2+"an") (lenite base) (palatalise base) (base_1+"eu"+base_2+"a") (lenite base) (lenite (palatalise base)) (base_1+"èi"+base_2) (lenite (palatalise base)) (base_1+"èi"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN265" + } ; + +mkN266 : Str -> LinN ; +mkN266 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+"t"+base_2+"an") (base_1+base_2) (base_1+"t"+base_2+"an") (base_1+base_2) (base_1+"t"+base_2+"an") (palatalise base) (base_1+"t"+base_2+"an") (base_1+base_2) (lenite base) (base_1+base_2) (base_1+base_2) (base_1+"h"+base_2) (base_1+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN266" + } ; + +mkN267 : Str -> LinN ; +mkN267 base = mk5N base base (base+"idh") (base+"idhean") (palatalise base) Masc ; + +mkN268 : Str -> LinN ; +mkN268 base = + case base of { + base_1+"a"+base_2@? => mkNoun (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"a"+base_2) (base_1+"i"+base_2) (base_1+"ha"+base_2) (base_1+"i"+base_2) (base_1+"i"+base_2) (base_1+"ha"+base_2) (base_1+"hi"+base_2) (base_1+"a"+base_2) (base_1+"hi"+base_2) (base_1+"ha"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN268" + } ; + +mkN269 : Str -> LinN ; +mkN269 base = + case base of { + base_1+base_2@?+"ir" => mkNoun (base_1+base_2+"ir") (base_1+"r"+base_2+"ichean") (base_1+base_2+"ir") (palatalise base) base (base_1+"r"+base_2+"ichean") (lenite base) (palatalise base) (base_1+base_2+"rach") (lenite base) (lenite (palatalise base)) (base_1+base_2+"ir") (lenite (palatalise base)) (base_1+base_2+"ira") Masc ; + _ => error "Can't apply paradigm mkN269" + } ; + +mkN270 : Str -> LinN ; +mkN270 base = + case base of { + base_1+"da"+base_2@?+base_3@?+"n" => mkNoun (base_1+"da"+base_2+base_3+"n") (base_1+base_2+"d"+base_3+"ean") (base_1+"da"+base_2+base_3+"n") (base_1+base_2+"d"+base_3+"ean") base (base_1+base_2+"d"+base_3+"ean") (palatalise base) (base_1+base_2+"d"+base_3+"ean") (base_1+base_2+"d"+base_3+"e") (lenite base) (base_1+base_2+"d"+base_3+"e") (base_1+"da"+base_2+base_3+"n") (lenite base) (base_1+"da"+base_2+base_3+"na") Fem ; + _ => error "Can't apply paradigm mkN270" + } ; + +mkN271 : Str -> LinN ; +mkN271 base = + case base of { + base_1+base_2@?+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+"inn"+base_2+"a"+base_3) (base_1+base_2+"a"+base_3) (base_1+"inn"+base_2+"a"+base_3) base (base_1+"inn"+base_2+"a"+base_3) (palatalise base) (base_1+"inn"+base_2+"a"+base_3) (base_1+base_2+"i"+base_3) (lenite base) (base_1+base_2+"i"+base_3) (base_1+base_2+"a"+base_3) (lenite base) (base_1+base_2+"a"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN271" + } ; + +mkN272 : Str -> LinN ; +mkN272 base = + case base of { + base_1+base_2@(?+?+?+?)+"ea"+base_3@(?+?) => mkNoun (base_1+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3+"e") (base_1+"h"+base_2+"ea"+base_3) (base_1+base_2+"i"+base_3+"e") (base_1+base_2+"ea"+base_3) (base_1+"h"+base_2+"ea"+base_3) (base_1+"h"+base_2+"ea"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN272" + } ; + +mkN273 : Str -> LinN ; +mkN273 base = + case base of { + base_1+base_2@("e"|(?+?+?+?+?+?+?+?+?)) => mkNoun (base_1+base_2) (base_1+"t"+base_2+"an") (base_1+base_2) (palatalise base) (base_1+base_2) (base_1+"t"+base_2+"an") (base_1+"h"+base_2) (palatalise base) (base_1+base_2) (lenite base) (base_1+"h"+base_2) (base_1+base_2) (base_1+"h"+base_2) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN273" + } ; + +mkN274 : Str -> LinN ; +mkN274 base = + case base of { + base_1+"a"+base_2@("g"|(?+?)) => mkNoun (base_1+"a"+base_2) (base_1+"a"+base_2+"an") (base_1+"a"+base_2) (base_1+"a"+base_2+"an") (base_1+"i"+base_2) (base_1+"a"+base_2+"an") (base_1+"i"+base_2) (base_1+"a"+base_2+"an") (base_1+"i"+base_2+"e") (base_1+"a"+base_2) (base_1+"i"+base_2+"e") (base_1+"a"+base_2) (base_1+"a"+base_2) (base_1+"a"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN274" + } ; + +mkN275 : Str -> LinN ; +mkN275 base = + case base of { + base_1+"u"+base_2@? => mkNoun (base_1+"u"+base_2) (base_1+"u"+base_2+"an") (base_1+"u"+base_2) (base_1+"u"+base_2+"an") base (base_1+"u"+base_2+"an") (palatalise base) (base_1+"u"+base_2+"an") (base_1+"òi"+base_2) (base_1+"òi"+base_2) (base_1+"òi"+base_2) (base_1+"u"+base_2) (lenite base) (base_1+"u"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN275" + } ; + +mkN276 : Str -> LinN ; +mkN276 base = + case base of { + base_1+"i"+base_2@? => mkNoun (base_1+"i"+base_2) (base_1+"ea"+base_2+"an") (base_1+"i"+base_2) (base_1+"ea"+base_2+"an") base (base_1+"ea"+base_2+"an") (palatalise base) (base_1+"ea"+base_2+"an") (base_1+"ea"+base_2+"ach") (lenite base) (base_1+"ea"+base_2+"ach") (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN276" + } ; + +mkN277 : Str -> LinN ; +mkN277 base = mk5N base base (base+"ean") (base+"eachan") (palatalise base) Masc ; + +mkN278 : Str -> LinN ; +mkN278 base = + case base of { + base_1+"ui"+base_2@? => mkNoun (base_1+"ui"+base_2) (base_1+"a"+base_2+"annan") (base_1+"hui"+base_2) (base_1+"a"+base_2+"annan") (base_1+"ui"+base_2) (base_1+"a"+base_2+"annan") (base_1+"hui"+base_2) (base_1+"a"+base_2+"annan") (base_1+"a"+base_2+"a") (base_1+"ha"+base_2+"annan") (base_1+"a"+base_2+"a") (base_1+"a"+base_2+"annan") (base_1+"hui"+base_2) (base_1+"ha"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN278" + } ; + +mkN279 : Str -> LinN ; +mkN279 base = + case base of { + base_1+base_2@(?+?+?)+base_3@?+"ir" => mkNoun (base_1+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+"h"+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+"h"+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+base_3+"r") (base_1+"h"+base_2+"r"+base_3+"ichean") (base_1+base_2+base_3+"r") (base_1+base_2+"r"+base_3+"ichean") (base_1+"h"+base_2+base_3+"ir") (base_1+"h"+base_2+"r"+base_3+"ichean") Fem ; + _ => error "Can't apply paradigm mkN279" + } ; + +mkN280 : Str -> LinN ; +mkN280 base = + case base of { + base_1+"n"+base_2@(?+?+?+?+?+?) => mkNoun (base_1+"n"+base_2) (base_1+base_2+"ean") (base_1+"n"+base_2) (palatalise base) base (base_1+base_2+"ean") (lenite base) (palatalise base) (base_1+"n"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"n"+base_2) (lenite (palatalise base)) (base_1+"n"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN280" + } ; + +mkN281 : Str -> LinN ; +mkN281 base = mk5N base base (base+"e") (base+"ichean") (palatalise base) Masc ; + +mkN282 : Str -> LinN ; +mkN282 base = + case base of { + "neach" => mk5N base base base "luchd" (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN282" + } ; + +mkN283 : Str -> LinN ; +mkN283 base = + case base of { + base_1+"ea"+base_2@(?+?) => mkNoun base (base_1+"i"+base_2) (base_1+"ea"+base_2) (palatalise base) base (base_1+"i"+base_2) (lenite base) (palatalise base) (base_1+"èi"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"ea"+base_2) (lenite (palatalise base)) (base_1+"ea"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN283" + } ; + +mkN284 : Str -> LinN ; +mkN284 base = mk5N base base base (base+"thean") (palatalise base) Masc ; + +mkN285 : Str -> LinN ; +mkN285 base = + case base of { + base_1+"ea"+base_2@? => mkNoun (base_1+"ea"+base_2) (base_1+"ea"+base_2+"an") (base_1+"ea"+base_2) (base_1+"ea"+base_2+"an") (base_1+"i"+base_2+"n") (base_1+"ea"+base_2+"an") (palatalise base) (base_1+"ea"+base_2+"an") (base_1+"i"+base_2+"n") (lenite base) (base_1+"i"+base_2+"n") (base_1+"ea"+base_2) (lenite base) (base_1+"ea"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN285" + } ; + +mkN287 : Str -> LinN ; +mkN287 base = + case base of { + base_1+base_2@(?+?)+base_3@?+"id" => mkNoun (base_1+base_2+base_3+"id") (base_1+"i"+base_2+"de"+base_3+"n") (base_1+base_2+base_3+"id") (palatalise base) base (base_1+"i"+base_2+"de"+base_3+"n") (lenite base) (palatalise base) (base_1+base_2+base_3+"d") (lenite base) (lenite (palatalise base)) (base_1+base_2+base_3+"id") (lenite (palatalise base)) (base_1+base_2+base_3+"ida") Masc ; + _ => error "Can't apply paradigm mkN287" + } ; + +mkN288 : Str -> LinN ; +mkN288 base = + case base of { + base_1+"ì" => mkNoun (base_1+"ì") (base_1+"ithean") (base_1+"ì") (palatalise base) base (base_1+"ithean") (lenite base) (palatalise base) (base_1+"ì") (lenite base) (lenite (palatalise base)) (base_1+"ì") (lenite (palatalise base)) (base_1+"ìa") Masc ; + _ => error "Can't apply paradigm mkN288" + } ; + +mkN289 : Str -> LinN ; +mkN289 base = + case base of { + base_1+"ì" => mkNoun (base_1+"ì") (base_1+"itheachan") (base_1+"ì") (palatalise base) base (base_1+"itheachan") (lenite base) (palatalise base) (base_1+"ith") (lenite base) (lenite (palatalise base)) (base_1+"ì") (lenite (palatalise base)) (base_1+"ìa") Masc ; + _ => error "Can't apply paradigm mkN289" + } ; + +mkN290 : Str -> LinN ; +mkN290 base = + case base of { + base_1 => mkNoun (base_1) (base_1+"annan") (base_1) (base_1+"annan") (base_1) (base_1+"annan") (base_1) (base_1+"annan") (base_1) (base_1+"annan") (base_1) (base_1+"annan") (base_1) (base_1+"annan") Fem ; + _ => error "Can't apply paradigm mkN290" + } ; + +mkN292 : Str -> LinN ; +mkN292 base = mk5N base base (base+"a") (base+"a") (palatalise base) Masc ; + +mkN293 : Str -> LinN ; +mkN293 base = + case base of { + base_1 => mkNoun (base_1) (base_1+"idhean") (base_1) (base_1+"idhean") base (base_1+"idhean") (palatalise base) (base_1+"idhean") (base_1) (lenite base) (base_1) (base_1) (lenite base) (base_1+"a") Fem ; + _ => error "Can't apply paradigm mkN293" + } ; + +mkN294 : Str -> LinN ; +mkN294 base = + case base of { + base_1 => mkNoun (base_1) (base_1) (base_1) (base_1) (base_1) (base_1) (palatalise base) (base_1) (base_1) (lenite base) (base_1) (base_1) (lenite base) (base_1+"a") Fem ; + _ => error "Can't apply paradigm mkN294" + } ; + +mkN295 : Str -> LinN ; +mkN295 base = + case base of { + base_1+base_2@("i"|"ai")+"r" => mkNoun (base_1+base_2+"r") (base_1+"r"+base_2+"chean") (base_1+base_2+"r") (base_1+"r"+base_2+"chean") base (base_1+"r"+base_2+"chean") (palatalise base) (base_1+"r"+base_2+"chean") (base_1+base_2+"re") (lenite base) (base_1+base_2+"re") (base_1+base_2+"r") (lenite base) (base_1+base_2+"ra") Fem ; + _ => error "Can't apply paradigm mkN295" + } ; + +mkN296 : Str -> LinN ; +mkN296 base = + case base of { + base_1+"ea"+base_2@(?+?) => mkNoun (base_1+"ea"+base_2) (base_1+"ea"+base_2+"ean") (base_1+"ea"+base_2) (palatalise base) base (base_1+"ea"+base_2+"ean") (lenite base) (palatalise base) (base_1+"i"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"ea"+base_2) (lenite (palatalise base)) (base_1+"ea"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN296" + } ; + +mkN297 : Str -> LinN ; +mkN297 base = + case base of { + base_1+base_2@?+"ur" => mkNoun (base_1+base_2+"ur") (base_1+base_2+"uran") (base_1+base_2+"ur") (base_1+base_2+"uran") base (base_1+base_2+"uran") (palatalise base) (base_1+base_2+"uran") (base_1+"èir"+base_2) (lenite base) (base_1+"èir"+base_2) (base_1+base_2+"ur") (lenite base) (base_1+base_2+"ura") Fem ; + _ => error "Can't apply paradigm mkN297" + } ; + +mkN298 : Str -> LinN ; +mkN298 base = + case base of { + base_1+base_2@?+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"tan") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"tan") base (base_1+base_2+"a"+base_3+"tan") (palatalise base) (base_1+base_2+"a"+base_3+"tan") (base_1+"é"+base_2+base_3) (lenite base) (base_1+"é"+base_2+base_3) (base_1+base_2+"a"+base_3) (lenite base) (base_1+base_2+"a"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN298" + } ; + +mkN299 : Str -> LinN ; +mkN299 base = mk5N base base (base+"a") (base+"nan") (palatalise base) Masc ; + +mkN300 : Str -> LinN ; +mkN300 base = + case base of { + base_1+"iu"+base_2@(?+?)+"a"+base_3@? => mkNoun (base_1+"iu"+base_2+"a"+base_3) (base_1+"ea"+base_2+base_3+"aichean") (base_1+"hiu"+base_2+"a"+base_3) (base_1+"ea"+base_2+base_3+"aichean") (base_1+"iu"+base_2+"a"+base_3) (base_1+"ea"+base_2+base_3+"aichean") (base_1+"hiu"+base_2+"a"+base_3) (base_1+"ea"+base_2+base_3+"aichean") (base_1+"ea"+base_2+"a"+base_3) (base_1+"hea"+base_2+base_3+"aichean") (base_1+"ea"+base_2+"a"+base_3) (base_1+"ea"+base_2+base_3+"aichean") (base_1+"hiu"+base_2+"a"+base_3) (base_1+"hea"+base_2+base_3+"aichean") Fem ; + _ => error "Can't apply paradigm mkN300" + } ; + +mkN301 : Str -> LinN ; +mkN301 base = + case base of { + base_1+"a" => mkNoun (base_1+"a") (base_1+"othan") (base_1+"a") (palatalise base) base (base_1+"othan") (lenite base) (palatalise base) (base_1+"o") (lenite base) (lenite (palatalise base)) (base_1+"a") (lenite (palatalise base)) (base_1+"aa") Masc ; + _ => error "Can't apply paradigm mkN301" + } ; + +mkN302 : Str -> LinN ; +mkN302 base = + case base of { + base_1+"i"+base_2@? => mkNoun (base_1+"i"+base_2) (base_1+"i"+base_2) (base_1+"i"+base_2) (base_1+"i"+base_2) base (base_1+"i"+base_2) (palatalise base) (base_1+"i"+base_2) (base_1+base_2+"ach") (lenite base) (base_1+base_2+"ach") (base_1+"i"+base_2) (lenite base) (base_1+"i"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN302" + } ; + +mkN303 : Str -> LinN ; +mkN303 base = + case base of { + base_1 => mkNoun (base_1) (base_1+"ean") (base_1) (base_1+"ean") (base_1) (base_1+"ean") (base_1) (base_1+"ean") (base_1+"e") (base_1+"ean") (base_1+"e") (base_1+"ean") (base_1) (base_1+"ean") Fem ; + _ => error "Can't apply paradigm mkN303" + } ; + +mkN304 : Str -> LinN ; +mkN304 base = + case base of { + base_1+base_2@?+"ul" => mkNoun (base_1+base_2+"ul") (base_1+base_2+"ultan") (base_1+base_2+"ul") (base_1+base_2+"ultan") base (base_1+base_2+"ultan") (palatalise base) (base_1+base_2+"ultan") (base_1+"èil"+base_2) (lenite base) (base_1+"èil"+base_2) (base_1+base_2+"ul") (lenite base) (base_1+base_2+"ula") Fem ; + _ => error "Can't apply paradigm mkN304" + } ; + +mkN305 : Str -> LinN ; +mkN305 base = + case base of { + base_1+"i"+base_2@? => mkNoun (base_1+"i"+base_2) (base_1+base_2+"ean") (base_1+"i"+base_2) (palatalise base) base (base_1+base_2+"ean") (lenite base) (palatalise base) (base_1+base_2+"e") (lenite base) (lenite (palatalise base)) (base_1+"i"+base_2) (lenite (palatalise base)) (base_1+"i"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN305" + } ; + +mkN306 : Str -> LinN ; +mkN306 base = mk5N base base base (base+"rean") (palatalise base) Masc ; + +mkN307 : Str -> LinN ; +mkN307 base = + case base of { + base_1+base_2@(?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+"i"+base_2) (base_1+base_2+"an") (base_1+"i"+base_2+"e") (lenite base) (base_1+"i"+base_2+"e") (base_1+base_2) (base_1+base_2) (base_1+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN307" + } ; + +mkN308 : Str -> LinN ; +mkN308 base = mk5N base base (base+"a") (base+"e") (palatalise base) Masc ; + +mkN309 : Str -> LinN ; +mkN309 base = + case base of { + base_1+base_2@?+"ad" => mkNoun (base_1+base_2+"ad") (base_1+"d"+base_2+"an") (base_1+base_2+"ad") (base_1+"d"+base_2+"an") base (base_1+"d"+base_2+"an") (palatalise base) (base_1+"d"+base_2+"an") (base_1+"d"+base_2) (lenite base) (base_1+"d"+base_2) (base_1+base_2+"ad") (lenite base) (base_1+base_2+"ada") Fem ; + _ => error "Can't apply paradigm mkN309" + } ; + +mkN310 : Str -> LinN ; +mkN310 base = + case base of { + base_1@?+base_2+base_3@("th"|?) => mkNoun (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"an") Masc ; + _ => error "Can't apply paradigm mkN310" + } ; + +mkN311 : Str -> LinN ; +mkN311 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+"inn"+base_2+"an") (base_1+base_2) (base_1+"inn"+base_2+"an") base (base_1+"inn"+base_2+"an") (palatalise base) (base_1+"inn"+base_2+"an") (base_1+base_2) (lenite base) (base_1+base_2) (base_1+base_2) (lenite base) (base_1+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN311" + } ; + +mkN312 : Str -> LinN ; +mkN312 base = mk5N base base base (base+"innean") (palatalise base) Masc ; + +mkN313 : Str -> LinN ; +mkN313 base = + case base of { + base_1+base_2@(?+?+?+?)+"i"+base_3@? => mkNoun (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+base_3) (base_1+"h"+base_2+"i"+base_3+"ean") (base_1+base_2+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"i"+base_3+"ean") Masc ; + _ => error "Can't apply paradigm mkN313" + } ; + +mkN314 : Str -> LinN ; +mkN314 base = + case base of { + base_1+base_2@(?+?+?+?+?+?)+"i"+base_3@? => mkNoun (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+base_3) (base_1+"h"+base_2+"i"+base_3+"ean") (base_1+base_2+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"i"+base_3+"ean") Fem ; + _ => error "Can't apply paradigm mkN314" + } ; + +mkN315 : Str -> LinN ; +mkN315 base = + case base of { + base_1+"ia"+base_2@? => mkNoun (base_1+"ia"+base_2) (base_1+"ea"+base_2+"an") (base_1+"ia"+base_2) (base_1+"ea"+base_2+"an") (base_1+"ithi"+base_2+"n") (base_1+"ea"+base_2+"an") (palatalise base) (base_1+"ea"+base_2+"an") (base_1+"ei"+base_2+"e") (lenite base) (base_1+"ei"+base_2+"e") (base_1+"ia"+base_2) (lenite base) (base_1+"ia"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN315" + } ; + +mkN316 : Str -> LinN ; +mkN316 base = + case base of { + base_1+"ia"+base_2@? => mkNoun (base_1+"ia"+base_2) (base_1+"ia"+base_2+"tan") (base_1+"ia"+base_2) (palatalise base) base (base_1+"ia"+base_2+"tan") (lenite base) (palatalise base) (base_1+"ì"+base_2+"e") (lenite base) (lenite (palatalise base)) (base_1+"ia"+base_2) (lenite (palatalise base)) (base_1+"ia"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN316" + } ; + +mkN317 : Str -> LinN ; +mkN317 base = + case base of { + base_1+base_2@? => mkNoun (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (palatalise base) base (base_1+base_2+"an") (lenite base) (palatalise base) (base_1+"i"+base_2) (lenite base) (base_1+base_2) (palatalise base) (base_1+base_2+"a") (lenite base+"a") Masc ; + _ => error "Can't apply paradigm mkN317" + } ; + +mkN318 : Str -> LinN ; +mkN318 base = + case base of { + base_1+base_2@?+"ar" => mkNoun (base_1+base_2+"ar") (base_1+base_2+"aran") (base_1+base_2+"ar") (palatalise base) base (base_1+base_2+"aran") (lenite base) (palatalise base) (base_1+"ir"+base_2) (lenite base) (base_1+base_2+"ar") (palatalise base) (base_1+base_2+"ara") (lenite base+"a") Masc ; + _ => error "Can't apply paradigm mkN318" + } ; + +mkN319 : Str -> LinN ; +mkN319 base = + case base of { + base_1+"i"+base_2@(?+?)+base_3@?+"ann" => mkNoun (base_1+"i"+base_2+base_3+"ann") (nonExist) (base_1+"i"+base_2+base_3+"ann") (nonExist) base (nonExist) (palatalise base) nonExist (base_1+"ì"+base_2+"n"+base_3) (lenite base) (base_1+"ì"+base_2+"n"+base_3) (base_1+"i"+base_2+base_3+"ann") (lenite base) (base_1+"i"+base_2+base_3+"anna") Fem ; + _ => error "Can't apply paradigm mkN319" + } ; + +mkN320 : Str -> LinN ; +mkN320 base = + case base of { + base_1+"u"+base_2@(?+?)+base_3@?+"l" => mkNoun (base_1+"u"+base_2+base_3+"l") (base_1+"ù"+base_2+"l"+base_3+"ichean") (base_1+"u"+base_2+base_3+"l") (palatalise base) base (base_1+"ù"+base_2+"l"+base_3+"ichean") (lenite base) (palatalise base) (base_1+"u"+base_2+base_3+"il") (lenite base) (lenite (palatalise base)) (base_1+"u"+base_2+base_3+"l") (lenite (palatalise base)) (base_1+"u"+base_2+base_3+"la") Masc ; + _ => error "Can't apply paradigm mkN320" + } ; + +mkN321 : Str -> LinN ; +mkN321 base = + case base of { + base_1+base_2@(?+?)+base_3@? => mkNoun (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+base_3) (base_1+base_2+"i"+base_3+"e") (base_1+base_2+base_3) (base_1+"h"+base_2+base_3) (base_1+"h"+base_2+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN321" + } ; + +mkN322 : Str -> LinN ; +mkN322 base = + case base of { + base_1+base_2@?+"a"+base_3@(?+?) => mkNoun (base_1+base_2+"a"+base_3) (base_1+"è"+base_2+base_3+"tean") (base_1+base_2+"a"+base_3) (palatalise base) base (base_1+"è"+base_2+base_3+"tean") (lenite base) (palatalise base) (base_1+"è"+base_2+base_3) (lenite base) (lenite (palatalise base)) (base_1+base_2+"a"+base_3) (lenite (palatalise base)) (base_1+base_2+"a"+base_3+"a") Masc ; + _ => error "Can't apply paradigm mkN322" + } ; + +mkN323 : Str -> LinN ; +mkN323 base = + case base of { + base_1+base_2@?+"a"+base_3@?+"aid" => mkNoun (base_1+base_2+"a"+base_3+"aid") (base_1+"è"+base_2+base_3+"tean") (base_1+base_2+"a"+base_3+"aid") (base_1+"è"+base_2+base_3+"tean") base (base_1+"è"+base_2+base_3+"tean") (palatalise base) (base_1+"è"+base_2+base_3+"tean") (base_1+"è"+base_2+base_3+"te") (lenite base) (base_1+"è"+base_2+base_3+"te") (base_1+base_2+"a"+base_3+"aid") (lenite base) (base_1+base_2+"a"+base_3+"aida") Fem ; + _ => error "Can't apply paradigm mkN323" + } ; + +mkN324 : Str -> LinN ; +mkN324 base = + case base of { + base_1+base_2@(?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+"h"+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+"h"+base_2) (base_1+"h"+base_2+"an") Fem ; + _ => error "Can't apply paradigm mkN324" + } ; + +mkN325 : Str -> LinN ; +mkN325 base = + case base of { + base_1+"ua"+base_2@(?+?) => mkNoun (base_1+"ua"+base_2) (base_1+"òi"+base_2) (base_1+"ua"+base_2) (palatalise base) base (base_1+"òi"+base_2) (lenite base) (palatalise base) (base_1+"uai"+base_2) (lenite base) (lenite (palatalise base)) (base_1+"ua"+base_2) (lenite (palatalise base)) (base_1+"ua"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN325" + } ; + +mkN326 : Str -> LinN ; +mkN326 base = + case base of { + base_1+"d"+base_2@(?+?)+"nn" => mkNoun (base_1+"d"+base_2+"nn") (base_1+base_2+"dhean") (base_1+"d"+base_2+"nn") (palatalise base) base (base_1+base_2+"dhean") nonExist (palatalise base) (base_1+base_2+"dh") (lenite base) (lenite (palatalise base)) (base_1+"d"+base_2+"nn") (lenite (palatalise base)) (base_1+"d"+base_2+"nna") Masc ; + _ => error "Can't apply paradigm mkN326" + } ; + +mkN327 : Str -> LinN ; +mkN327 base = + case base of { + base_1+"i"+base_2@?+"e"+base_3@(?+?+?+?)+base_4@(?+?) => mkNoun (base_1+"i"+base_2+"e"+base_3+base_4) (base_1+"a"+base_2+base_3+"i"+base_4+"ean") (base_1+"i"+base_2+"e"+base_3+base_4) (palatalise base) base (base_1+"a"+base_2+base_3+"i"+base_4+"ean") nonExist (palatalise base) (base_1+"a"+base_2+base_3+"i"+base_4) (lenite base) (lenite (palatalise base)) (base_1+"i"+base_2+"e"+base_3+base_4) (lenite (palatalise base)) (base_1+"i"+base_2+"e"+base_3+base_4+"a") Masc ; + _ => error "Can't apply paradigm mkN327" + } ; + +mkN328 : Str -> LinN ; +mkN328 base = + case base of { + base_1+base_2@(?+?+?+?+?+?)+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") Masc ; + _ => error "Can't apply paradigm mkN328" + } ; + +mkN329 : Str -> LinN ; +mkN329 base = + case base of { + base_1+"a"+base_2@(?+?) => mkNoun (base_1+"a"+base_2) (base_1+"a"+base_2+"an") (base_1+"a"+base_2) (base_1+"a"+base_2+"an") (base_1+"a"+base_2) (base_1+"a"+base_2+"an") (base_1+"i"+base_2) (base_1+"a"+base_2+"an") (base_1+"i"+base_2+"e") (lenite base) (base_1+"i"+base_2+"e") (base_1+"a"+base_2) (base_1+"a"+base_2) (base_1+"a"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN329" + } ; + +mkN330 : Str -> LinN ; +mkN330 base = + case base of { + base_1+base_2@?+"a"+base_3@? => mkNoun (base_1+base_2+"a"+base_3) (base_1+"è"+base_2+base_3+"ean") (base_1+base_2+"a"+base_3) (base_1+"è"+base_2+base_3+"ean") base (base_1+"è"+base_2+base_3+"ean") (palatalise base) (base_1+"è"+base_2+base_3+"ean") (base_1+"è"+base_2+base_3+"e") (lenite base) (base_1+"è"+base_2+base_3+"e") (base_1+base_2+"a"+base_3) (lenite base) (base_1+base_2+"a"+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN330" + } ; + +mkN331 : Str -> LinN ; +mkN331 base = + case base of { + base_1+base_2@(?+?)+base_3@? => mkNoun (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3) (base_1+base_2+base_3+"an") (base_1+base_2+"i"+base_3+"e") (base_1+"h"+base_2+base_3) (base_1+base_2+"i"+base_3+"e") (base_1+base_2+base_3) (base_1+"h"+base_2+base_3) (base_1+"h"+base_2+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN331" + } ; + +mkN332 : Str -> LinN ; +mkN332 base = + case base of { + base_1+"i"+base_2@? => mkNoun (base_1+"i"+base_2) (base_1+base_2+"ichean") (base_1+"i"+base_2) (base_1+base_2+"ichean") (base_1+"i"+base_2) (base_1+base_2+"ichean") (base_1+"i"+base_2) (base_1+base_2+"ichean") (base_1+base_2+"each") (base_1+base_2+"ichean") (base_1+base_2+"each") (base_1+base_2+"ichean") (base_1+"i"+base_2) (base_1+base_2+"ichean") Fem ; + _ => error "Can't apply paradigm mkN332" + } ; + +mkN333 : Str -> LinN ; +mkN333 base = mk5N base base (base+"each") (base+"ean") (palatalise base) Masc ; + +mkN334 : Str -> LinN ; +mkN334 base = + case base of { + base_1+"d"+base_2@? => mkNoun (base_1+"d"+base_2) (base_1+"g"+base_2+"an") (base_1+"d"+base_2) (base_1+"g"+base_2+"an") base (base_1+"g"+base_2+"an") (palatalise base) (base_1+"g"+base_2+"an") (base_1+"ig"+base_2) (lenite base) (base_1+"ig"+base_2) (base_1+"d"+base_2) (lenite base) (base_1+"d"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN334" + } ; + +mkN337 : Str -> LinN ; +mkN337 base = mk5N base base (base+"ach") (base+"an") (palatalise base) Masc ; + +mkN338 : Str -> LinN ; +mkN338 base = + case base of { + base_1+base_2@(?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2+"e") (base_1+"h"+base_2+"ean") (base_1+base_2+"e") (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+"h"+base_2+"ean") Fem ; + _ => error "Can't apply paradigm mkN338" + } ; + +mkN339 : Str -> LinN ; +mkN339 base = + case base of { + base_1+"o"+base_2@? => mkNoun (base_1+"o"+base_2) (base_1+base_2) (base_1+"o"+base_2) (palatalise base) base (base_1+base_2) (lenite base) (palatalise base) (base_1+base_2) (lenite base) (lenite (palatalise base)) (base_1+"o"+base_2) (lenite (palatalise base)) (base_1+"o"+base_2+"a") Masc ; + _ => error "Can't apply paradigm mkN339" + } ; + +mkN340 : Str -> LinN ; +mkN340 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+base_2) (base_1+"h"+base_2+"an") (base_1+base_2) (base_1+base_2+"an") (base_1+"h"+base_2) (base_1+"h"+base_2+"an") Masc ; + _ => error "Can't apply paradigm mkN340" + } ; + +mkN341 : Str -> LinN ; +mkN341 base = + case base of { + base_1+base_2@?+"i"+base_3@? => mkNoun (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+base_3+"a") (base_1+base_2+base_3) (base_1+base_2+base_3+"a") (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN341" + } ; + +mkN342 : Str -> LinN ; +mkN342 base = + case base of { + base_1+"ù"+base_2@(?+?) => mkNoun (base_1+"ù"+base_2) (base_1+"u"+base_2+"eannan") (base_1+"ù"+base_2) (base_1+"u"+base_2+"eannan") base (base_1+"u"+base_2+"eannan") (palatalise base) (base_1+"u"+base_2+"eannan") (base_1+"ù"+base_2+"e") (lenite base) (base_1+"ù"+base_2+"e") (base_1+"ù"+base_2) (lenite base) (base_1+"ù"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN342" + } ; + +mkN343 : Str -> LinN ; +mkN343 base = + case base of { + base_1+base_2@(?+?+?+?+?+?) => mkNoun (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2+"e") (base_1+"h"+base_2+"ean") (base_1+base_2+"e") (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+"h"+base_2+"ean") Fem ; + _ => error "Can't apply paradigm mkN343" + } ; + +mkN344 : Str -> LinN ; +mkN344 base = + case base of { + base_1@?+base_2 => mkNoun (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2) (base_1+base_2+"ean") (base_1+base_2+"e") (base_1+"h"+base_2+"ean") (base_1+base_2+"e") (base_1+base_2+"ean") (base_1+"h"+base_2) (base_1+"h"+base_2+"ean") Masc ; + _ => error "Can't apply paradigm mkN344" + } ; + +mkN345 : Str -> LinN ; +mkN345 base = + case base of { + base_1+base_2@(?+?)+"a"+base_3@(?+?) => mkNoun (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+"a"+base_3) (base_1+base_2+"a"+base_3+"an") (base_1+base_2+base_3+"ainn") (base_1+"h"+base_2+"a"+base_3+"an") (base_1+base_2+base_3+"ainn") (base_1+base_2+"a"+base_3+"an") (base_1+"h"+base_2+"a"+base_3) (base_1+"h"+base_2+"a"+base_3+"an") Masc ; + _ => error "Can't apply paradigm mkN345" + } ; + +mkN346 : Str -> LinN ; +mkN346 base = mk5N base base (base+"chan") (base+"ichean") (palatalise base) Masc ; + +mkN347 : Str -> LinN ; +mkN347 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@?+"ir" => mkNoun base (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+base_3+"ir") (base_1+base_2+"r"+base_3+"ichean") (base_1+base_2+"r"+base_3+"ch") (base_1+"h"+base_2+"r"+base_3+"ichean") (base_1+base_2+"r"+base_3+"ch") (base_1+base_2+"r"+base_3+"ichean") (base_1+"h"+base_2+base_3+"ir") (base_1+"h"+base_2+"r"+base_3+"ichean") Fem ; + _ => error "Can't apply paradigm mkN347" + } ; + +mkN348 : Str -> LinN ; +mkN348 base = + case base of { + base_1+base_2@(?+?+?+?+?) => mkNoun base (base+"n") base (base+"nnan") base (base+"nnan") base (base+"nnan") base (base_1+"h"+base_2+"nnan") base (base+"nnan") (base_1+"h"+base_2) (base_1+"h"+base_2+"nnan") Fem ; + _ => error "Can't apply paradigm mkN348" + } ; + +mkN349 : Str -> LinN ; +mkN349 base = + case base of { + base_1+"à"+base_2@(?+?) => mkNoun base (base+"an") base (base+"an") base (base+"an") (palatalise base) (base+"an") (base_1+"a"+base_2+"a") (lenite base) (base_1+"a"+base_2+"a") base (lenite base) (base+"a") Fem ; + _ => error "Can't apply paradigm mkN349" + } ; + +mkN350 : Str -> LinN ; +mkN350 base = + case base of { + "tighearna" => mkNoun base (base+"n") base (base+"n") base (base+"n") base (base+"n") base "thighearnan" base (base+"n") (lenite base) (lenite base+"n") Masc ; + _ => error "Can't apply paradigm mkN350" + } ; + +mkN351 : Str -> LinN ; +mkN351 base = mk5N base base base (base+"en") (palatalise base) Masc ; + +mkN352 : Str -> LinN ; +mkN352 base = + case base of { + base_1+"ar" => mk5N base base (base_1+"air") (base_1+"rachan") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN352" + } ; + +mkN353 : Str -> LinN ; +mkN353 base = + case base of { + base_1+"o"+base_2@(?+?)+base_3@?+"s" => mkNoun (base_1+"o"+base_2+base_3+"s") (base_1+"òi"+base_2+"se"+base_3+"n") (base_1+"o"+base_2+base_3+"s") (palatalise base) base (base_1+"òi"+base_2+"se"+base_3+"n") (lenite base) (palatalise base) (base_1+"o"+base_2+base_3+"is") (lenite base) (lenite (palatalise base)) (base_1+"o"+base_2+base_3+"s") (lenite (palatalise base)) (base_1+"o"+base_2+base_3+"sa") Masc ; + _ => error "Can't apply paradigm mkN353" + } ; + +mkN354 : Str -> LinN ; +mkN354 base = + case base of { + base_1+"eu"+base_2@(?+?) => mkNoun (base_1+"eu"+base_2) (base_1+"eu"+base_2+"an") (base_1+"eu"+base_2) (base_1+"eu"+base_2+"an") base (base_1+"eu"+base_2+"an") (palatalise base) (base_1+"eu"+base_2+"an") (base_1+"èi"+base_2) (lenite base) (base_1+"èi"+base_2) (base_1+"eu"+base_2) (lenite base) (base_1+"eu"+base_2+"a") Fem ; + _ => error "Can't apply paradigm mkN354" + } ; + +mkN356 : Str -> LinN ; +mkN356 base = + case base of { + base_1+base_2@(?+?)+"i"+base_3@(?+?) => mkNoun (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3) (base_1+base_2+"i"+base_3+"ean") (base_1+base_2+"i"+base_3+"e") (base_1+"h"+base_2+"i"+base_3+"ean") (base_1+base_2+base_3+"ad") (base_1+base_2+"i"+base_3+"ean") (base_1+"h"+base_2+"i"+base_3) (base_1+"h"+base_2+"i"+base_3+"ean") Fem ; + _ => error "Can't apply paradigm mkN356" + } ; + +mkN357 : Str -> LinN ; +mkN357 base = + case base of { + base_1@?+base_2+base_3@("g"|"gh") => mkNoun base (base+"an") base (base+"an") (base_1+base_2+"i"+base_3) (base+"an") (base_1+base_2+"i"+base_3) (base+"an") (base_1+base_2+"i"+base_3+"e") (base_1+"h"+base_2+base_3) (base_1+base_2+"i"+base_3+"e") base (base_1+"h"+base_2+base_3) (base_1+"h"+base_2+base_3+"a") Fem ; + _ => error "Can't apply paradigm mkN357" + } ; + +mkN358 : Str -> LinN ; +mkN358 base = + case base of { + base_1+"i"+base_2@(?+?) => mkNoun base (base_1+base_2+"an") base (base_1+base_2+"an") base (base_1+base_2+"an") (palatalise base) (base_1+base_2+"an") (base_1+base_2+"a") (lenite base) (base_1+base_2+"a") base (lenite base) (base+"a") Fem ; + _ => error "Can't apply paradigm mkN358" + } ; + +mkN359 : Str -> LinN ; +mkN359 base = + case base of { + base_1+"òi"+base_2@? => mkNoun base (base+"an") base (base+"an") base (base+"an") (palatalise base) (base+"an") (base_1+"o"+base_2+"a") (lenite base) (base_1+"o"+base_2+"a") base (lenite base) (base+"a") Fem ; + _ => error "Can't apply paradigm mkN359" + } ; + +mkN360 : Str -> LinN ; +mkN360 base = + case base of { + base_1+base_2@(?+?) => mkNoun base (base_1+"i"+base_2+"ean") base (base_1+"i"+base_2+"ean") (base_1+"i"+base_2) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2) (base_1+"i"+base_2+"ean") (base_1+"i"+base_2+"e") (lenite base) (base_1+"i"+base_2+"e") base base (base+"a") Masc ; + _ => error "Can't apply paradigm mkN360" + } ; + +mkN361 : Str -> LinN ; +mkN361 base = + case base of { + "u"+base_1+base_2@?+"l" => mkNoun base ("ù"+base_1+"l"+base_2+"n") base (palatalise base) base ("ù"+base_1+"l"+base_2+"n") (lenite base) (palatalise base) ("u"+base_1+base_2+"il") (lenite base) (lenite (palatalise base)) base (lenite (palatalise base)) (base+"a") Masc ; + _ => error "Can't apply paradigm mkN361" + } ; + +mkN362 : Str -> LinN ; +mkN362 base = mk5N base base (palatalise base) (base+"nan") (palatalise base) Masc ; + +mkN363 : Str -> LinN ; +mkN363 base = mkNoun base (base+"achan") base (base+"achan") base (base+"achan") base (base+"achan") base (base+"achan") base (base+"achan") base (base+"achan") Masc ; + +mkN364 : Str -> LinN ; +mkN364 base = + case base of { + "à"+base_1 => mk5N base base ("a"+base_1+"a") ("a"+base_1+"annan") (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN364" + } ; + +mkN365 : Str -> LinN ; +mkN365 base = mkNoun base (base+"an") base (base+"an") (base+"a") (base+"an") (base+"a") (base+"an") (base+"a") (base+"an") (base+"a") (base+"an") base (base+"an") Fem ; + +mkN367 : Str -> LinN ; +mkN367 base = + case base of { + "ò"+base_1 => mk5N base base ("ùi"+base_1) ("ùi"+base_1) (palatalise base) Masc ; + _ => error "Can't apply paradigm mkN367" + } ; + +mkV001 : Str -> V ; +mkV001 base = + case base of { + "abai"+base_1 => lin V + { s = "abai"+base_1 ; + conditional = table { + Sg => "thei"+base_1+"inn" ; + Pl => "thei"+base_1+"eadh" + } ; + imperative = table { + P1 => table { + Sg => "ab"+base_1+"am" ; + Pl => "ab"+base_1+"amaid" + } ; + P2 => table { + Sg => "abai"+base_1 ; + Pl => "ab"+base_1+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => "ab"+base_1+"adh" + } + } ; + future = table { + Indep => "thei"+base_1 ; + Dep => "abai"+base_1 + } ; + past = table { + Indep => "thui"+base_1+"t" ; + Dep => "tui"+base_1+"t" + } ; + noun = base_1+"àdh" ; + participle = base_1+"àite" + }; + _ => error "Can't apply paradigm mkV001" + } ; + +mkV002 : Str -> V ; +mkV002 base = + case base of { + base_1+"i"+base_2@("c"|(?+?)) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => "dh'"+base_1+"i"+base_2+"inn" ; + Pl => "dh'"+base_1+"i"+base_2+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"i"+base_2+"eam" ; + Pl => base_1+"i"+base_2+"eamaid" + } ; + P2 => table { + Sg => base_1+"i"+base_2 ; + Pl => base_1+"i"+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"i"+base_2+"eadh" + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => base_1+"i"+base_2 + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => "dh'"+base_1+"i"+base_2 + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV002" + } ; + +mkV003 : Str -> V ; +mkV003 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"ainn" ; + Pl => "dh'"+base_1+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; + Pl => base_1+"amaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh" + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => base_1 + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => "dh'"+base_1 + } ; + noun = base_1+"adh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV003" + } ; + +mkV004 : Str -> V ; +mkV004 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"adh" ; + participle = nonExist + }; + _ => error "Can't apply paradigm mkV004" + } ; + +mkV005 : Str -> V ; +mkV005 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"t" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV005" + } ; + +mkV006 : Str -> V ; +mkV006 base = + case base of { + base_1+"i"+base_2@(?+?) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"ea"+base_2+"adh" ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV006" + } ; + +mkV007 : Str -> V ; +mkV007 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"mhainn" ; + participle = base_1+"ta" + }; + _ => error "Can't apply paradigm mkV007" + } ; + +mkV008 : Str -> V ; +mkV008 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1 ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV008" + } ; + +mkV009 : Str -> V ; +mkV009 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1 ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV009" + } ; + +mkV010 : Str -> V ; +mkV010 base = + case base of { + base_1+"i"+base_2@("m"|(?+?)) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => "dh'"+base_1+"i"+base_2+"inn" ; + Pl => "dh'"+base_1+"i"+base_2+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"i"+base_2+"eam" ; + Pl => base_1+"i"+base_2+"eamaid" + } ; + P2 => table { + Sg => base_1+"i"+base_2 ; + Pl => base_1+"i"+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"i"+base_2+"eadh" + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => base_1+"i"+base_2 + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => "dh'"+base_1+"i"+base_2 + } ; + noun = base_1+base_2 ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV010" + } ; + +mkV011 : Str -> V ; +mkV011 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1 ; + participle = base_1+"hte" + }; + _ => error "Can't apply paradigm mkV011" + } ; + +mkV012 : Str -> V ; +mkV012 base = + case base of { + base_1+base_2@?+"nn" => lin V + { s = base_1+base_2+"nn" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"n"+base_2+"dh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+base_2+"nn" ; + Dep => nonExist + } ; + noun = base_1+base_2+"nn" ; + participle = base_1+base_2+"nnte" + }; + _ => error "Can't apply paradigm mkV012" + } ; + +mkV013 : Str -> V ; +mkV013 base = + case base of { + base_1+base_2@?+"inn" => lin V + { s = base_1+base_2+"inn" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"n"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+base_2+"inn" ; + Dep => nonExist + } ; + noun = base_1+"n"+base_2+"dh" ; + participle = base_1+base_2+"innte" + }; + _ => error "Can't apply paradigm mkV013" + } ; + +mkV014 : Str -> V ; +mkV014 base = + case base of { + base_1+"i"+base_2@(?+?) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"ea"+base_2+"d" ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV014" + } ; + +mkV015 : Str -> V ; +mkV015 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"adh" ; + participle = base_1+"ta" + }; + _ => error "Can't apply paradigm mkV015" + } ; + +mkV016 : Str -> V ; +mkV016 base = + case base of { + base_1+"dhèa"+base_2@? => lin V + { s = base_1+"dhèa"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"ì" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"ri"+base_2+"n" ; + Dep => nonExist + } ; + noun = base_1+"dhèa"+base_2+"amh" ; + participle = base_1+"dhèa"+base_2+"ta" + }; + _ => error "Can't apply paradigm mkV016" + } ; + +mkV017 : Str -> V ; +mkV017 base = + case base of { + base_1+"a"+base_2@(?+?)+"i"+base_3@(?+?) => lin V + { s = base_1+"a"+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"a"+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"a"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"adh" ; + participle = base_1+"a"+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV017" + } ; + +mkV018 : Str -> V ; +mkV018 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"ail" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV018" + } ; + +mkV019 : Str -> V ; +mkV019 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"tinn" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV019" + } ; + +mkV020 : Str -> V ; +mkV020 base = + case base of { + base_1+"i"+base_2@? => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"e" ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV020" + } ; + +mkV021 : Str -> V ; +mkV021 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1 ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV021" + } ; + +mkV022 : Str -> V ; +mkV022 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"tainn" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV022" + } ; + +mkV023 : Str -> V ; +mkV023 base = + case base of { + base_1+base_2@(?+?)+"r" => lin V + { s = base_1+base_2+"r" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"r"+base_2+"dh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+base_2+"r" ; + Dep => nonExist + } ; + noun = base_1+base_2+"rt" ; + participle = base_1+base_2+"rte" + }; + _ => error "Can't apply paradigm mkV023" + } ; + +mkV024 : Str -> V ; +mkV024 base = + case base of { + base_1+base_2@? => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+base_2 ; + Dep => nonExist + } ; + noun = base_1+"ad"+base_2 ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV024" + } ; + +mkV025 : Str -> V ; +mkV025 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"eam" ; + participle = base_1+"e" + }; + _ => error "Can't apply paradigm mkV025" + } ; + +mkV026 : Str -> V ; +mkV026 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"ainn" ; + Pl => base_1+"h"+base_2+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"am" ; + Pl => base_1+base_2+"amaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"adh" + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV026" + } ; + +mkV027 : Str -> V ; +mkV027 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"inn" ; + Pl => base_1+"h"+base_2+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"eam" ; + Pl => base_1+base_2+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"t" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV027" + } ; + +mkV028 : Str -> V ; +mkV028 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"eadh" ; + participle = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkV028" + } ; + +mkV029 : Str -> V ; +mkV029 base = + case base of { + base_1@?+base_2+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"d" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV029" + } ; + +mkV030 : Str -> V ; +mkV030 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"ic"+base_3@? => lin V + { s = base_1+base_2+"ic"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"ic"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"ic"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"d"+base_3 ; + participle = base_1+base_2+"ic"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV030" + } ; + +mkV031 : Str -> V ; +mkV031 base = + case base of { + "bei"+base_1 => lin V + { s = "bei"+base_1 ; + conditional = table { + Sg => "bhei"+base_1+"inn" ; + Pl => "bhei"+base_1+"eadh" + } ; + imperative = table { + P1 => table { + Sg => "bei"+base_1+"eam" ; + Pl => "bei"+base_1+"eamaid" + } ; + P2 => table { + Sg => "bei"+base_1 ; + Pl => "bei"+base_1+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => "bei"+base_1+"eadh" + } + } ; + future = table { + Indep => "bei"+base_1+"idh" ; + Dep => "bhei"+base_1 + } ; + past = table { + Indep => base_1+"ug" ; + Dep => base_1+"ug" + } ; + noun = "b"+base_1+"eith" ; + participle = "bei"+base_1+"te" + }; + _ => error "Can't apply paradigm mkV031" + } ; + +mkV032 : Str -> V ; +mkV032 base = + case base of { + base_1@?+base_2+"i"+base_3@("l"|"g"|(?+?)) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => base_1+"h"+base_2+"i"+base_3+"inn" ; + Pl => base_1+"h"+base_2+"i"+base_3+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"i"+base_3+"eam" ; + Pl => base_1+base_2+"i"+base_3+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2+"i"+base_3 ; + Pl => base_1+base_2+"i"+base_3+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"i"+base_3+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => base_1+"h"+base_2+"i"+base_3 + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => base_1+"h"+base_2+"i"+base_3 + } ; + noun = base_1+base_2+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV032" + } ; + +mkV033 : Str -> V ; +mkV033 base = + case base of { + base_1+base_2@?+"à"+base_3@(?+?) => lin V + { s = base_1+base_2+"à"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"a"+base_3+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"à"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"a"+base_3+"adh" ; + participle = base_1+base_2+"à"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV033" + } ; + +mkV034 : Str -> V ; +mkV034 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"inn" ; + Pl => base_1+"h"+base_2+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"eam" ; + Pl => base_1+base_2+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"eadh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV034" + } ; + +mkV035 : Str -> V ; +mkV035 base = + case base of { + base_1@?+base_2+"i"+base_3@("l"|"r"|(?+?)) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3 ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV035" + } ; + +mkV036 : Str -> V ; +mkV036 base = + case base of { + base_1+"ic"+base_2@? => lin V + { s = base_1+"ic"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => nonExist ; + Dep => nonExist + } ; + past = table { + Indep => nonExist ; + Dep => nonExist + } ; + noun = base_1+"d"+base_2 ; + participle = nonExist + }; + _ => error "Can't apply paradigm mkV036" + } ; + +mkV037 : Str -> V ; +mkV037 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"ainn" ; --guessed + Pl => "dh'"+base_1+"amaid" --guessed + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; --guessed + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => base_1 ; --guessed + Pl => base_1+"aibh" --guessed + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh" --guessed + } + } ; + future = table { + Indep => base_1+"idh" ; --guessed + Dep => base_1 --guessed + } ; + past = table { + Indep => base_1 ; --guessed + Dep => "dh'"+base_1 --guessed + } ; + noun = base_1 ; + participle = base_1+"te" --guessed + }; + _ => error "Can't apply paradigm mkV037" + } ; + +mkV038 : Str -> V ; +mkV038 base = + case base of { + base_1@?+base_2+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => base_1+"h"+base_2+"i"+base_3+"inn" ; + Pl => base_1+"h"+base_2+"i"+base_3+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"i"+base_3+"eam" ; + Pl => base_1+base_2+"i"+base_3+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2+"i"+base_3 ; + Pl => base_1+base_2+"i"+base_3+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"i"+base_3+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => base_1+base_2+"i"+base_3 + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => base_1+"h"+base_2+"i"+base_3 + } ; + noun = base_1+base_2+"ea"+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV038" + } ; + +mkV039 : Str -> V ; +mkV039 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ad" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV039" + } ; + +mkV040 : Str -> V ; +mkV040 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"i"+base_3@?+"n" => lin V + { s = base_1+base_2+"i"+base_3+"n" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3+"n" ; + Dep => nonExist + } ; + noun = base_1+base_2+"i"+base_3+"n" ; + participle = base_1+base_2+base_3+"te" + }; + _ => error "Can't apply paradigm mkV040" + } ; + +mkV041 : Str -> V ; +mkV041 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV041" + } ; + +mkV042 : Str -> V ; +mkV042 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"inn" ; --guessed + Pl => base_1+"h"+base_2+"eamaid" --guessed + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"eam" ; --guessed + Pl => base_1+base_2+"eamaid" --guessed + } ; + P2 => table { + Sg => base_1+base_2 ; --guessed + Pl => base_1+base_2+"ibh" --guessed + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"eadh" --guessed + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => base_1+"h"+base_2 --guessed + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 --guessed + } ; + noun = base_1+base_2+"eadh" ; + participle = base_1+base_2+"e" --guessed + }; + _ => error "Can't apply paradigm mkV042" + } ; + +mkV043 : Str -> V ; +mkV043 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV043" + } ; + +mkV044 : Str -> V ; +mkV044 base = + case base of { + base_1+base_2@(?+?)+base_3@?+"inn" => lin V + { s = base_1+base_2+base_3+"inn" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"n"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"inn" ; + Dep => nonExist + } ; + noun = base_1+base_2+"n"+base_3+"dh" ; + participle = base_1+base_2+base_3+"innte" + }; + _ => error "Can't apply paradigm mkV044" + } ; + +mkV045 : Str -> V ; +mkV045 base = + case base of { + base_1+base_2@?+"i"+base_3@?+"i"+base_4@? => lin V + { s = base_1+base_2+"i"+base_3+"i"+base_4 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+base_4+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3+"i"+base_4 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"a"+base_4 ; + participle = base_1+base_2+"i"+base_3+"i"+base_4+"te" + }; + _ => error "Can't apply paradigm mkV045" + } ; + +mkV046 : Str -> V ; +mkV046 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"eamh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV046" + } ; + +mkV047 : Str -> V ; +mkV047 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"ainn" ; + Pl => base_1+"h"+base_2+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"am" ; + Pl => base_1+base_2+"amaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"adh" + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"tainn" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV047" + } ; + +mkV048 : Str -> V ; +mkV048 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@?+"il" => lin V + { s = base_1+base_2+base_3+"il" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"ilidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"il" ; + Dep => nonExist + } ; + noun = base_1+base_2+"l"+base_3+"dh" ; + participle = base_1+base_2+base_3+"ilte" + }; + _ => error "Can't apply paradigm mkV048" + } ; + +mkV049 : Str -> V ; +mkV049 base = + case base of { + base_1@?+base_2+base_3@(?+?)+"ai"+base_4@?+"n" => lin V + { s = base_1+base_2+base_3+"ai"+base_4+"n" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+base_4+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"ai"+base_4+"n" ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+base_4+"adh" ; + participle = base_1+base_2+base_3+"ai"+base_4+"nte" + }; + _ => error "Can't apply paradigm mkV049" + } ; + +mkV050 : Str -> V ; +mkV050 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@?+"il" => lin V + { s = base_1+base_2+base_3+"il" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"l"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"il" ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"l" ; + participle = base_1+base_2+base_3+"ilte" + }; + _ => error "Can't apply paradigm mkV050" + } ; + +mkV051 : Str -> V ; +mkV051 base = + case base of { + base_1+base_2@?+"uinn" => lin V + { s = base_1+base_2+"uinn" ; + conditional = table { + Sg => base_1+"h"+base_2+"uinninn" ; + Pl => base_1+"h"+base_2+"uinneadh" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"uinneam" ; + Pl => base_1+base_2+"uinneamaid" + } ; + P2 => table { + Sg => base_1+base_2+"uinn" ; + Pl => base_1+base_2+"uinnibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"uinneadh" + } + } ; + future = table { + Indep => base_1+base_2+"uinnidh" ; + Dep => base_1+"h"+base_2+"uinn" + } ; + past = table { + Indep => base_1+"hua"+base_2+"a" ; + Dep => base_1+"hua"+base_2+"a" + } ; + noun = base_1+base_2+"uinntinn" ; + participle = base_1+base_2+"uinnte" + }; + _ => error "Can't apply paradigm mkV051" + } ; + +mkV052 : Str -> V ; +mkV052 base = + case base of { + base_1+base_2@(?+?+?)+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ea"+base_3+"d" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV052" + } ; + +mkV053 : Str -> V ; +mkV053 base = + case base of { + base_1+base_2@?+"i"+base_3@?+"i"+base_4@?+"n" => lin V + { s = base_1+base_2+"i"+base_3+"i"+base_4+"n" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"i"+base_4+"nidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3+"i"+base_4+"n" ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+base_4+"adh" ; + participle = base_1+base_2+"i"+base_3+"i"+base_4+"nte" + }; + _ => error "Can't apply paradigm mkV053" + } ; + +mkV054 : Str -> V ; +mkV054 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV054" + } ; + +mkV055 : Str -> V ; +mkV055 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"ainn" ; + Pl => base_1+"h"+base_2+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"am" ; + Pl => base_1+base_2+"amaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"adh" + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+base_2+"ta" + }; + _ => error "Can't apply paradigm mkV055" + } ; + +mkV056 : Str -> V ; +mkV056 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"sinn" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV056" + } ; + +mkV057 : Str -> V ; +mkV057 base = + case base of { + base_1+base_2@(?+?)+base_3@? => lin V + { s = base_1+base_2+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV057" + } ; + +mkV058 : Str -> V ; +mkV058 base = + case base of { + base_1+base_2@?+"i"+base_3@?+base_4@(?+?+?+?) => lin V + { s = base_1+base_2+"i"+base_3+base_4 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh"+base_4 ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3+base_4 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+base_4 ; + participle = nonExist + }; + _ => error "Can't apply paradigm mkV058" + } ; + +mkV059 : Str -> V ; +mkV059 base = + case base of { + base_1+base_2@(?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ail" ; + participle = base_1+base_2+"ta" + }; + _ => error "Can't apply paradigm mkV059" + } ; + +mkV060 : Str -> V ; +mkV060 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkV060" + } ; + +mkV061 : Str -> V ; +mkV061 base = + case base of { + base_1+base_2@?+"i"+base_3@?+"ic"+base_4@? => lin V + { s = base_1+base_2+"i"+base_3+"ic"+base_4 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"ic"+base_4+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3+"ic"+base_4 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"ad"+base_4 ; + participle = base_1+base_2+"i"+base_3+"ic"+base_4+"te" + }; + _ => error "Can't apply paradigm mkV061" + } ; + +mkV062 : Str -> V ; +mkV062 base = + case base of { + base_1+base_2@(?+?+?+?+?+?)+"c"+base_3@? => lin V + { s = base_1+base_2+"c"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"c"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"c"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"d"+base_3 ; + participle = base_1+base_2+"c"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV062" + } ; + +mkV063 : Str -> V ; +mkV063 base = + case base of { + base_1+"ù"+base_2@? => lin V + { s = base_1+"ù"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"u"+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"hù"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"u"+base_2+"ail" ; + participle = base_1+"u"+base_2+"ta" + }; + _ => error "Can't apply paradigm mkV063" + } ; + +mkV064 : Str -> V ; +mkV064 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@(?+?)+"ic"+base_4@? => lin V + { s = base_1+base_2+base_3+"ic"+base_4 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"a"+base_3+"ic"+base_4+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"ic"+base_4 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"d"+base_4 ; + participle = base_1+base_2+"a"+base_3+"ic"+base_4+"te" + }; + _ => error "Can't apply paradigm mkV064" + } ; + +mkV065 : Str -> V ; +mkV065 base = + case base of { + base_1@?+base_2+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => base_1+"h"+base_2+"i"+base_3+"inn" ; + Pl => base_1+"h"+base_2+"i"+base_3+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"i"+base_3+"eam" ; + Pl => base_1+base_2+"i"+base_3+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2+"i"+base_3 ; + Pl => base_1+base_2+"i"+base_3+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"i"+base_3+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => base_1+base_2+"i"+base_3 + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => base_1+"h"+base_2+"i"+base_3 + } ; + noun = base_1+base_2+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV065" + } ; + +mkV066 : Str -> V ; +mkV066 base = + case base of { + "dèa"+base_1 => lin V + { s = "dèa"+base_1 ; + conditional = table { + Sg => "dhèa"+base_1+"ainn" ; + Pl => "dhèa"+base_1+"adh" + } ; + imperative = table { + P1 => table { + Sg => "dèa"+base_1+"am" ; + Pl => "dèa"+base_1+"amaid" + } ; + P2 => table { + Sg => "dèa"+base_1 ; + Pl => "dèa"+base_1+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => "dèa"+base_1+"adh" + } + } ; + future = table { + Indep => base_1+"ì" ; + Dep => "dèa"+base_1 + } ; + past = table { + Indep => "ri"+base_1+"n" ; + Dep => "ri"+base_1+"n" + } ; + noun = "dèa"+base_1+"amh" ; + participle = "dèa"+base_1+"ta" + }; + _ => error "Can't apply paradigm mkV066" + } ; + +mkV067 : Str -> V ; +mkV067 base = + case base of { + base_1@?+base_2+base_3@?+"ir" => lin V + { s = base_1+base_2+base_3+"ir" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"r"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"ir" ; + Dep => nonExist + } ; + noun = base_1+base_2+"r"+base_3+"dh" ; + participle = base_1+base_2+base_3+"irte" + }; + _ => error "Can't apply paradigm mkV067" + } ; + +mkV068 : Str -> V ; +mkV068 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@?+"il" => lin V + { s = base_1+base_2+base_3+"il" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"l"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"il" ; + Dep => nonExist + } ; + noun = base_1+base_2+"l"+base_3+"dh" ; + participle = base_1+base_2+base_3+"ilte" + }; + _ => error "Can't apply paradigm mkV068" + } ; + +mkV069 : Str -> V ; +mkV069 base = + case base of { + base_1+base_2@(?+?)+"ic"+base_3@? => lin V + { s = base_1+base_2+"ic"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"ic"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"ic"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ead"+base_3 ; + participle = base_1+base_2+"ic"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV069" + } ; + +mkV070 : Str -> V ; +mkV070 base = + case base of { + base_1+base_2@?+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"e" + }; + _ => error "Can't apply paradigm mkV070" + } ; + +mkV071 : Str -> V ; +mkV071 base = + case base of { + base_1+base_2@?+"il" => lin V + { s = base_1+base_2+"il" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"l"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+base_2+"il" ; + Dep => nonExist + } ; + noun = base_1+base_2+"l" ; + participle = base_1+base_2+"ilte" + }; + _ => error "Can't apply paradigm mkV071" + } ; + +mkV072 : Str -> V ; +mkV072 base = + case base of { + base_1+"i"+base_2@(?+?) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"ì"+base_2+"eadh" ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV072" + } ; + +mkV073 : Str -> V ; +mkV073 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"inn" ; + Pl => "dh'"+base_1+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"eam" ; + Pl => base_1+"eamaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"eadh" + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => base_1 + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => "dh'"+base_1 + } ; + noun = base_1+"eadh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV073" + } ; + +mkV074 : Str -> V ; +mkV074 base = + case base of { + base_1+"aich" => lin V + { s = base_1+"aich" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aichidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"aich" ; + Dep => nonExist + } ; + noun = base_1+"adh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV074" + } ; + +mkV075 : Str -> V ; +mkV075 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"sadh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV075" + } ; + +mkV076 : Str -> V ; +mkV076 base = + case base of { + "fai"+base_1 => lin V + { s = "fai"+base_1 ; + conditional = table { + Sg => base_1+"hithinn" ; + Pl => base_1+"hitheadh" + } ; + imperative = table { + P1 => table { + Sg => "fai"+base_1+"eam" ; + Pl => "fai"+base_1+"eamaid" + } ; + P2 => table { + Sg => "fai"+base_1 ; + Pl => "fai"+base_1+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => "fai"+base_1+"eadh" + } + } ; + future = table { + Indep => base_1+"hì" ; + Dep => "fhai"+base_1 + } ; + past = table { + Indep => base_1+"hunnaic" ; + Dep => "fha"+base_1+"a" + } ; + noun = "fai"+base_1+"inn" ; + participle = "fai"+base_1+"te" + }; + _ => error "Can't apply paradigm mkV076" + } ; + +mkV077 : Str -> V ; +mkV077 base = + case base of { + "faig"+base_1 => lin V + { s = "faig"+base_1 ; + conditional = table { + Sg => "g"+base_1+"eibhinn" ; + Pl => "g"+base_1+"eibheadh" + } ; + imperative = table { + P1 => table { + Sg => "faig"+base_1+"eam" ; + Pl => "faig"+base_1+"eamaid" + } ; + P2 => table { + Sg => "faig"+base_1 ; + Pl => "faig"+base_1+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => "faig"+base_1+"eadh" + } + } ; + future = table { + Indep => "g"+base_1+"eibh" ; + Dep => "f"+base_1+"aigh" + } ; + past = table { + Indep => "f"+base_1+"uair" ; + Dep => "f"+base_1+"uair" + } ; + noun = "faig"+base_1+"inn" ; + participle = "faig"+base_1+"te" + }; + _ => error "Can't apply paradigm mkV077" + } ; + +mkV078 : Str -> V ; +mkV078 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ea"+base_3+"d" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV078" + } ; + +mkV079 : Str -> V ; +mkV079 base = + case base of { + base_1+base_2@(?+?)+"l"+base_3@? => lin V + { s = base_1+base_2+"l"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"l"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"l"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"eadh" ; + participle = base_1+base_2+"l"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV079" + } ; + +mkV080 : Str -> V ; +mkV080 base = + case base of { + base_1+base_2@(?+?+?)+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ea"+base_3+"dainn" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV080" + } ; + +mkV081 : Str -> V ; +mkV081 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV081" + } ; + +mkV082 : Str -> V ; +mkV082 base = + case base of { + base_1+base_2@(?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"tail" ; + participle = nonExist + }; + _ => error "Can't apply paradigm mkV082" + } ; + +mkV083 : Str -> V ; +mkV083 base = + case base of { + "fannaich" => lin V + { s = "fannaich" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => "fannaichidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'fhannaich" ; + Dep => nonExist + } ; + noun = "fannachadh" ; + participle = "te" + }; + _ => error "Can't apply paradigm mkV083" + } ; + +mkV084 : Str -> V ; +mkV084 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV084" + } ; + +mkV085 : Str -> V ; +mkV085 base = + case base of { + base_1@?+base_2+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV085" + } ; + +mkV086 : Str -> V ; +mkV086 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV086" + } ; + +mkV087 : Str -> V ; +mkV087 base = + case base of { + base_1@?+base_2+"i"+base_3@("m"|(?+?)) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => "dh'"+base_1+"h"+base_2+"i"+base_3+"inn" ; + Pl => "dh'"+base_1+"h"+base_2+"i"+base_3+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"i"+base_3+"eam" ; + Pl => base_1+base_2+"i"+base_3+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2+"i"+base_3 ; + Pl => base_1+base_2+"i"+base_3+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"i"+base_3+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => base_1+"h"+base_2+"i"+base_3 + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3 ; + Dep => "dh'"+base_1+"h"+base_2+"i"+base_3 + } ; + noun = base_1+base_2+base_3 ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV087" + } ; + +mkV088 : Str -> V ; +mkV088 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => "dh'"+base_1+"h"+base_2+"ainn" ; + Pl => "dh'"+base_1+"h"+base_2+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"am" ; + Pl => base_1+base_2+"amaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"adh" + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => "dh'"+base_1+"h"+base_2 + } ; + noun = base_1+base_2+"ail" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV088" + } ; + +mkV089 : Str -> V ; +mkV089 base = + case base of { + base_1+base_2@(?+?+?)+base_3@?+"inn" => lin V + { s = base_1+base_2+base_3+"inn" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"innidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+base_3+"inn" ; + Dep => nonExist + } ; + noun = base_1+base_2+"n"+base_3+"dh" ; + participle = base_1+base_2+base_3+"innte" + }; + _ => error "Can't apply paradigm mkV089" + } ; + +mkV090 : Str -> V ; +mkV090 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"eamh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV090" + } ; + +mkV091 : Str -> V ; +mkV091 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ainn" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV091" + } ; + +mkV092 : Str -> V ; +mkV092 base = + case base of { + base_1+base_2@(?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"e" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV092" + } ; + +mkV093 : Str -> V ; +mkV093 base = + case base of { + base_1@?+base_2 => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => "dh'"+base_1+"h"+base_2+"inn" ; + Pl => "dh'"+base_1+"h"+base_2+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"eam" ; + Pl => base_1+base_2+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => "dh'"+base_1+"h"+base_2 + } ; + noun = base_1+base_2+"eadh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV093" + } ; + +mkV094 : Str -> V ; +mkV094 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => base_1+"ainn" ; + Pl => base_1+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; + Pl => base_1+"amaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh" + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => base_1 + } ; + past = table { + Indep => base_1 ; + Dep => base_1 + } ; + noun = base_1+"adh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV094" + } ; + +mkV095 : Str -> V ; +mkV095 base = + case base of { + base_1+"o"+base_2@(?+?)+base_3@?+"in" => lin V + { s = base_1+"o"+base_2+base_3+"in" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"ò"+base_2+"n"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"ho"+base_2+base_3+"in" ; + Dep => nonExist + } ; + noun = base_1+"ò"+base_2+"n"+base_3+"dh" ; + participle = base_1+"o"+base_2+base_3+"inte" + }; + _ => error "Can't apply paradigm mkV095" + } ; + +mkV096 : Str -> V ; +mkV096 base = + case base of { + base_1+base_2@?+"i"+base_3@(?+?+?)+"i"+base_4@(?+?) => lin V + { s = base_1+base_2+"i"+base_3+"i"+base_4 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"i"+base_4+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3+"i"+base_4 ; + Dep => nonExist + } ; + noun = base_1+base_2+"i"+base_3+"ea"+base_4+"adh" ; + participle = base_1+base_2+"i"+base_3+"i"+base_4+"te" + }; + _ => error "Can't apply paradigm mkV096" + } ; + +mkV097 : Str -> V ; +mkV097 base = + case base of { + base_1+base_2@(?+?+?)+base_3@?+"il" => lin V + { s = base_1+base_2+base_3+"il" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"l"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+base_3+"il" ; + Dep => nonExist + } ; + noun = base_1+base_2+"l"+base_3+"dh" ; + participle = base_1+base_2+base_3+"ilte" + }; + _ => error "Can't apply paradigm mkV097" + } ; + +mkV098 : Str -> V ; +mkV098 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"i"+base_3@? => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"a"+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV098" + } ; + +mkV099 : Str -> V ; +mkV099 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"ei"+base_3@? => lin V + { s = base_1+base_2+"ei"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"ei"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ea"+base_3 ; + participle = base_1+base_2+"ei"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV099" + } ; + +mkV100 : Str -> V ; +mkV100 base = + case base of { + base_1+base_2@(?+?+?+?+?)+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => "dh'"+base_1+"h"+base_2+"i"+base_3+"inn" ; + Pl => "dh'"+base_1+"h"+base_2+"i"+base_3+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"i"+base_3+"eam" ; + Pl => base_1+base_2+"i"+base_3+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2+"i"+base_3 ; + Pl => base_1+base_2+"i"+base_3+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"i"+base_3+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"ni"+base_3+"idh" ; + Dep => base_1+"h"+base_2+"i"+base_3 + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3 ; + Dep => "dh'"+base_1+"h"+base_2+"i"+base_3 + } ; + noun = base_1+base_2+"ea"+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV100" + } ; + +mkV101 : Str -> V ; +mkV101 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@?+"il" => lin V + { s = base_1+base_2+base_3+"il" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"ilidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+base_3+"il" ; + Dep => nonExist + } ; + noun = base_1+base_2+"l"+base_3+"dh" ; + participle = base_1+base_2+base_3+"ilte" + }; + _ => error "Can't apply paradigm mkV101" + } ; + +mkV102 : Str -> V ; +mkV102 base = + case base of { + base_1+base_2@?+"i"+base_3@?+"i"+base_4@(?+?) => lin V + { s = base_1+base_2+"i"+base_3+"i"+base_4 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"i"+base_4+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3+"i"+base_4 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"a"+base_4 ; + participle = base_1+base_2+"i"+base_3+"i"+base_4+"te" + }; + _ => error "Can't apply paradigm mkV102" + } ; + +mkV103 : Str -> V ; +mkV103 base = + case base of { + base_1+base_2@(?+?+?)+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ea"+base_3 ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV103" + } ; + +mkV104 : Str -> V ; +mkV104 base = + case base of { + base_1@?+base_2+"i"+base_3@(?+?) => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ea"+base_3+"adh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV104" + } ; + +mkV105 : Str -> V ; +mkV105 base = + case base of { + base_1+base_2@(?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+base_2+"ta" + }; + _ => error "Can't apply paradigm mkV105" + } ; + +mkV106 : Str -> V ; +mkV106 base = + case base of { + base_1+base_2@(?+?)+base_3@?+"ir" => lin V + { s = base_1+base_2+base_3+"ir" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"iridh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"h"+base_2+base_3+"ir" ; + Dep => nonExist + } ; + noun = base_1+base_2+"r"+base_3+"dh" ; + participle = base_1+base_2+base_3+"irte" + }; + _ => error "Can't apply paradigm mkV106" + } ; + +mkV107 : Str -> V ; +mkV107 base = + case base of { + base_1+base_2@(?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ail" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV107" + } ; + +mkV108 : Str -> V ; +mkV108 base = + case base of { + base_1+base_2@?+"à"+base_3@(?+?) => lin V + { s = base_1+base_2+"à"+base_3 ; + conditional = table { + Sg => base_1+"h"+base_2+"à"+base_3+"inn" ; + Pl => base_1+"h"+base_2+"à"+base_3+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"à"+base_3+"eam" ; + Pl => base_1+base_2+"à"+base_3+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2+"à"+base_3 ; + Pl => base_1+base_2+"à"+base_3+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"à"+base_3+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"à"+base_3+"idh" ; + Dep => base_1+"h"+base_2+"à"+base_3 + } ; + past = table { + Indep => base_1+"h"+base_2+"à"+base_3 ; + Dep => base_1+"h"+base_2+"à"+base_3 + } ; + noun = base_1+base_2+"a"+base_3+"adh" ; + participle = base_1+base_2+"à"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV108" + } ; + +mkV109 : Str -> V ; +mkV109 base = + case base of { + base_1+base_2@(?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"tinn" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV109" + } ; + +mkV110 : Str -> V ; +mkV110 base = + case base of { + base_1+base_2@(?+?+?)+"i"+base_3@? => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"i"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"ad" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV110" + } ; + +mkV111 : Str -> V ; +mkV111 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"inn" ; + Pl => base_1+"h"+base_2+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"eam" ; + Pl => base_1+base_2+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"e" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV111" + } ; + +mkV112 : Str -> V ; +mkV112 base = + case base of { + base_1+base_2@(?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"eachdainn" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV112" + } ; + +mkV113 : Str -> V ; +mkV113 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"ainn" ; + Pl => "dh'"+base_1+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; + Pl => base_1+"amaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh" + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => base_1 + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => "dh'"+base_1 + } ; + noun = base_1+"aidh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV113" + } ; + +mkV114 : Str -> V ; +mkV114 base = + case base of { + base_1+base_2@?+"h" => lin V + { s = base_1+base_2+"h" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"haidh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+base_2+"h" ; + Dep => nonExist + } ; + noun = base_1+base_2+"hadh" ; + participle = base_1+"dh"+base_2+"e" + }; + _ => error "Can't apply paradigm mkV114" + } ; + +mkV115 : Str -> V ; +mkV115 base = + case base of { + base_1+base_2@?+"ir" => lin V + { s = base_1+base_2+"ir" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"iridh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+base_2+"ir" ; + Dep => nonExist + } ; + noun = base_1+"r"+base_2+"dh" ; + participle = base_1+base_2+"irte" + }; + _ => error "Can't apply paradigm mkV115" + } ; + +mkV116 : Str -> V ; +mkV116 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"inn" ; + Pl => "dh'"+base_1+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"eam" ; + Pl => base_1+"eamaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"eadh" + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => base_1 + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => "dh'"+base_1 + } ; + noun = base_1+"e" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV116" + } ; + +mkV117 : Str -> V ; +mkV117 base = + case base of { + base_1+base_2@?+"ir" => lin V + { s = base_1+base_2+"ir" ; + conditional = table { + Sg => base_1+"r"+base_2+"inn" ; + Pl => base_1+"r"+base_2+"maid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"r"+base_2+"m" ; + Pl => base_1+"r"+base_2+"maid" + } ; + P2 => table { + Sg => base_1+base_2+"ir" ; + Pl => base_1+"r"+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"r"+base_2+"dh" + } + } ; + future = table { + Indep => base_1+"r"+base_2+"idh" ; + Dep => base_1+base_2+"ir" + } ; + past = table { + Indep => base_1+base_2+"ir" ; + Dep => base_1+base_2+"ir" + } ; + noun = base_1+base_2+"irt" ; + participle = base_1+base_2+"irte" + }; + _ => error "Can't apply paradigm mkV117" + } ; + +mkV118 : Str -> V ; +mkV118 base = + case base of { + base_1+"i"+base_2@("l"|(?+?)) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV118" + } ; + +mkV119 : Str -> V ; +mkV119 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1+"e" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV119" + } ; + +mkV120 : Str -> V ; +mkV120 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1+"tainn" ; + participle = base_1+"ta" + }; + _ => error "Can't apply paradigm mkV120" + } ; + +mkV121 : Str -> V ; +mkV121 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1+"eil" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV121" + } ; + +mkV122 : Str -> V ; +mkV122 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1 ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV122" + } ; + +mkV123 : Str -> V ; +mkV123 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1+"adh" ; + participle = base_1+"ta" + }; + _ => error "Can't apply paradigm mkV123" + } ; + +mkV124 : Str -> V ; +mkV124 base = + case base of { + base_1+"igh" => lin V + { s = base_1+"igh" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"ighidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"igh" ; + Dep => nonExist + } ; + noun = base_1+"ì" ; + participle = base_1+"ighte" + }; + _ => error "Can't apply paradigm mkV124" + } ; + +mkV125 : Str -> V ; +mkV125 base = + case base of { + base_1+"i"+base_2@(?+?) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"ea"+base_2+"adh" ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV125" + } ; + +mkV126 : Str -> V ; +mkV126 base = + case base of { + base_1@(?+?+?)+"i"+base_2 => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV126" + } ; + +mkV127 : Str -> V ; +mkV127 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => base_1+"inn" ; + Pl => base_1+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"eam" ; + Pl => base_1+"eamaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"eadh" + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => base_1 + } ; + past = table { + Indep => base_1 ; + Dep => base_1 + } ; + noun = base_1+"eadh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV127" + } ; + +mkV128 : Str -> V ; +mkV128 base = + case base of { + base_1+base_2@(?+?+?+?)+"i"+base_3@? => lin V + { s = base_1+base_2+"i"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"eadh" ; + participle = base_1+base_2+"i"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV128" + } ; + +mkV129 : Str -> V ; +mkV129 base = + case base of { + base_1+base_2@(?+?+?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkV129" + } ; + +mkV130 : Str -> V ; +mkV130 base = + case base of { + base_1+base_2@(?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2 ; + participle = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkV130" + } ; + +mkV131 : Str -> V ; +mkV131 base = + case base of { + base_1+base_2@(?+?+?+?+?+?+?+?+?)+"d" => lin V + { s = base_1+base_2+"d" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"daidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"d" ; + Dep => nonExist + } ; + noun = base_1+base_2+"dadh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV131" + } ; + +mkV132 : Str -> V ; +mkV132 base = + case base of { + base_1+"ì"+base_2@(?+?+?+?+?+?+?) => lin V + { s = base_1+"ì"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"hì"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"ì"+base_2+"adh" ; + participle = base_1+"ì"+base_2+"e" + }; + _ => error "Can't apply paradigm mkV132" + } ; + +mkV133 : Str -> V ; +mkV133 base = + case base of { + base_1+"ì"+base_2@(?+?+?)+"ò"+base_3@(?+?) => lin V + { s = base_1+"ì"+base_2+"ò"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"ò"+base_3+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"hì"+base_2+"ò"+base_3 ; + Dep => nonExist + } ; + noun = base_1+"ì"+base_2+"ò"+base_3+"adh" ; + participle = base_1+"ì"+base_2+"o"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV133" + } ; + +mkV134 : Str -> V ; +mkV134 base = + case base of { + base_1@?+base_2+"i"+base_3@?+"n" => lin V + { s = base_1+base_2+"i"+base_3+"n" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"i"+base_3+"n" ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"eadh" ; + participle = base_1+base_2+"i"+base_3+"nte" + }; + _ => error "Can't apply paradigm mkV134" + } ; + +mkV135 : Str -> V ; +mkV135 base = + case base of { + base_1+"dhèa"+base_2@? => lin V + { s = base_1+"dhèa"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"ì" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"ri"+base_2+"n" ; + Dep => nonExist + } ; + noun = base_1+"dhèa"+base_2+"amh" ; + participle = base_1+"dhèa"+base_2+"ta" + }; + _ => error "Can't apply paradigm mkV135" + } ; + +mkV136 : Str -> V ; +mkV136 base = + case base of { + "n"+base_1+"ulaich" => lin V + { s = "n"+base_1+"ulaich" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => "n"+base_1+"ulaichidh" ; + Dep => nonExist + } ; + past = table { + Indep => "n"+base_1+"ulaich" ; + Dep => nonExist + } ; + noun = "n"+base_1+"ulachadh" ; + participle = "t"+base_1 + }; + _ => error "Can't apply paradigm mkV136" + } ; + +mkV137 : Str -> V ; +mkV137 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh’"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"adh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV137" + } ; + +mkV138 : Str -> V ; +mkV138 base = + case base of { + base_1+base_2@(?+?+?)+"t" => lin V + { s = base_1+base_2+"t" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"daidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"t" ; + Dep => nonExist + } ; + noun = base_1+base_2+"tadh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV138" + } ; + +mkV139 : Str -> V ; +mkV139 base = + case base of { + base_1+base_2@(?+?+?+?)+"ig" => lin V + { s = base_1+base_2+"ig" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"igidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+"ig" ; + Dep => nonExist + } ; + noun = base_1+base_2+"eadh" ; + participle = base_1+base_2+"igte" + }; + _ => error "Can't apply paradigm mkV139" + } ; + +mkV140 : Str -> V ; +mkV140 base = + case base of { + "rach" => lin V + { s = "rach" ; + conditional = table { + Sg => "rachainn" ; + Pl => "rachadh" + } ; + imperative = table { + P1 => table { + Sg => "racham" ; + Pl => "rachamaid" + } ; + P2 => table { + Sg => "rach" ; + Pl => "rachaibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => "rachadh" + } + } ; + future = table { + Indep => "thèid" ; + Dep => "tèid" + } ; + past = table { + Indep => "chaidh" ; + Dep => "deach" + } ; + noun = "dol" ; + participle = "rachte" + }; + _ => error "Can't apply paradigm mkV140" + } ; + +mkV141 : Str -> V ; +mkV141 base = + case base of { + base_1+"h" => lin V + { s = base_1+"h" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"haidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h" ; + Dep => nonExist + } ; + noun = base_1+"hadh" ; + participle = base_1+"a" + }; + _ => error "Can't apply paradigm mkV141" + } ; + +mkV142 : Str -> V ; +mkV142 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1+"t" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV142" + } ; + +mkV143 : Str -> V ; +mkV143 base = + case base of { + base_1+"u"+base_2@(?+?) => lin V + { s = base_1+"u"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"u"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"àin"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"u"+base_2+"sinn" ; + participle = base_1+"u"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV143" + } ; + +mkV144 : Str -> V ; +mkV144 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1+"ail" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV144" + } ; + +mkV145 : Str -> V ; +mkV145 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1+"adh" ; + participle = base_1+"a" + }; + _ => error "Can't apply paradigm mkV145" + } ; + +mkV146 : Str -> V ; +mkV146 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@?+"in" => lin V + { s = base_1+base_2+base_3+"in" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"inidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"in" ; + Dep => nonExist + } ; + noun = base_1+base_2+"n"+base_3+"dh" ; + participle = base_1+base_2+base_3+"inte" + }; + _ => error "Can't apply paradigm mkV146" + } ; + +mkV147 : Str -> V ; +mkV147 base = + case base of { + base_1+base_2@(?+?+?+?)+base_3@?+"inn" => lin V + { s = base_1+base_2+base_3+"inn" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"innidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"inn" ; + Dep => nonExist + } ; + noun = base_1+base_2+"n"+base_3+"dh" ; + participle = base_1+base_2+base_3+"innte" + }; + _ => error "Can't apply paradigm mkV147" + } ; + +mkV148 : Str -> V ; +mkV148 base = + case base of { + base_1+base_2@(?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"amh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV148" + } ; + +mkV149 : Str -> V ; +mkV149 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"ainn" ; --guessed + Pl => "dh'"+base_1+"amaid" --guessed + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; --guessed + Pl => base_1+"aibh" + } ; + P2 => table { + Sg => base_1 ; --guessed + Pl => base_1+"aibh" --guessed + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh" --guessed + } + } ; + future = table { + Indep => base_1+"idh" ; --guessed + Dep => base_1 --guessed + } ; + past = table { + Indep => "dh'"+base_1 ; --guessed + Dep => "dh'"+base_1 --guessed + } ; + noun = base_1+"adh" ; --guessed + participle = base_1+"te" --guessed + }; + _ => error "Can't apply paradigm mkV149" + } ; + +mkV150 : Str -> V ; +mkV150 base = + case base of { + base_1+base_2@?+"g" => lin V + { s = base_1+base_2+"g" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"gidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+base_2+"g" ; + Dep => nonExist + } ; + noun = base_1+"ga"+base_2+"l" ; + participle = base_1+base_2+"gte" + }; + _ => error "Can't apply paradigm mkV150" + } ; + +mkV151 : Str -> V ; +mkV151 base = + case base of { + base_1+"i"+base_2@?+"ic"+base_3@? => lin V + { s = base_1+"i"+base_2+"ic"+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"ic"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"i"+base_2+"ic"+base_3 ; + Dep => nonExist + } ; + noun = base_1+base_2+"ad"+base_3 ; + participle = base_1+"i"+base_2+"ic"+base_3+"te" + }; + _ => error "Can't apply paradigm mkV151" + } ; + +mkV152 : Str -> V ; +mkV152 base = + case base of { + base_1+"à"+base_2@(?+?) => lin V + { s = base_1+"à"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"a"+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"à"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"a"+base_2+"adh" ; + participle = base_1+"a"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV152" + } ; + +mkV153 : Str -> V ; +mkV153 base = + case base of { + base_1+base_2@(?+?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"art" ; + participle = nonExist + }; + _ => error "Can't apply paradigm mkV153" + } ; + +mkV154 : Str -> V ; +mkV154 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"ainn" ; + Pl => base_1+"h"+base_2+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"am" ; + Pl => base_1+base_2+"amaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"adh" + } + } ; + future = table { + Indep => base_1+base_2+"aidh" ; + Dep => base_1+"h"+base_2 + } ; + past = table { + Indep => base_1+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"adh" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV154" + } ; + +mkV155 : Str -> V ; +mkV155 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => base_1+"ainn" ; + Pl => base_1+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; + Pl => base_1+"amaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh iad" + } + } ; + future = table { + Indep => base_1 ; + Dep => base_1+"aidh" + } ; + past = table { + Indep => base_1 ; + Dep => base_1 + } ; + noun = base_1+"adh" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV155" + } ; + +mkV156 : Str -> V ; +mkV156 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => base_1+"ibh" + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"thidh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1 ; + Dep => nonExist + } ; + noun = base_1 ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV156" + } ; + +mkV157 : Str -> V ; +mkV157 base = + case base of { + base_1+base_2@(?+?)+base_3@?+"ir" => lin V + { s = base_1+base_2+base_3+"ir" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+base_3+"iridh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"ir" ; + Dep => nonExist + } ; + noun = base_1+base_2+"r"+base_3+"dh" ; + participle = base_1+base_2+base_3+"irte" + }; + _ => error "Can't apply paradigm mkV157" + } ; + +mkV158 : Str -> V ; +mkV158 base = + case base of { + "tabhair" => lin V + { s = "tabhair" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => "bheir" ; + Dep => nonExist + } ; + past = table { + Indep => "thug" ; + Dep => nonExist + } ; + noun = "toirt" ; + participle = "tugta" + }; + _ => error "Can't apply paradigm mkV158" + } ; + +mkV159 : Str -> V ; +mkV159 base = + case base of { + base_1@?+base_2+base_3@(?+?)+"r" => lin V + { s = base_1+base_2+base_3+"r" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"r"+base_3+"dh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"r" ; + Dep => nonExist + } ; + noun = base_1+base_2+base_3+"rt" ; + participle = base_1+base_2+base_3+"rte" + }; + _ => error "Can't apply paradigm mkV159" + } ; + +mkV160 : Str -> V ; +mkV160 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"se" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV160" + } ; + +mkV161 : Str -> V ; +mkV161 base = + case base of { + base_1+"a"+base_2@?+"ra"+base_3@?+"ng" => lin V + { s = base_1+"a"+base_2+"ra"+base_3+"ng" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"ài"+base_2+"n"+base_3+"dh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"ha"+base_2+"ra"+base_3+"ng" ; + Dep => nonExist + } ; + noun = base_1+"a"+base_2+"ra"+base_3+"ng" ; + participle = base_1+"a"+base_2+"ra"+base_3+"ngte" + }; + _ => error "Can't apply paradigm mkV161" + } ; + +mkV162 : Str -> V ; +mkV162 base = + case base of { + base_1+base_2@(?+?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => base_1+"h"+base_2+"inn" ; + Pl => base_1+"h"+base_2+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+base_2+"eam" ; + Pl => base_1+base_2+"eamaid" + } ; + P2 => table { + Sg => base_1+base_2 ; + Pl => base_1+base_2+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+base_2+"eadh" + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => base_1+base_2 + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => base_1+"h"+base_2 + } ; + noun = base_1+base_2+"e" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV162" + } ; + +mkV163 : Str -> V ; +mkV163 base = + case base of { + base_1+"h"+base_2@(?+?) => lin V + { s = base_1+"h"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"hàin"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"hinn" ; + participle = base_1+base_2+"te" + }; + _ => error "Can't apply paradigm mkV163" + } ; + +mkV164 : Str -> V ; +mkV164 base = + case base of { + base_1+"h"+base_2@(?+?+?)+base_3@(?+?+?+?+?+?+?+?+?+?) => lin V + { s = base_1+"h"+base_2+base_3 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => nonExist ; + Dep => nonExist + } ; + past = table { + Indep => nonExist ; + Dep => nonExist + } ; + noun = base_1+base_2+"t"+base_3 ; + participle = nonExist + }; + _ => error "Can't apply paradigm mkV164" + } ; + +mkV165 : Str -> V ; +mkV165 base = + case base of { + "thoir" => lin V + { s = "thoir" ; + conditional = table { + Sg => "bheirinn" ; + Pl => "bheireadh" + } ; + imperative = table { + P1 => table { + Sg => "thoiream" ; + Pl => "thoireamaid" + } ; + P2 => table { + Sg => "thoir" ; + Pl => "thoiribh" + } ; + P3 => table { + Sg => nonExist ; + Pl => "thoireadh" + } + } ; + future = table { + Indep => "bheir" ; + Dep => "toir" + } ; + past = table { + Indep => "thug" ; + Dep => "tug" + } ; + noun = "toirt" ; + participle = "tugta" + }; + _ => error "Can't apply paradigm mkV165" + } ; + +mkV166 : Str -> V ; +mkV166 base = + case base of { + base_1+base_2@(?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"eil" ; + participle = base_1+base_2+"the" + }; + _ => error "Can't apply paradigm mkV166" + } ; + +mkV167 : Str -> V ; +mkV167 base = + case base of { + base_1+base_2@(?+?+?) => lin V + { s = base_1+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2 ; + Dep => nonExist + } ; + noun = base_1+base_2+"eam" ; + participle = base_1+base_2+"e" + }; + _ => error "Can't apply paradigm mkV167" + } ; + +mkV168 : Str -> V ; +mkV168 base = + case base of { + base_1+base_2@(?+?+?)+base_3@?+"inn" => lin V + { s = base_1+base_2+base_3+"inn" ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+base_2+"n"+base_3+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => base_1+"h"+base_2+base_3+"inn" ; + Dep => nonExist + } ; + noun = base_1+base_2+"n"+base_3+"dh" ; + participle = base_1+base_2+base_3+"inte" + }; + _ => error "Can't apply paradigm mkV168" + } ; + +mkV169 : Str -> V ; +mkV169 base = + case base of { + base_1+"i"+base_2@(?+?) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"a"+base_2 ; + participle = nonExist + }; + _ => error "Can't apply paradigm mkV169" + } ; + +mkV170 : Str -> V ; +mkV170 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"ainn" ; --guessed + Pl => "dh'"+base_1+"amaid" --guessed + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; --guessed + Pl => base_1+"aibh" --guessed + } ; + P2 => table { + Sg => base_1 ; --guessed + Pl => base_1+"aibh" --guessed + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh" --guessed + } + } ; + future = table { + Indep => base_1+"idh" ; --guessed + Dep => base_1 --guessed + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => "dh'"+base_1 --guessed + } ; + noun = base_1 ; + participle = base_1+"te" --guessed + }; + _ => error "Can't apply paradigm mkV170" + } ; + +mkV171 : Str -> V ; +mkV171 base = + case base of { + base_1+"i"+base_2@(?+?) => lin V + { s = base_1+"i"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"i"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"i"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"ea"+base_2 ; + participle = base_1+"i"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV171" + } ; + +mkV172 : Str -> V ; +mkV172 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => nonExist + } ; + noun = base_1+"eachd" ; + participle = base_1+"te" + }; + _ => error "Can't apply paradigm mkV172" + } ; + +mkV173 : Str -> V ; +mkV173 base = + case base of { + base_1+"c"+base_2@? => lin V + { s = base_1+"c"+base_2 ; + conditional = table { + Sg => nonExist ; + Pl => nonExist + } ; + imperative = table { + P1 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P2 => table { + Sg => nonExist ; + Pl => nonExist + } ; + P3 => table { + Sg => nonExist ; + Pl => nonExist + } + } ; + future = table { + Indep => base_1+"c"+base_2+"idh" ; + Dep => nonExist + } ; + past = table { + Indep => "dh'"+base_1+"c"+base_2 ; + Dep => nonExist + } ; + noun = base_1+"g"+base_2 ; + participle = base_1+"c"+base_2+"te" + }; + _ => error "Can't apply paradigm mkV173" + } ; + +mkV174 : Str -> V ; +mkV174 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"inn" ; + Pl => "dh'"+base_1+"eamaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"eam" ; + Pl => base_1+"eamaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"ibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"eadh" + } + } ; + future = table { + Indep => base_1+"idh" ; + Dep => base_1 + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => "dh'"+base_1 + } ; + noun = base_1+"eachd" ; + participle = base_1+"e" + }; + _ => error "Can't apply paradigm mkV174" + } ; + +mkV175 : Str -> V ; +mkV175 base = + case base of { + base_1 => lin V + { s = base_1 ; + conditional = table { + Sg => "dh'"+base_1+"ainn" ; + Pl => "dh'"+base_1+"amaid" + } ; + imperative = table { + P1 => table { + Sg => base_1+"am" ; + Pl => base_1+"amaid" + } ; + P2 => table { + Sg => base_1 ; + Pl => base_1+"aibh" + } ; + P3 => table { + Sg => nonExist ; + Pl => base_1+"adh" + } + } ; + future = table { + Indep => base_1+"aidh" ; + Dep => base_1 + } ; + past = table { + Indep => "dh'"+base_1 ; + Dep => "dh'"+base_1 + } ; + noun = base_1 ; + participle = base_1+"ta" + }; + _ => error "Can't apply paradigm mkV175" + } ; +} diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index 40051660..b9e620aa 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -9,7 +9,10 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Det -> CN -> NP DetCN det cn = emptyNP ** { art = det.s ! cn.g ; - s = \\c => cn.s ! getNForm det.dt c ; + s = \\c => case det.dt of { + DDef n sp => cn.s ! c ! sp ! n ; + DPoss n _ => cn.s ! c ! Def ! n -- ???????????????? + } ; a = NotPron det.dt ; } ; @@ -20,7 +23,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : Pron -> NP ; -- Assuming that lincat Pron = lincat NP UsePron pron = emptyNP ** pron ** { - s = \\c => pron.s ! npc2cc c ; + s = pron.s ; a = IsPron pron.a } ; {- @@ -58,7 +61,7 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -} -- MassNP : CN -> NP ; MassNP cn = emptyNP ** { - s = \\c => cn.s ! getNForm (DDef Sg Indefinite) c -- no article, singular indefinite forms, open for cases+mutations + s = \\c => cn.s ! c ! Indef ! Sg -- no article, singular indefinite forms, open for cases+mutations } ; @@ -132,16 +135,23 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { DefArt = ResGla.defArt ; -- : Quant - IndefArt = mkQuant [] (QDef Indefinite) ; - + IndefArt = { + s = \\_ => [] ; + sp = [] ; + qt = QDef Indef ; + } ; -- : Pron -> Quant -- my - PossPron pron = mkQuant pron.poss (QPoss pron.a) ; + PossPron pron = { + s = \\_ => pron.poss ; + sp = pron.poss ; + qt = QPoss pron.a ; + } ; --2 Common nouns -- : N -> CN - UseN = useN ; + UseN n = n ; {- -- : N2 -> CN ; diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf index ba520dec..c3d59120 100644 --- a/src/gaelic/ParadigmsGla.gf +++ b/src/gaelic/ParadigmsGla.gf @@ -1,213 +1,2195 @@ -resource ParadigmsGla = open CatGla, ResGla, NounGla, Prelude in { +resource ParadigmsGla = MorphoGla ** open Predef, Prelude, CatGla, ResGla in { +oper + regA : Str -> A -- ('asg', nom, masc) + = \form1 -> case form1 of { + _ + "o(rb|rm)rch" => mkA010 form1; + _ + "orm" => mkA010 form1; + _ + "ana" => mkA084 form1; + _ + "cha" => mkA084 form1; + _ + "òr" => mkA064 form1; + _ + "om" => mkA010 form1; + _ + "og" => mkA010 form1; + _ + "ob" => mkA010 form1; + _ + "ach" => mkA007 form1; + _ + "uch" => mkA001 form1; + _ + "och" => mkA007 form1; + _ + "ich" => mkA007 form1; + _ + "omh" => mkA001 form1; + _ + "amh" => mkA001 form1; + _ + "imh" => mkA007 form1; + _ + "ùth" => mkA001 form1; + _ + "ath" => mkA001 form1; + _ + "àth" => mkA001 form1; + _ + "oth" => mkA002 form1; + _ + "rbh" => mkA002 form1; + _ + "nbh" => mkA015 form1; + _ + "agh" => mkA002 form1; + _ + "idh" => mkA003 form1; + _ + "adh" => mkA009 form1; + _ + "ann" => mkA003 form1; + _ + "inn" => mkA007 form1; + _ + "onn" => mkA015 form1; + _ + "lan" => mkA001 form1; + _ + "uan" => mkA003 form1; + _ + "ean" => mkA003 form1; + _ + "ain" => mkA003 form1; + _ + "èin" => mkA007 form1; + _ + "oin" => mkA007 form1; + _ + "hor" => mkA024 form1; + _ + "ìor" => mkA007 form1; + _ + "aor" => mkA014 form1; + _ + "air" => mkA003 form1; + _ + "òir" => mkA003 form1; + _ + "dir" => mkA007 form1; + _ + "arr" => mkA003 form1; + _ + "àrr" => mkA026 form1; + _ + "har" => mkA007 form1; + _ + "iar" => mkA026 form1; + _ + "uar" => mkA038 form1; + _ + "ual" => mkA001 form1; + _ + "sal" => mkA003 form1; + _ + "hal" => mkA003 form1; + _ + "ail" => mkA003 form1; + _ + "sta" => mkA003 form1; + _ + "nta" => mkA003 form1; + _ + "rra" => mkA009 form1; + _ + "cra" => mkA007 form1; + _ + "ara" => mkA009 form1; + _ + "sda" => mkA003 form1; + _ + "ona" => mkA007 form1; + _ + "nna" => mkA009 form1; + _ + "gha" => mkA021 form1; + _ + "ing" => mkA003 form1; + _ + "arg" => mkA006 form1; + _ + "nog" => mkA077 form1; + _ + "irt" => mkA007 form1; + _ + "ch" => mkA007 form1; + _ + "mh" => mkA001 form1; + _ + "th" => mkA001 form1; + _ + "bh" => mkA003 form1; + _ + "gh" => mkA003 form1; + _ + "dh" => mkA007 form1; + _ + "nn" => mkA007 form1; + _ + "an" => mkA003 form1; + _ + "in" => mkA003 form1; + _ + "on" => mkA003 form1; + _ + "ìn" => mkA007 form1; + _ + "àn" => mkA014 form1; + _ + "or" => mkA024 form1; + _ + "àr" => mkA002 form1; + _ + "ir" => mkA003 form1; + _ + "rr" => mkA003 form1; + _ + "ar" => mkA024 form1; + _ + "al" => mkA003 form1; + _ + "il" => mkA003 form1; + _ + "ll" => mkA003 form1; + _ + "ol" => mkA003 form1; + _ + "am" => mkA002 form1; + _ + "ds" => mkA007 form1; + _ + "ns" => mkA007 form1; + _ + "is" => mkA007 form1; + _ + "às" => mkA026 form1; + _ + "ta" => mkA003 form1; + _ + "ra" => mkA009 form1; + _ + "da" => mkA003 form1; + _ + "ma" => mkA003 form1; + _ + "sa" => mkA003 form1; + _ + "na" => mkA007 form1; + _ + "te" => mkA003 form1; + _ + "fe" => mkA003 form1; + _ + "he" => mkA009 form1; + _ + "sg" => mkA003 form1; + _ + "ng" => mkA003 form1; + _ + "ig" => mkA003 form1; + _ + "rg" => mkA006 form1; + _ + "ag" => mkA007 form1; + _ + "rc" => mkA003 form1; + _ + "nc" => mkA003 form1; + _ + "od" => mkA003 form1; + _ + "id" => mkA007 form1; + _ + "hd" => mkA015 form1; + _ + "rd" => mkA024 form1; + _ + "rt" => mkA007 form1; + _ + "h" => mkA007 form1; + _ + "n" => mkA003 form1; + _ + "r" => mkA024 form1; + _ + "l" => mkA003 form1; + _ + "s" => mkA007 form1; + _ + "a" => mkA003 form1; + _ + "e" => mkA003 form1; + _ + "g" => mkA003 form1; + _ + "ì" => mkA003 form1; + _ + "ò" => mkA003 form1; + _ + "c" => mkA003 form1; + _ + "d" => mkA007 form1; + _ + "t" => mkA007 form1; + _ => error "Cannot find an inflection rule" + } ; + + reg2A : Str -> Str -> A -- ('asg', nom, masc) ('asg', nom, fem) + = \form1, form2 -> case of { + <_ + "ian", _ + "n"> => mkA027 form1; + <_ + "og", _ + "hog"> => mkA010 form1; + <_ + "og", _ + "nog"> => mkA077 form1; + <_ + "og", _ + "og"> => mkA010 form1; + <_ + "og", _ + "g"> => mkA010 form1; + <_ + "òr", _ + "r"> => mkA064 form1; + <_ + "ach", _ + "ach"> => mkA006 form1; + <_ + "ann", _ + "ann"> => mkA003 form1; + <_ + "rbh", _ + "rbh"> => mkA002 form1; + <_ + "agh", _ + "agh"> => mkA002 form1; + <_ + "ail", _ + "ail"> => mkA003 form1; + <_ + "nta", _ + "nta"> => mkA003 form1; + <_ + "arg", _ + "arg"> => mkA006 form1; + <_ + "adh", _ + "adh"> => mkA009 form1; + <_ + "ach", _ + "ch"> => mkA006 form1; + <_ + "ann", _ + "nn"> => mkA003 form1; + <_ + "rbh", _ + "bh"> => mkA002 form1; + <_ + "agh", _ + "gh"> => mkA002 form1; + <_ + "ail", _ + "il"> => mkA003 form1; + <_ + "nta", _ + "ta"> => mkA003 form1; + <_ + "arg", _ + "rg"> => mkA006 form1; + <_ + "adh", _ + "dh"> => mkA009 form1; + <_ + "ach", _ + "h"> => mkA006 form1; + <_ + "amh", _ + "h"> => mkA003 form1; + <_ + "ann", _ + "n"> => mkA003 form1; + <_ + "ùth", _ + "h"> => mkA015 form1; + <_ + "ath", _ + "h"> => mkA003 form1; + <_ + "àth", _ + "h"> => mkA014 form1; + <_ + "rbh", _ + "h"> => mkA002 form1; + <_ + "agh", _ + "h"> => mkA002 form1; + <_ + "ail", _ + "l"> => mkA003 form1; + <_ + "sta", _ + "a"> => mkA003 form1; + <_ + "nta", _ + "a"> => mkA003 form1; + <_ + "rra", _ + "a"> => mkA003 form1; + <_ + "sda", _ + "a"> => mkA003 form1; + <_ + "inn", _ + "n"> => mkA003 form1; + <_ + "ain", _ + "n"> => mkA003 form1; + <_ + "idh", _ + "h"> => mkA003 form1; + <_ + "arg", _ + "g"> => mkA006 form1; + <_ + "ìor", _ + "r"> => mkA007 form1; + <_ + "adh", _ + "h"> => mkA009 form1; + <_ + "iar", _ + "r"> => mkA027 form1; + <_ + "il", _ + "eil"> => mkA003 form1; + <_ + "àn", _ + "hàn"> => mkA014 form1; + <_ + "il", _ + "il"> => mkA003 form1; + <_ + "àn", _ + "àn"> => mkA014 form1; + <_ + "il", _ + "l"> => mkA003 form1; + <_ + "te", _ + "e"> => mkA003 form1; + <_ + "rc", _ + "c"> => mkA003 form1; + <_ + "ng", _ + "g"> => mkA003 form1; + <_ + "àn", _ + "n"> => mkA014 form1; + <_ + "da", _ + "a"> => mkA056 form1; + <_ + "e", _ + "e"> => mkA003 form1; + <_ + "c", _ + "c"> => mkA003 form1; + _ => regA form1 + } ; + + regN : Str -> LinN -- nom;indef;sg + = \form1 -> case form1 of { + _ + "algrg" => mkN019 form1; + _ + "amhlg" => mkN043 form1; + _ + "eeac" => mkN001 form1; + _ + "eeap" => mkN002 form1; + _ + "ean" => mkN011 form1; + _ + "ìon" => mkN047 form1; + _ + "òrn" => mkN113 form1; + _ + "eas" => mkN011 form1; + _ + "nis" => mkN049 form1; + _ + "noc" => mkN089 form1; + _ + "toc" => mkN089 form1; + _ + "oll" => mkN047 form1; + _ + "eal" => mkN011 form1; + _ + "cal" => mkN131 form1; + _ + "eul" => mkN081 form1; + _ + "sil" => mkN049 form1; + _ + "òil" => mkN106 form1; + _ + "eòl" => mkN132 form1; + _ + "eam" => mkN011 form1; + _ + "rom" => mkN069 form1; + _ + "ear" => mkN011 form1; + _ + "dir" => mkN295 form1; + _ + "àrr" => mkN110 form1; + _ + "iod" => mkN047 form1; + _ + "òrd" => mkN113 form1; + _ + "eand" => mkN011 form1; + _ + "eud" => mkN080 form1; + _ + "eag" => mkN019 form1; + _ + "earg" => mkN011 form1; + _ + "org" => mkN260 form1; + _ + "alg" => mkN043 form1; + _ + "eamh" => mkN011 form1; + _ + "eabh" => mkN011 form1; + _ + "èap" => mkN043 form1; + _ + "orp" => mkN089 form1; + _ + "alt" => mkN067 form1; + _ + "tob" => mkN069 form1; + _ + "ul" => mkN081 form1; + _ + "òl" => mkN112 form1; + _ + "om" => mkN069 form1; + _ + "ear" => mkN011 form1; + _ + "han" => mkN002 form1; + _ + "san" => mkN002 form1; + _ + "can" => mkN002 form1; + _ + "ban" => mkN001 form1; + _ + "tan" => mkN001 form1; + _ + "dan" => mkN002 form1; + _ + "ran" => mkN002 form1; + _ + "man" => mkN002 form1; + _ + "gan" => mkN002 form1; + _ + "lan" => mkN001 form1; + _ + "pan" => mkN002 form1; + _ + "uan" => mkN002 form1; + _ + "nan" => mkN002 form1; + _ + "ùan" => mkN001 form1; + _ + "ian" => mkN009 form1; + _ + "èan" => mkN061 form1; + _ + "aon" => mkN002 form1; + _ + "son" => mkN002 form1; + _ + "ron" => mkN002 form1; + _ + "bon" => mkN002 form1; + _ + "hon" => mkN002 form1; + _ + "con" => mkN002 form1; + _ + "mon" => mkN001 form1; + _ + "ion" => mkN009 form1; + _ + "ràn" => mkN017 form1; + _ + "ròn" => mkN001 form1; + _ + "eòn" => mkN158 form1; + _ + "ùrn" => mkN002 form1; + _ + "irn" => mkN007 form1; + _ + "àrn" => mkN059 form1; + _ + "arn" => mkN082 form1; + _ + "lùn" => mkN036 form1; + _ + "rùn" => mkN124 form1; + _ + "ain" => mkN007 form1; + _ + "uin" => mkN004 form1; + _ + "òin" => mkN007 form1; + _ + "lin" => mkN007 form1; + _ + "oin" => mkN007 form1; + _ + "àin" => mkN007 form1; + _ + "ein" => mkN009 form1; + _ + "rin" => mkN009 form1; + _ + "sin" => mkN028 form1; + _ + "gin" => mkN028 form1; + _ + "eun" => mkN059 form1; + _ + "ras" => mkN001 form1; + _ + "cas" => mkN001 form1; + _ + "gas" => mkN001 form1; + _ + "has" => mkN001 form1; + _ + "das" => mkN002 form1; + _ + "nas" => mkN001 form1; + _ + "las" => mkN001 form1; + _ + "uas" => mkN002 form1; + _ + "tas" => mkN001 form1; + _ + "mas" => mkN001 form1; + _ + "eus" => mkN082 form1; + _ + "los" => mkN002 form1; + _ + "aos" => mkN001 form1; + _ + "ros" => mkN001 form1; + _ + "ios" => mkN059 form1; + _ + "ìos" => mkN059 form1; + _ + "làs" => mkN059 form1; + _ + "ths" => mkN002 form1; + _ + "bhs" => mkN281 form1; + _ + "ais" => mkN007 form1; + _ + "àis" => mkN004 form1; + _ + "ris" => mkN007 form1; + _ + "ois" => mkN007 form1; + _ + "uis" => mkN007 form1; + _ + "èis" => mkN007 form1; + _ + "ùis" => mkN007 form1; + _ + "eis" => mkN007 form1; + _ + "fis" => mkN007 form1; + _ + "éis" => mkN007 form1; + _ + "lis" => mkN007 form1; + _ + "òis" => mkN007 form1; + _ + "his" => mkN007 form1; + _ + "gis" => mkN007 form1; + _ + "acs" => mkN001 form1; + _ + "ocs" => mkN001 form1; + _ + "ncs" => mkN230 form1; + _ + "ids" => mkN025 form1; + _ + "rds" => mkN281 form1; + _ + "ars" => mkN045 form1; + _ + "òrs" => mkN021 form1; + _ + "lac" => mkN001 form1; + _ + "arc" => mkN002 form1; + _ + "irc" => mkN007 form1; + _ + "orc" => mkN059 form1; + _ + "urc" => mkN235 form1; + _ + "eic" => mkN007 form1; + _ + "aic" => mkN007 form1; + _ + "àic" => mkN061 form1; + _ + "luc" => mkN001 form1; + _ + "euc" => mkN009 form1; + _ + "unc" => mkN001 form1; + _ + "eòc" => mkN059 form1; + _ + "iùc" => mkN009 form1; + _ + "tùc" => mkN030 form1; + _ + "eoc" => mkN059 form1; + _ + "loc" => mkN059 form1; + _ + "all" => mkN001 form1; + _ + "ill" => mkN010 form1; + _ + "col" => mkN002 form1; + _ + "aol" => mkN002 form1; + _ + "tol" => mkN001 form1; + _ + "ìol" => mkN021 form1; + _ + "tal" => mkN002 form1; + _ + "hal" => mkN002 form1; + _ + "bal" => mkN002 form1; + _ + "sal" => mkN002 form1; + _ + "gal" => mkN002 form1; + _ + "dal" => mkN002 form1; + _ + "ual" => mkN001 form1; + _ + "ral" => mkN002 form1; + _ + "nal" => mkN001 form1; + _ + "ial" => mkN082 form1; + _ + "nàl" => mkN001 form1; + _ + "ail" => mkN007 form1; + _ + "uil" => mkN007 form1; + _ + "àil" => mkN007 form1; + _ + "ril" => mkN007 form1; + _ + "ùil" => mkN007 form1; + _ + "eil" => mkN007 form1; + _ + "oil" => mkN007 form1; + _ + "gil" => mkN010 form1; + _ + "dil" => mkN025 form1; + _ + "ròl" => mkN001 form1; + _ + "ram" => mkN001 form1; + _ + "lam" => mkN002 form1; + _ + "iam" => mkN002 form1; + _ + "gam" => mkN001 form1; + _ + "tam" => mkN001 form1; + _ + "irm" => mkN007 form1; + _ + "lum" => mkN002 form1; + _ + "eum" => mkN059 form1; + _ + "oim" => mkN007 form1; + _ + "aim" => mkN028 form1; + _ + "ìom" => mkN082 form1; + _ + "ilm" => mkN040 form1; + _ + "alm" => mkN045 form1; + _ + "har" => mkN002 form1; + _ + "bar" => mkN002 form1; + _ + "dar" => mkN001 form1; + _ + "nar" => mkN001 form1; + _ + "par" => mkN001 form1; + _ + "car" => mkN001 form1; + _ + "gar" => mkN001 form1; + _ + "mar" => mkN001 form1; + _ + "tar" => mkN001 form1; + _ + "sar" => mkN001 form1; + _ + "rar" => mkN001 form1; + _ + "far" => mkN001 form1; + _ + "lar" => mkN001 form1; + _ + "èar" => mkN009 form1; + _ + "làr" => mkN002 form1; + _ + "gàr" => mkN001 form1; + _ + "tàr" => mkN033 form1; + _ + "aor" => mkN002 form1; + _ + "for" => mkN002 form1; + _ + "mor" => mkN002 form1; + _ + "ior" => mkN059 form1; + _ + "tùr" => mkN002 form1; + _ + "lùr" => mkN033 form1; + _ + "gur" => mkN002 form1; + _ + "tur" => mkN001 form1; + _ + "eur" => mkN059 form1; + _ + "òir" => mkN004 form1; + _ + "oir" => mkN007 form1; + _ + "nir" => mkN007 form1; + _ + "èir" => mkN007 form1; + _ + "sir" => mkN010 form1; + _ + "air" => mkN028 form1; + _ + "tir" => mkN007 form1; + _ + "eir" => mkN028 form1; + _ + "hir" => mkN010 form1; + _ + "ùir" => mkN007 form1; + _ + "ùrr" => mkN009 form1; + _ + "arr" => mkN059 form1; + _ + "òrr" => mkN059 form1; + _ + "rod" => mkN002 form1; + _ + "god" => mkN001 form1; + _ + "ùrd" => mkN002 form1; + _ + "ird" => mkN007 form1; + _ + "ard" => mkN001 form1; + _ + "àrd" => mkN001 form1; + _ + "nnd" => mkN002 form1; + _ + "ròd" => mkN002 form1; + _ + "chd" => mkN004 form1; + _ + "bhd" => mkN084 form1; + _ + "eid" => mkN007 form1; + _ + "òid" => mkN007 form1; + _ + "àid" => mkN007 form1; + _ + "uid" => mkN007 form1; + _ + "oid" => mkN007 form1; + _ + "sid" => mkN007 form1; + _ + "hid" => mkN007 form1; + _ + "nid" => mkN007 form1; + _ + "mid" => mkN007 form1; + _ + "èid" => mkN028 form1; + _ + "asg" => mkN002 form1; + _ + "isg" => mkN007 form1; + _ + "osg" => mkN001 form1; + _ + "ùsg" => mkN001 form1; + _ + "eòg" => mkN002 form1; + _ + "pòg" => mkN023 form1; + _ + "ròg" => mkN030 form1; + _ + "rig" => mkN007 form1; + _ + "fig" => mkN007 form1; + _ + "lig" => mkN007 form1; + _ + "oig" => mkN007 form1; + _ + "mig" => mkN028 form1; + _ + "mag" => mkN030 form1; + _ + "dag" => mkN023 form1; + _ + "bag" => mkN023 form1; + _ + "hag" => mkN030 form1; + _ + "lag" => mkN023 form1; + _ + "tag" => mkN030 form1; + _ + "rag" => mkN023 form1; + _ + "sag" => mkN030 form1; + _ + "nag" => mkN030 form1; + _ + "cag" => mkN023 form1; + _ + "gag" => mkN023 form1; + _ + "pag" => mkN030 form1; + _ + "fag" => mkN030 form1; + _ + "uag" => mkN030 form1; + _ + "ing" => mkN007 form1; + _ + "ang" => mkN001 form1; + _ + "ong" => mkN059 form1; + _ + "irg" => mkN007 form1; + _ + "log" => mkN001 form1; + _ + "iog" => mkN009 form1; + _ + "gog" => mkN030 form1; + _ + "omh" => mkN002 form1; + _ + "àmh" => mkN002 form1; + _ + "imh" => mkN007 form1; + _ + "umh" => mkN059 form1; + _ + "adh" => mkN017 form1; + _ + "odh" => mkN059 form1; + _ + "àdh" => mkN017 form1; + _ + "ìdh" => mkN338 form1; + _ + "obh" => mkN001 form1; + _ + "rbh" => mkN002 form1; + _ + "ubh" => mkN001 form1; + _ + "àbh" => mkN001 form1; + _ + "ùbh" => mkN001 form1; + _ + "lbh" => mkN009 form1; + _ + "ibh" => mkN009 form1; + _ + "òbh" => mkN017 form1; + _ + "ath" => mkN059 form1; + _ + "àth" => mkN059 form1; + _ + "ith" => mkN007 form1; + _ + "ìth" => mkN007 form1; + _ + "uth" => mkN059 form1; + _ + "ùth" => mkN059 form1; + _ + "oth" => mkN059 form1; + _ + "òth" => mkN082 form1; + _ + "igh" => mkN007 form1; + _ + "ùgh" => mkN001 form1; + _ + "ugh" => mkN017 form1; + _ + "agh" => mkN059 form1; + _ + "ìgh" => mkN025 form1; + _ + "àgh" => mkN045 form1; + _ + "eop" => mkN084 form1; + _ + "nap" => mkN001 form1; + _ + "ilp" => mkN007 form1; + _ + "irp" => mkN007 form1; + _ + "ort" => mkN002 form1; + _ + "art" => mkN001 form1; + _ + "urt" => mkN002 form1; + _ + "irt" => mkN007 form1; + _ + "ult" => mkN002 form1; + _ + "ilt" => mkN007 form1; + _ + "llt" => mkN007 form1; + _ + "olt" => mkN009 form1; + _ + "uit" => mkN004 form1; + _ + "eit" => mkN007 form1; + _ + "oit" => mkN007 form1; + _ + "àit" => mkN007 form1; + _ + "ait" => mkN007 form1; + _ + "ist" => mkN007 form1; + _ + "ust" => mkN009 form1; + _ + "ost" => mkN009 form1; + _ + "òst" => mkN059 form1; + _ + "nnt" => mkN007 form1; + _ + "int" => mkN007 form1; + _ + "ant" => mkN001 form1; + _ + "pot" => mkN001 form1; + _ + "rot" => mkN059 form1; + _ + "eut" => mkN009 form1; + _ + "rat" => mkN059 form1; + _ + "lat" => mkN084 form1; + _ + "lse" => mkN004 form1; + _ + "dse" => mkN004 form1; + _ + "hse" => mkN004 form1; + _ + "ise" => mkN004 form1; + _ + "rse" => mkN004 form1; + _ + "mse" => mkN009 form1; + _ + "gse" => mkN150 form1; + _ + "nse" => mkN210 form1; + _ + "ire" => mkN009 form1; + _ + "hre" => mkN004 form1; + _ + "ìre" => mkN004 form1; + _ + "lle" => mkN004 form1; + _ + "ile" => mkN009 form1; + _ + "rle" => mkN004 form1; + _ + "mle" => mkN004 form1; + _ + "hle" => mkN004 form1; + _ + "sle" => mkN004 form1; + _ + "ìle" => mkN062 form1; + _ + "sge" => mkN004 form1; + _ + "nge" => mkN004 form1; + _ + "ite" => mkN004 form1; + _ + "nte" => mkN004 form1; + _ + "ste" => mkN004 form1; + _ + "lte" => mkN004 form1; + _ + "ìde" => mkN004 form1; + _ + "sde" => mkN009 form1; + _ + "ghe" => mkN004 form1; + _ + "che" => mkN009 form1; + _ + "the" => mkN004 form1; + _ + "bhe" => mkN009 form1; + _ + "ice" => mkN004 form1; + _ + "rce" => mkN009 form1; + _ + "ime" => mkN004 form1; + _ + "rbe" => mkN004 form1; + _ + "ibe" => mkN150 form1; + _ + "òga" => mkN004 form1; + _ + "uga" => mkN061 form1; + _ + "aga" => mkN061 form1; + _ + "àga" => mkN061 form1; + _ + "oga" => mkN088 form1; + _ + "nga" => mkN121 form1; + _ + "bha" => mkN004 form1; + _ + "dha" => mkN088 form1; + _ + "gha" => mkN088 form1; + _ + "mha" => mkN088 form1; + _ + "tha" => mkN088 form1; + _ + "oca" => mkN121 form1; + _ + "aca" => mkN046 form1; + _ + "òca" => mkN121 form1; + _ + "hna" => mkN057 form1; + _ + "rna" => mkN046 form1; + _ + "ana" => mkN061 form1; + _ + "sna" => mkN057 form1; + _ + "ona" => mkN061 form1; + _ + "nna" => mkN088 form1; + _ + "àta" => mkN061 form1; + _ + "nta" => mkN046 form1; + _ + "lta" => mkN061 form1; + _ + "sta" => mkN088 form1; + _ + "òta" => mkN061 form1; + _ + "hta" => mkN061 form1; + _ + "ota" => mkN061 form1; + _ + "ata" => mkN088 form1; + _ + "àpa" => mkN009 form1; + _ + "mpa" => mkN061 form1; + _ + "apa" => mkN061 form1; + _ + "òpa" => mkN061 form1; + _ + "upa" => mkN088 form1; + _ + "lpa" => mkN121 form1; + _ + "ada" => mkN009 form1; + _ + "ùda" => mkN046 form1; + _ + "oda" => mkN046 form1; + _ + "hda" => mkN088 form1; + _ + "rra" => mkN046 form1; + _ + "lra" => mkN046 form1; + _ + "ara" => mkN085 form1; + _ + "nra" => mkN267 form1; + _ + "rla" => mkN046 form1; + _ + "hla" => mkN057 form1; + _ + "ala" => mkN057 form1; + _ + "òla" => mkN088 form1; + _ + "ula" => mkN088 form1; + _ + "lla" => mkN046 form1; + _ + "àla" => mkN046 form1; + _ + "ofa" => mkN046 form1; + _ + "rfa" => mkN061 form1; + _ + "asa" => mkN057 form1; + _ + "csa" => mkN061 form1; + _ + "gsa" => mkN061 form1; + _ + "hsa" => mkN061 form1; + _ + "rsa" => mkN088 form1; + _ + "tsa" => mkN085 form1; + _ + "oma" => mkN061 form1; + _ + "àma" => mkN085 form1; + _ + "ama" => mkN121 form1; + _ + "aba" => mkN061 form1; + _ + "oba" => mkN046 form1; + _ + "uab" => mkN030 form1; + _ + "eab" => mkN059 form1; + _ + "iob" => mkN059 form1; + _ + "ìob" => mkN082 form1; + _ + "ì" => mkN289 form1; + _ + "an" => mkN002 form1; + _ + "on" => mkN002 form1; + _ + "àn" => mkN002 form1; + _ + "òn" => mkN002 form1; + _ + "ùn" => mkN124 form1; + _ + "in" => mkN007 form1; + _ + "ón" => mkN009 form1; + _ + "un" => mkN059 form1; + _ + "as" => mkN001 form1; + _ + "us" => mkN002 form1; + _ + "os" => mkN059 form1; + _ + "às" => mkN001 form1; + _ + "hs" => mkN001 form1; + _ + "is" => mkN007 form1; + _ + "ìs" => mkN007 form1; + _ + "òs" => mkN001 form1; + _ + "cs" => mkN001 form1; + _ + "ùs" => mkN001 form1; + _ + "ns" => mkN009 form1; + _ + "ps" => mkN009 form1; + _ + "ds" => mkN025 form1; + _ + "rs" => mkN045 form1; + _ + "ac" => mkN001 form1; + _ + "rc" => mkN007 form1; + _ + "ic" => mkN007 form1; + _ + "lc" => mkN007 form1; + _ + "ìc" => mkN007 form1; + _ + "àc" => mkN001 form1; + _ + "uc" => mkN001 form1; + _ + "nc" => mkN001 form1; + _ + "òc" => mkN059 form1; + _ + "ùc" => mkN009 form1; + _ + "oc" => mkN059 form1; + _ + "ll" => mkN001 form1; + _ + "ol" => mkN002 form1; + _ + "al" => mkN002 form1; + _ + "àl" => mkN002 form1; + _ + "il" => mkN007 form1; + _ + "ìl" => mkN007 form1; + _ + "ùl" => mkN124 form1; + _ + "am" => mkN001 form1; + _ + "rm" => mkN007 form1; + _ + "um" => mkN059 form1; + _ + "im" => mkN028 form1; + _ + "ìm" => mkN007 form1; + _ + "ùm" => mkN001 form1; + _ + "nm" => mkN010 form1; + _ + "hm" => mkN028 form1; + _ + "lm" => mkN040 form1; + _ + "àr" => mkN001 form1; + _ + "or" => mkN002 form1; + _ + "ùr" => mkN002 form1; + _ + "ur" => mkN002 form1; + _ + "ir" => mkN028 form1; + _ + "ìr" => mkN007 form1; + _ + "òr" => mkN001 form1; + _ + "rr" => mkN059 form1; + _ + "hr" => mkN025 form1; + _ + "od" => mkN002 form1; + _ + "rd" => mkN001 form1; + _ + "nd" => mkN002 form1; + _ + "òd" => mkN001 form1; + _ + "hd" => mkN004 form1; + _ + "id" => mkN007 form1; + _ + "àd" => mkN001 form1; + _ + "ud" => mkN009 form1; + _ + "sd" => mkN009 form1; + _ + "sg" => mkN007 form1; + _ + "òg" => mkN030 form1; + _ + "ig" => mkN007 form1; + _ + "ag" => mkN030 form1; + _ + "àg" => mkN004 form1; + _ + "ng" => mkN007 form1; + _ + "ìg" => mkN007 form1; + _ + "og" => mkN030 form1; + _ + "mh" => mkN002 form1; + _ + "dh" => mkN017 form1; + _ + "bh" => mkN001 form1; + _ + "th" => mkN059 form1; + _ + "gh" => mkN007 form1; + _ + "op" => mkN084 form1; + _ + "ap" => mkN084 form1; + _ + "lp" => mkN007 form1; + _ + "rp" => mkN007 form1; + _ + "ip" => mkN057 form1; + _ + "òp" => mkN230 form1; + _ + "rt" => mkN007 form1; + _ + "lt" => mkN007 form1; + _ + "it" => mkN007 form1; + _ + "st" => mkN007 form1; + _ + "nt" => mkN007 form1; + _ + "ot" => mkN059 form1; + _ + "àt" => mkN009 form1; + _ + "ut" => mkN059 form1; + _ + "at" => mkN059 form1; + _ + "ùt" => mkN059 form1; + _ + "ft" => mkN084 form1; + _ + "se" => mkN004 form1; + _ + "re" => mkN009 form1; + _ + "le" => mkN004 form1; + _ + "ge" => mkN004 form1; + _ + "te" => mkN004 form1; + _ + "de" => mkN004 form1; + _ + "he" => mkN009 form1; + _ + "ce" => mkN009 form1; + _ + "pe" => mkN004 form1; + _ + "me" => mkN004 form1; + _ + "be" => mkN004 form1; + _ + "ga" => mkN061 form1; + _ + "ha" => mkN088 form1; + _ + "ca" => mkN046 form1; + _ + "na" => mkN061 form1; + _ + "ta" => mkN061 form1; + _ + "pa" => mkN061 form1; + _ + "da" => mkN061 form1; + _ + "ra" => mkN046 form1; + _ + "la" => mkN088 form1; + _ + "fa" => mkN061 form1; + _ + "sa" => mkN061 form1; + _ + "ma" => mkN061 form1; + _ + "ba" => mkN061 form1; + _ + "ib" => mkN007 form1; + _ + "nb" => mkN007 form1; + _ + "ab" => mkN059 form1; + _ + "ùb" => mkN023 form1; + _ + "òb" => mkN033 form1; + _ + "ob" => mkN082 form1; + _ + "rb" => mkN082 form1; + _ + "eò" => mkN009 form1; + _ + "lò" => mkN143 form1; + _ + "nò" => mkN085 form1; + _ + "lf" => mkN009 form1; + _ + "of" => mkN021 form1; + _ + "uf" => mkN084 form1; + _ + "af" => mkN230 form1; + _ + "no" => mkN085 form1; + _ + "go" => mkN085 form1; + _ + "to" => mkN085 form1; + _ + "n" => mkN002 form1; + _ + "s" => mkN001 form1; + _ + "c" => mkN007 form1; + _ + "l" => mkN002 form1; + _ + "m" => mkN001 form1; + _ + "r" => mkN028 form1; + _ + "d" => mkN004 form1; + _ + "g" => mkN030 form1; + _ + "h" => mkN017 form1; + _ + "p" => mkN007 form1; + _ + "t" => mkN007 form1; + _ + "e" => mkN009 form1; + _ + "a" => mkN061 form1; + _ + "è" => mkN004 form1; + _ + "b" => mkN082 form1; + _ + "i" => mkN009 form1; + _ + "ò" => mkN009 form1; + _ + "ù" => mkN009 form1; + _ + "f" => mkN009 form1; + _ + "o" => mkN085 form1; + _ + "à" => mkN143 form1; + _ => error "Cannot find an inflection rule" + } ; + + reg2N : Str -> Str -> LinN -- nom;indef;sg gen;indef;sg + = \form1, form2 -> case of { + <_ + "eas", _ + "his"> => mkN001 form1; + <_ + "eas", _ + "ris"> => mkN001 form1; + <_ + "eas", _ + "eis"> => mkN011 form1; + <_ + "eas", _ + "ise"> => mkN183 form1; + <_ + "eam", _ + "him"> => mkN001 form1; + <_ + "eam", _ + "eim"> => mkN011 form1; + <_ + "ear", _ + "hir"> => mkN001 form1; + <_ + "ear", _ + "eir"> => mkN011 form1; + <_ + "eamh", _ + "imh"> => mkN011 form1; + <_ + "amh", _ + "mha"> => mkN059 form1; + <_ + "amh", _ + "mhe"> => mkN030 form1; + <_ + "oll", _ + "ill"> => mkN047 form1; + <_ + "eag", _ + "eig"> => mkN043 form1; + <_ + "eag", _ + "ige"> => mkN019 form1; + <_ + "eal", _ + "gil"> => mkN002 form1; + <_ + "eal", _ + "eil"> => mkN011 form1; + <_ + "rom", _ + "oim"> => mkN001 form1; + <_ + "rom", _ + "uim"> => mkN069 form1; + <_ + "cal", _ + "ail"> => mkN131 form1; + <_ + "ean", _ + "ein"> => mkN011 form1; + <_ + "eud", _ + "òid"> => mkN080 form1; + <_ + "eud", _ + "eid"> => mkN176 form1; + <_ + "eabh", _ + "ibh"> => mkN011 form1; + <_ + "alg", _ + "lge"> => mkN019 form1; + <_ + "alg", _ + "ilg"> => mkN043 form1; + <_ + "ìon", _ + "ona"> => mkN059 form1; + <_ + "alt", _ + "ilt"> => mkN067 form1; + <_ + "eas", _ + "is"> => mkN011 form1; + <_ + "eas", _ + "as"> => mkN009 form1; + <_ + "eas", _ + "se"> => mkN183 form1; + <_ + "eam", _ + "im"> => mkN011 form1; + <_ + "ear", _ + "ir"> => mkN011 form1; + <_ + "ear", _ + "ar"> => mkN009 form1; + <_ + "eamh", _ + "mh"> => mkN011 form1; + <_ + "amh", _ + "ha"> => mkN059 form1; + <_ + "amh", _ + "he"> => mkN030 form1; + <_ + "oll", _ + "ll"> => mkN047 form1; + <_ + "eag", _ + "ig"> => mkN043 form1; + <_ + "eag", _ + "ge"> => mkN019 form1; + <_ + "eal", _ + "il"> => mkN011 form1; + <_ + "rom", _ + "im"> => mkN069 form1; + <_ + "cal", _ + "il"> => mkN131 form1; + <_ + "ean", _ + "an"> => mkN009 form1; + <_ + "ean", _ + "in"> => mkN011 form1; + <_ + "eud", _ + "ud"> => mkN009 form1; + <_ + "eud", _ + "id"> => mkN080 form1; + <_ + "eabh", _ + "bh"> => mkN011 form1; + <_ + "alg", _ + "ge"> => mkN019 form1; + <_ + "alg", _ + "lg"> => mkN043 form1; + <_ + "ìon", _ + "na"> => mkN059 form1; + <_ + "alt", _ + "lt"> => mkN067 form1; + <_ + "eas", _ + "s"> => mkN011 form1; + <_ + "eas", _ + "e"> => mkN183 form1; + <_ + "eas", _ + "a"> => mkN059 form1; + <_ + "eam", _ + "m"> => mkN011 form1; + <_ + "ear", _ + "r"> => mkN011 form1; + <_ + "eamh", _ + "h"> => mkN011 form1; + <_ + "amh", _ + "a"> => mkN059 form1; + <_ + "amh", _ + "e"> => mkN030 form1; + <_ + "oll", _ + "l"> => mkN047 form1; + <_ + "eag", _ + "g"> => mkN043 form1; + <_ + "eag", _ + "e"> => mkN019 form1; + <_ + "eal", _ + "l"> => mkN011 form1; + <_ + "eal", _ + "a"> => mkN082 form1; + <_ + "rom", _ + "m"> => mkN069 form1; + <_ + "cal", _ + "l"> => mkN131 form1; + <_ + "òrn", _ + "n"> => mkN113 form1; + <_ + "ean", _ + "n"> => mkN011 form1; + <_ + "eud", _ + "d"> => mkN009 form1; + <_ + "eud", _ + "a"> => mkN059 form1; + <_ + "eabh", _ + "h"> => mkN011 form1; + <_ + "earg", _ + "g"> => mkN011 form1; + <_ + "arg", _ + "e"> => mkN019 form1; + <_ + "alg", _ + "e"> => mkN019 form1; + <_ + "alg", _ + "g"> => mkN043 form1; + <_ + "ìon", _ + "n"> => mkN047 form1; + <_ + "ìon", _ + "a"> => mkN059 form1; + <_ + "alt", _ + "t"> => mkN067 form1; + <_ + "alt", _ + "a"> => mkN082 form1; + <_ + "òil", _ + "a"> => mkN106 form1; + <_ + "àrr", _ + "a"> => mkN110 form1; + <_ + "òrd", _ + "d"> => mkN113 form1; + <_ + "eòl", _ + "l"> => mkN132 form1; + <_ + "eòl", _ + "a"> => mkN021 form1; + <_ + "ar", _ + "air"> => mkN001 form1; + <_ + "ar", _ + "uir"> => mkN069 form1; + <_ + "òl", _ + "òil"> => mkN001 form1; + <_ + "om", _ + "uim"> => mkN089 form1; + <_ + "ar", _ + "ir"> => mkN001 form1; + <_ + "ul", _ + "il"> => mkN002 form1; + <_ + "ul", _ + "ul"> => mkN009 form1; + <_ + "òl", _ + "il"> => mkN002 form1; + <_ + "om", _ + "im"> => mkN089 form1; + <_ + "ar", _ + "r"> => mkN001 form1; + <_ + "ul", _ + "l"> => mkN002 form1; + <_ + "ul", _ + "a"> => mkN021 form1; + <_ + "òl", _ + "l"> => mkN002 form1; + <_ + "òl", _ + "s"> => mkN112 form1; + <_ + "om", _ + "a"> => mkN082 form1; + <_ + "om", _ + "m"> => mkN089 form1; + <_ + "all", _ + "ill"> => mkN001 form1; + <_ + "asg", _ + "isg"> => mkN002 form1; + <_ + "adh", _ + "idh"> => mkN017 form1; + <_ + "adh", _ + "adh"> => mkN009 form1; + <_ + "adh", _ + "dha"> => mkN059 form1; + <_ + "han", _ + "ain"> => mkN002 form1; + <_ + "omh", _ + "mha"> => mkN021 form1; + <_ + "san", _ + "ain"> => mkN002 form1; + <_ + "can", _ + "ain"> => mkN002 form1; + <_ + "ban", _ + "ain"> => mkN001 form1; + <_ + "tan", _ + "ain"> => mkN001 form1; + <_ + "dan", _ + "ain"> => mkN002 form1; + <_ + "ras", _ + "ais"> => mkN001 form1; + <_ + "arc", _ + "irc"> => mkN002 form1; + <_ + "arc", _ + "arc"> => mkN004 form1; + <_ + "arc", _ + "rce"> => mkN019 form1; + <_ + "ran", _ + "ain"> => mkN002 form1; + <_ + "man", _ + "ain"> => mkN002 form1; + <_ + "làr", _ + "àir"> => mkN002 form1; + <_ + "aon", _ + "oin"> => mkN002 form1; + <_ + "cas", _ + "ais"> => mkN002 form1; + <_ + "gas", _ + "ais"> => mkN002 form1; + <_ + "lan", _ + "ain"> => mkN001 form1; + <_ + "hal", _ + "ail"> => mkN002 form1; + <_ + "bal", _ + "ail"> => mkN002 form1; + <_ + "has", _ + "ais"> => mkN001 form1; + <_ + "uan", _ + "ain"> => mkN002 form1; + <_ + "das", _ + "ais"> => mkN002 form1; + <_ + "ùrd", _ + "ird"> => mkN002 form1; + <_ + "sal", _ + "ail"> => mkN002 form1; + <_ + "obh", _ + "ibh"> => mkN002 form1; + <_ + "aol", _ + "oil"> => mkN002 form1; + <_ + "ath", _ + "ith"> => mkN002 form1; + <_ + "ath", _ + "tha"> => mkN059 form1; + <_ + "ath", _ + "the"> => mkN133 form1; + <_ + "nan", _ + "ain"> => mkN002 form1; + <_ + "gal", _ + "ail"> => mkN002 form1; + <_ + "ort", _ + "irt"> => mkN002 form1; + <_ + "ort", _ + "rta"> => mkN021 form1; + <_ + "rbh", _ + "rbh"> => mkN002 form1; + <_ + "art", _ + "irt"> => mkN001 form1; + <_ + "àmh", _ + "imh"> => mkN002 form1; + <_ + "rod", _ + "oid"> => mkN002 form1; + <_ + "rod", _ + "uid"> => mkN069 form1; + <_ + "àrd", _ + "ird"> => mkN001 form1; + <_ + "nas", _ + "ais"> => mkN002 form1; + <_ + "las", _ + "ais"> => mkN002 form1; + <_ + "ram", _ + "aim"> => mkN001 form1; + <_ + "dal", _ + "ail"> => mkN002 form1; + <_ + "tas", _ + "ais"> => mkN001 form1; + <_ + "ual", _ + "ail"> => mkN001 form1; + <_ + "ths", _ + "ths"> => mkN002 form1; + <_ + "ubh", _ + "ibh"> => mkN002 form1; + <_ + "àth", _ + "ith"> => mkN001 form1; + <_ + "àth", _ + "tha"> => mkN059 form1; + <_ + "ail", _ + "ail"> => mkN025 form1; + <_ + "ail", _ + "ile"> => mkN007 form1; + <_ + "chd", _ + "chd"> => mkN004 form1; + <_ + "chd", _ + "hda"> => mkN059 form1; + <_ + "ain", _ + "ain"> => mkN004 form1; + <_ + "ain", _ + "ine"> => mkN007 form1; + <_ + "ais", _ + "ais"> => mkN025 form1; + <_ + "ais", _ + "ise"> => mkN007 form1; + <_ + "bha", _ + "bha"> => mkN004 form1; + <_ + "oca", _ + "oca"> => mkN004 form1; + <_ + "ile", _ + "ile"> => mkN009 form1; + <_ + "ste", _ + "ste"> => mkN004 form1; + <_ + "rle", _ + "rle"> => mkN004 form1; + <_ + "hse", _ + "hse"> => mkN004 form1; + <_ + "irt", _ + "rte"> => mkN007 form1; + <_ + "irt", _ + "irt"> => mkN025 form1; + <_ + "hle", _ + "hle"> => mkN009 form1; + <_ + "ist", _ + "ist"> => mkN028 form1; + <_ + "ing", _ + "nge"> => mkN007 form1; + <_ + "isg", _ + "isg"> => mkN028 form1; + <_ + "igh", _ + "ghe"> => mkN007 form1; + <_ + "igh", _ + "igh"> => mkN028 form1; + <_ + "uil", _ + "ile"> => mkN007 form1; + <_ + "lin", _ + "ine"> => mkN007 form1; + <_ + "ird", _ + "rde"> => mkN007 form1; + <_ + "nnt", _ + "nte"> => mkN007 form1; + <_ + "imh", _ + "mhe"> => mkN007 form1; + <_ + "irm", _ + "rme"> => mkN007 form1; + <_ + "air", _ + "ire"> => mkN010 form1; + <_ + "air", _ + "air"> => mkN028 form1; + <_ + "air", _ + "ach"> => mkN026 form1; + <_ + "aic", _ + "aic"> => mkN009 form1; + <_ + "ìth", _ + "the"> => mkN007 form1; + <_ + "ill", _ + "lle"> => mkN007 form1; + <_ + "eis", _ + "eis"> => mkN009 form1; + <_ + "oin", _ + "ine"> => mkN007 form1; + <_ + "eir", _ + "ire"> => mkN007 form1; + <_ + "àin", _ + "ine"> => mkN007 form1; + <_ + "eil", _ + "ile"> => mkN007 form1; + <_ + "eil", _ + "eil"> => mkN009 form1; + <_ + "oil", _ + "ile"> => mkN007 form1; + <_ + "bag", _ + "aig"> => mkN023 form1; + <_ + "ard", _ + "ird"> => mkN001 form1; + <_ + "ang", _ + "ing"> => mkN001 form1; + <_ + "ang", _ + "nge"> => mkN019 form1; + <_ + "ant", _ + "int"> => mkN001 form1; + <_ + "ant", _ + "ant"> => mkN009 form1; + <_ + "odh", _ + "idh"> => mkN001 form1; + <_ + "uth", _ + "ith"> => mkN001 form1; + <_ + "uth", _ + "tha"> => mkN059 form1; + <_ + "osg", _ + "isg"> => mkN001 form1; + <_ + "osg", _ + "osg"> => mkN009 form1; + <_ + "lac", _ + "aic"> => mkN001 form1; + <_ + "ost", _ + "ost"> => mkN009 form1; + <_ + "ost", _ + "ist"> => mkN089 form1; + <_ + "àdh", _ + "àdh"> => mkN009 form1; + <_ + "àdh", _ + "idh"> => mkN017 form1; + <_ + "eum", _ + "uma"> => mkN059 form1; + <_ + "hag", _ + "aig"> => mkN023 form1; + <_ + "hag", _ + "ige"> => mkN030 form1; + <_ + "sag", _ + "aig"> => mkN023 form1; + <_ + "nag", _ + "ige"> => mkN030 form1; + <_ + "agh", _ + "igh"> => mkN023 form1; + <_ + "agh", _ + "ghe"> => mkN036 form1; + <_ + "agh", _ + "gha"> => mkN059 form1; + <_ + "ròg", _ + "ige"> => mkN030 form1; + <_ + "ilm", _ + "lme"> => mkN040 form1; + <_ + "rna", _ + "rna"> => mkN046 form1; + <_ + "nta", _ + "nta"> => mkN046 form1; + <_ + "rra", _ + "rra"> => mkN046 form1; + <_ + "lta", _ + "lta"> => mkN046 form1; + <_ + "sna", _ + "sna"> => mkN057 form1; + <_ + "hla", _ + "hla"> => mkN057 form1; + <_ + "sta", _ + "sta"> => mkN057 form1; + <_ + "uga", _ + "uga"> => mkN057 form1; + <_ + "iob", _ + "oba"> => mkN059 form1; + <_ + "eab", _ + "aba"> => mkN059 form1; + <_ + "arr", _ + "rra"> => mkN059 form1; + <_ + "eus", _ + "usa"> => mkN082 form1; + <_ + "oth", _ + "tha"> => mkN059 form1; + <_ + "orc", _ + "irc"> => mkN089 form1; + <_ + "eur", _ + "ura"> => mkN059 form1; + <_ + "eur", _ + "òir"> => mkN080 form1; + <_ + "rsa", _ + "rsa"> => mkN088 form1; + <_ + "òla", _ + "òla"> => mkN088 form1; + <_ + "mha", _ + "mha"> => mkN088 form1; + <_ + "lla", _ + "lla"> => mkN046 form1; + <_ + "all", _ + "ll"> => mkN001 form1; + <_ + "asg", _ + "sg"> => mkN002 form1; + <_ + "adh", _ + "dh"> => mkN017 form1; + <_ + "adh", _ + "ha"> => mkN059 form1; + <_ + "han", _ + "in"> => mkN002 form1; + <_ + "omh", _ + "ha"> => mkN021 form1; + <_ + "san", _ + "in"> => mkN002 form1; + <_ + "can", _ + "in"> => mkN002 form1; + <_ + "ban", _ + "in"> => mkN001 form1; + <_ + "tan", _ + "in"> => mkN001 form1; + <_ + "dan", _ + "in"> => mkN002 form1; + <_ + "ras", _ + "is"> => mkN001 form1; + <_ + "arc", _ + "rc"> => mkN002 form1; + <_ + "arc", _ + "ce"> => mkN019 form1; + <_ + "ran", _ + "in"> => mkN002 form1; + <_ + "man", _ + "in"> => mkN002 form1; + <_ + "làr", _ + "ir"> => mkN002 form1; + <_ + "aon", _ + "in"> => mkN002 form1; + <_ + "cas", _ + "is"> => mkN002 form1; + <_ + "gas", _ + "is"> => mkN002 form1; + <_ + "lan", _ + "in"> => mkN001 form1; + <_ + "hal", _ + "il"> => mkN002 form1; + <_ + "bal", _ + "il"> => mkN002 form1; + <_ + "has", _ + "is"> => mkN001 form1; + <_ + "uan", _ + "in"> => mkN002 form1; + <_ + "das", _ + "is"> => mkN002 form1; + <_ + "ùrd", _ + "rd"> => mkN002 form1; + <_ + "sal", _ + "il"> => mkN002 form1; + <_ + "obh", _ + "bh"> => mkN002 form1; + <_ + "aol", _ + "il"> => mkN002 form1; + <_ + "ath", _ + "th"> => mkN002 form1; + <_ + "ath", _ + "ha"> => mkN059 form1; + <_ + "ath", _ + "he"> => mkN133 form1; + <_ + "nan", _ + "in"> => mkN002 form1; + <_ + "gal", _ + "il"> => mkN002 form1; + <_ + "ort", _ + "rt"> => mkN002 form1; + <_ + "ort", _ + "ta"> => mkN021 form1; + <_ + "rbh", _ + "bh"> => mkN002 form1; + <_ + "art", _ + "rt"> => mkN001 form1; + <_ + "àmh", _ + "mh"> => mkN002 form1; + <_ + "rod", _ + "id"> => mkN002 form1; + <_ + "àrd", _ + "rd"> => mkN001 form1; + <_ + "nas", _ + "is"> => mkN002 form1; + <_ + "las", _ + "is"> => mkN002 form1; + <_ + "las", _ + "as"> => mkN084 form1; + <_ + "ram", _ + "im"> => mkN001 form1; + <_ + "dal", _ + "il"> => mkN002 form1; + <_ + "tas", _ + "is"> => mkN001 form1; + <_ + "ual", _ + "il"> => mkN001 form1; + <_ + "ths", _ + "hs"> => mkN002 form1; + <_ + "ubh", _ + "bh"> => mkN002 form1; + <_ + "àth", _ + "th"> => mkN001 form1; + <_ + "àth", _ + "ha"> => mkN059 form1; + <_ + "ail", _ + "il"> => mkN025 form1; + <_ + "ail", _ + "le"> => mkN007 form1; + <_ + "chd", _ + "hd"> => mkN004 form1; + <_ + "chd", _ + "da"> => mkN059 form1; + <_ + "ain", _ + "in"> => mkN004 form1; + <_ + "ain", _ + "ne"> => mkN007 form1; + <_ + "ais", _ + "is"> => mkN025 form1; + <_ + "ais", _ + "se"> => mkN007 form1; + <_ + "ite", _ + "te"> => mkN004 form1; + <_ + "bha", _ + "ha"> => mkN004 form1; + <_ + "oca", _ + "ca"> => mkN004 form1; + <_ + "ile", _ + "le"> => mkN009 form1; + <_ + "ste", _ + "te"> => mkN004 form1; + <_ + "rle", _ + "le"> => mkN004 form1; + <_ + "hse", _ + "se"> => mkN004 form1; + <_ + "irt", _ + "te"> => mkN007 form1; + <_ + "irt", _ + "rt"> => mkN025 form1; + <_ + "hle", _ + "le"> => mkN009 form1; + <_ + "ist", _ + "st"> => mkN028 form1; + <_ + "ing", _ + "ge"> => mkN007 form1; + <_ + "isg", _ + "sg"> => mkN028 form1; + <_ + "igh", _ + "he"> => mkN007 form1; + <_ + "igh", _ + "gh"> => mkN028 form1; + <_ + "uil", _ + "le"> => mkN007 form1; + <_ + "lin", _ + "ne"> => mkN007 form1; + <_ + "ird", _ + "de"> => mkN007 form1; + <_ + "nnt", _ + "te"> => mkN007 form1; + <_ + "imh", _ + "he"> => mkN007 form1; + <_ + "irm", _ + "me"> => mkN007 form1; + <_ + "air", _ + "re"> => mkN010 form1; + <_ + "air", _ + "ir"> => mkN028 form1; + <_ + "air", _ + "ch"> => mkN026 form1; + <_ + "aic", _ + "ic"> => mkN009 form1; + <_ + "ìth", _ + "he"> => mkN007 form1; + <_ + "ill", _ + "le"> => mkN007 form1; + <_ + "eis", _ + "is"> => mkN009 form1; + <_ + "oin", _ + "ne"> => mkN007 form1; + <_ + "eir", _ + "re"> => mkN007 form1; + <_ + "àin", _ + "ne"> => mkN007 form1; + <_ + "eil", _ + "le"> => mkN007 form1; + <_ + "eil", _ + "il"> => mkN009 form1; + <_ + "oil", _ + "le"> => mkN007 form1; + <_ + "bag", _ + "ig"> => mkN023 form1; + <_ + "ard", _ + "rd"> => mkN001 form1; + <_ + "ang", _ + "ng"> => mkN001 form1; + <_ + "ang", _ + "ge"> => mkN019 form1; + <_ + "ant", _ + "nt"> => mkN001 form1; + <_ + "odh", _ + "dh"> => mkN001 form1; + <_ + "uth", _ + "th"> => mkN001 form1; + <_ + "uth", _ + "ha"> => mkN059 form1; + <_ + "osg", _ + "sg"> => mkN001 form1; + <_ + "lac", _ + "ic"> => mkN001 form1; + <_ + "ost", _ + "st"> => mkN009 form1; + <_ + "ian", _ + "an"> => mkN009 form1; + <_ + "àdh", _ + "dh"> => mkN017 form1; + <_ + "eum", _ + "ma"> => mkN059 form1; + <_ + "hag", _ + "ig"> => mkN023 form1; + <_ + "hag", _ + "ge"> => mkN030 form1; + <_ + "sag", _ + "ig"> => mkN023 form1; + <_ + "nag", _ + "ge"> => mkN030 form1; + <_ + "agh", _ + "gh"> => mkN023 form1; + <_ + "agh", _ + "he"> => mkN036 form1; + <_ + "agh", _ + "ha"> => mkN059 form1; + <_ + "ròg", _ + "ge"> => mkN030 form1; + <_ + "ilm", _ + "me"> => mkN040 form1; + <_ + "rna", _ + "na"> => mkN046 form1; + <_ + "nta", _ + "ta"> => mkN046 form1; + <_ + "rra", _ + "ra"> => mkN046 form1; + <_ + "lta", _ + "ta"> => mkN046 form1; + <_ + "sna", _ + "na"> => mkN057 form1; + <_ + "hla", _ + "la"> => mkN057 form1; + <_ + "sta", _ + "ta"> => mkN057 form1; + <_ + "uga", _ + "ga"> => mkN057 form1; + <_ + "iob", _ + "ba"> => mkN059 form1; + <_ + "eab", _ + "ba"> => mkN059 form1; + <_ + "arr", _ + "ra"> => mkN059 form1; + <_ + "eus", _ + "sa"> => mkN082 form1; + <_ + "oth", _ + "ha"> => mkN059 form1; + <_ + "orc", _ + "rc"> => mkN089 form1; + <_ + "eur", _ + "ra"> => mkN059 form1; + <_ + "eur", _ + "ir"> => mkN080 form1; + <_ + "rsa", _ + "sa"> => mkN088 form1; + <_ + "òla", _ + "la"> => mkN088 form1; + <_ + "mha", _ + "ha"> => mkN088 form1; + <_ + "lla", _ + "la"> => mkN046 form1; + <_ + "all", _ + "l"> => mkN001 form1; + <_ + "all", _ + "a"> => mkN059 form1; + <_ + "all", _ + "e"> => mkN133 form1; + <_ + "asg", _ + "g"> => mkN002 form1; + <_ + "asg", _ + "a"> => mkN059 form1; + <_ + "adh", _ + "h"> => mkN017 form1; + <_ + "adh", _ + "a"> => mkN059 form1; + <_ + "han", _ + "n"> => mkN002 form1; + <_ + "omh", _ + "h"> => mkN002 form1; + <_ + "omh", _ + "a"> => mkN021 form1; + <_ + "san", _ + "n"> => mkN002 form1; + <_ + "can", _ + "n"> => mkN002 form1; + <_ + "col", _ + "l"> => mkN002 form1; + <_ + "col", _ + "a"> => mkN059 form1; + <_ + "ban", _ + "n"> => mkN001 form1; + <_ + "tan", _ + "n"> => mkN001 form1; + <_ + "dan", _ + "n"> => mkN002 form1; + <_ + "ras", _ + "s"> => mkN001 form1; + <_ + "ras", _ + "e"> => mkN072 form1; + <_ + "arc", _ + "c"> => mkN002 form1; + <_ + "arc", _ + "e"> => mkN019 form1; + <_ + "ran", _ + "n"> => mkN002 form1; + <_ + "man", _ + "n"> => mkN002 form1; + <_ + "làr", _ + "r"> => mkN002 form1; + <_ + "tal", _ + "l"> => mkN002 form1; + <_ + "aon", _ + "n"> => mkN002 form1; + <_ + "cas", _ + "s"> => mkN002 form1; + <_ + "cas", _ + "e"> => mkN072 form1; + <_ + "son", _ + "n"> => mkN002 form1; + <_ + "gas", _ + "s"> => mkN002 form1; + <_ + "lan", _ + "n"> => mkN001 form1; + <_ + "hal", _ + "l"> => mkN002 form1; + <_ + "bal", _ + "l"> => mkN002 form1; + <_ + "has", _ + "s"> => mkN001 form1; + <_ + "uan", _ + "n"> => mkN002 form1; + <_ + "das", _ + "s"> => mkN002 form1; + <_ + "ùrd", _ + "d"> => mkN002 form1; + <_ + "sal", _ + "l"> => mkN002 form1; + <_ + "obh", _ + "h"> => mkN002 form1; + <_ + "obh", _ + "e"> => mkN098 form1; + <_ + "aol", _ + "l"> => mkN002 form1; + <_ + "ath", _ + "h"> => mkN002 form1; + <_ + "ath", _ + "a"> => mkN059 form1; + <_ + "ath", _ + "e"> => mkN133 form1; + <_ + "nan", _ + "n"> => mkN002 form1; + <_ + "gal", _ + "l"> => mkN002 form1; + <_ + "gal", _ + "a"> => mkN059 form1; + <_ + "ort", _ + "t"> => mkN002 form1; + <_ + "ort", _ + "a"> => mkN021 form1; + <_ + "aor", _ + "r"> => mkN002 form1; + <_ + "rbh", _ + "h"> => mkN002 form1; + <_ + "art", _ + "t"> => mkN001 form1; + <_ + "ult", _ + "t"> => mkN002 form1; + <_ + "àmh", _ + "h"> => mkN002 form1; + <_ + "àmh", _ + "e"> => mkN263 form1; + <_ + "rod", _ + "d"> => mkN002 form1; + <_ + "tùr", _ + "r"> => mkN002 form1; + <_ + "àrd", _ + "d"> => mkN001 form1; + <_ + "nas", _ + "s"> => mkN002 form1; + <_ + "las", _ + "s"> => mkN002 form1; + <_ + "las", _ + "e"> => mkN098 form1; + <_ + "ram", _ + "m"> => mkN001 form1; + <_ + "lam", _ + "m"> => mkN002 form1; + <_ + "dal", _ + "l"> => mkN002 form1; + <_ + "bon", _ + "n"> => mkN002 form1; + <_ + "los", _ + "s"> => mkN002 form1; + <_ + "uas", _ + "s"> => mkN002 form1; + <_ + "uas", _ + "e"> => mkN030 form1; + <_ + "tas", _ + "s"> => mkN001 form1; + <_ + "ual", _ + "l"> => mkN001 form1; + <_ + "gur", _ + "r"> => mkN002 form1; + <_ + "ths", _ + "s"> => mkN002 form1; + <_ + "ubh", _ + "h"> => mkN002 form1; + <_ + "àth", _ + "h"> => mkN001 form1; + <_ + "àth", _ + "a"> => mkN059 form1; + <_ + "ail", _ + "l"> => mkN025 form1; + <_ + "ail", _ + "e"> => mkN007 form1; + <_ + "ail", _ + "h"> => mkN055 form1; + <_ + "lse", _ + "e"> => mkN004 form1; + <_ + "chd", _ + "d"> => mkN004 form1; + <_ + "chd", _ + "a"> => mkN059 form1; + <_ + "ain", _ + "n"> => mkN004 form1; + <_ + "ain", _ + "e"> => mkN007 form1; + <_ + "ain", _ + "a"> => mkN106 form1; + <_ + "ais", _ + "s"> => mkN025 form1; + <_ + "ais", _ + "e"> => mkN007 form1; + <_ + "ite", _ + "e"> => mkN004 form1; + <_ + "bha", _ + "a"> => mkN004 form1; + <_ + "oca", _ + "a"> => mkN004 form1; + <_ + "àis", _ + "s"> => mkN004 form1; + <_ + "àis", _ + "e"> => mkN010 form1; + <_ + "nte", _ + "e"> => mkN004 form1; + <_ + "ìde", _ + "e"> => mkN004 form1; + <_ + "ile", _ + "e"> => mkN009 form1; + <_ + "ste", _ + "e"> => mkN004 form1; + <_ + "rle", _ + "e"> => mkN004 form1; + <_ + "rle", _ + "n"> => mkN235 form1; + <_ + "ìre", _ + "e"> => mkN004 form1; + <_ + "hse", _ + "e"> => mkN004 form1; + <_ + "mag", _ + "g"> => mkN023 form1; + <_ + "mag", _ + "e"> => mkN030 form1; + <_ + "irt", _ + "e"> => mkN007 form1; + <_ + "irt", _ + "t"> => mkN025 form1; + <_ + "ilt", _ + "e"> => mkN007 form1; + <_ + "ilt", _ + "t"> => mkN028 form1; + <_ + "ime", _ + "e"> => mkN150 form1; + <_ + "òin", _ + "e"> => mkN007 form1; + <_ + "dag", _ + "g"> => mkN023 form1; + <_ + "dag", _ + "e"> => mkN030 form1; + <_ + "ise", _ + "e"> => mkN150 form1; + <_ + "oir", _ + "e"> => mkN007 form1; + <_ + "oir", _ + "h"> => mkN055 form1; + <_ + "irc", _ + "e"> => mkN007 form1; + <_ + "hle", _ + "e"> => mkN009 form1; + <_ + "eid", _ + "e"> => mkN007 form1; + <_ + "eit", _ + "e"> => mkN007 form1; + <_ + "ist", _ + "e"> => mkN007 form1; + <_ + "ist", _ + "t"> => mkN028 form1; + <_ + "nir", _ + "e"> => mkN007 form1; + <_ + "ing", _ + "e"> => mkN007 form1; + <_ + "ing", _ + "g"> => mkN009 form1; + <_ + "isg", _ + "e"> => mkN007 form1; + <_ + "isg", _ + "g"> => mkN028 form1; + <_ + "ris", _ + "e"> => mkN007 form1; + <_ + "ris", _ + "s"> => mkN025 form1; + <_ + "ois", _ + "e"> => mkN007 form1; + <_ + "ois", _ + "s"> => mkN028 form1; + <_ + "igh", _ + "e"> => mkN007 form1; + <_ + "igh", _ + "h"> => mkN028 form1; + <_ + "ith", _ + "e"> => mkN007 form1; + <_ + "ith", _ + "h"> => mkN025 form1; + <_ + "uil", _ + "e"> => mkN007 form1; + <_ + "òid", _ + "e"> => mkN007 form1; + <_ + "lin", _ + "e"> => mkN007 form1; + <_ + "àid", _ + "e"> => mkN007 form1; + <_ + "ilp", _ + "e"> => mkN007 form1; + <_ + "ilp", _ + "p"> => mkN057 form1; + <_ + "ird", _ + "e"> => mkN007 form1; + <_ + "nnt", _ + "e"> => mkN007 form1; + <_ + "nnt", _ + "a"> => mkN021 form1; + <_ + "imh", _ + "e"> => mkN007 form1; + <_ + "imh", _ + "h"> => mkN028 form1; + <_ + "oit", _ + "e"> => mkN007 form1; + <_ + "irm", _ + "e"> => mkN007 form1; + <_ + "àil", _ + "e"> => mkN007 form1; + <_ + "àil", _ + "h"> => mkN155 form1; + <_ + "èir", _ + "e"> => mkN007 form1; + <_ + "èis", _ + "e"> => mkN007 form1; + <_ + "sir", _ + "e"> => mkN007 form1; + <_ + "ùis", _ + "e"> => mkN007 form1; + <_ + "air", _ + "e"> => mkN010 form1; + <_ + "air", _ + "r"> => mkN028 form1; + <_ + "air", _ + "h"> => mkN026 form1; + <_ + "uid", _ + "e"> => mkN007 form1; + <_ + "int", _ + "e"> => mkN007 form1; + <_ + "aic", _ + "e"> => mkN007 form1; + <_ + "aic", _ + "c"> => mkN009 form1; + <_ + "ìth", _ + "e"> => mkN007 form1; + <_ + "ill", _ + "e"> => mkN007 form1; + <_ + "ill", _ + "l"> => mkN028 form1; + <_ + "eis", _ + "e"> => mkN007 form1; + <_ + "eis", _ + "s"> => mkN009 form1; + <_ + "oid", _ + "e"> => mkN007 form1; + <_ + "rig", _ + "e"> => mkN007 form1; + <_ + "oin", _ + "e"> => mkN007 form1; + <_ + "irp", _ + "e"> => mkN007 form1; + <_ + "tir", _ + "e"> => mkN007 form1; + <_ + "tir", _ + "r"> => mkN028 form1; + <_ + "tir", _ + "h"> => mkN254 form1; + <_ + "lig", _ + "e"> => mkN007 form1; + <_ + "eir", _ + "e"> => mkN007 form1; + <_ + "eir", _ + "r"> => mkN028 form1; + <_ + "hir", _ + "e"> => mkN007 form1; + <_ + "àin", _ + "e"> => mkN007 form1; + <_ + "eil", _ + "e"> => mkN007 form1; + <_ + "eil", _ + "l"> => mkN009 form1; + <_ + "oil", _ + "e"> => mkN007 form1; + <_ + "oil", _ + "l"> => mkN028 form1; + <_ + "ùir", _ + "e"> => mkN007 form1; + <_ + "ait", _ + "e"> => mkN007 form1; + <_ + "ait", _ + "t"> => mkN028 form1; + <_ + "mas", _ + "s"> => mkN001 form1; + <_ + "gam", _ + "m"> => mkN001 form1; + <_ + "bag", _ + "g"> => mkN023 form1; + <_ + "bag", _ + "e"> => mkN030 form1; + <_ + "ard", _ + "d"> => mkN001 form1; + <_ + "nal", _ + "l"> => mkN001 form1; + <_ + "ang", _ + "g"> => mkN001 form1; + <_ + "ang", _ + "e"> => mkN019 form1; + <_ + "ant", _ + "t"> => mkN001 form1; + <_ + "ant", _ + "a"> => mkN059 form1; + <_ + "odh", _ + "h"> => mkN001 form1; + <_ + "odh", _ + "a"> => mkN059 form1; + <_ + "uth", _ + "h"> => mkN001 form1; + <_ + "uth", _ + "a"> => mkN059 form1; + <_ + "osg", _ + "g"> => mkN001 form1; + <_ + "ros", _ + "s"> => mkN001 form1; + <_ + "lac", _ + "c"> => mkN001 form1; + <_ + "lac", _ + "e"> => mkN030 form1; + <_ + "hna", _ + "a"> => mkN057 form1; + <_ + "àta", _ + "a"> => mkN061 form1; + <_ + "lbh", _ + "e"> => mkN010 form1; + <_ + "lbh", _ + "a"> => mkN059 form1; + <_ + "lbh", _ + "h"> => mkN089 form1; + <_ + "aim", _ + "e"> => mkN010 form1; + <_ + "aim", _ + "m"> => mkN028 form1; + <_ + "ada", _ + "a"> => mkN061 form1; + <_ + "ibh", _ + "h"> => mkN009 form1; + <_ + "ibh", _ + "e"> => mkN010 form1; + <_ + "ost", _ + "t"> => mkN009 form1; + <_ + "ì", _ + "ì"> => mkN009 form1; + <_ + "ì", _ + "h"> => mkN289 form1; + <_ + "iog", _ + "g"> => mkN009 form1; + <_ + "iog", _ + "a"> => mkN059 form1; + <_ + "ian", _ + "n"> => mkN009 form1; + <_ + "ian", _ + "e"> => mkN133 form1; + <_ + "àdh", _ + "h"> => mkN017 form1; + <_ + "ugh", _ + "h"> => mkN017 form1; + <_ + "eum", _ + "a"> => mkN059 form1; + <_ + "eum", _ + "m"> => mkN176 form1; + <_ + "hag", _ + "g"> => mkN023 form1; + <_ + "hag", _ + "e"> => mkN030 form1; + <_ + "lag", _ + "g"> => mkN023 form1; + <_ + "lag", _ + "e"> => mkN030 form1; + <_ + "tag", _ + "g"> => mkN023 form1; + <_ + "tag", _ + "e"> => mkN030 form1; + <_ + "rag", _ + "g"> => mkN023 form1; + <_ + "rag", _ + "e"> => mkN030 form1; + <_ + "sag", _ + "g"> => mkN023 form1; + <_ + "sag", _ + "e"> => mkN030 form1; + <_ + "nag", _ + "g"> => mkN023 form1; + <_ + "nag", _ + "e"> => mkN030 form1; + <_ + "cag", _ + "g"> => mkN023 form1; + <_ + "cag", _ + "e"> => mkN030 form1; + <_ + "gag", _ + "g"> => mkN023 form1; + <_ + "gag", _ + "e"> => mkN030 form1; + <_ + "pòg", _ + "g"> => mkN023 form1; + <_ + "pòg", _ + "e"> => mkN030 form1; + <_ + "agh", _ + "h"> => mkN023 form1; + <_ + "agh", _ + "e"> => mkN036 form1; + <_ + "agh", _ + "a"> => mkN059 form1; + <_ + "pag", _ + "g"> => mkN023 form1; + <_ + "pag", _ + "e"> => mkN030 form1; + <_ + "ids", _ + "s"> => mkN025 form1; + <_ + "ròg", _ + "e"> => mkN030 form1; + <_ + "ilm", _ + "e"> => mkN040 form1; + <_ + "ilm", _ + "m"> => mkN061 form1; + <_ + "rna", _ + "a"> => mkN046 form1; + <_ + "nta", _ + "a"> => mkN046 form1; + <_ + "rra", _ + "a"> => mkN046 form1; + <_ + "lta", _ + "a"> => mkN046 form1; + <_ + "aca", _ + "a"> => mkN046 form1; + <_ + "sna", _ + "a"> => mkN057 form1; + <_ + "hla", _ + "a"> => mkN057 form1; + <_ + "hla", _ + "h"> => mkN267 form1; + <_ + "sta", _ + "a"> => mkN057 form1; + <_ + "uga", _ + "a"> => mkN057 form1; + <_ + "ona", _ + "a"> => mkN061 form1; + <_ + "mpa", _ + "a"> => mkN061 form1; + <_ + "iob", _ + "a"> => mkN059 form1; + <_ + "eab", _ + "a"> => mkN059 form1; + <_ + "eoc", _ + "a"> => mkN059 form1; + <_ + "loc", _ + "a"> => mkN059 form1; + <_ + "loc", _ + "c"> => mkN069 form1; + <_ + "ios", _ + "a"> => mkN059 form1; + <_ + "ios", _ + "e"> => mkN258 form1; + <_ + "arr", _ + "a"> => mkN059 form1; + <_ + "eus", _ + "a"> => mkN082 form1; + <_ + "ong", _ + "a"> => mkN059 form1; + <_ + "ong", _ + "e"> => mkN260 form1; + <_ + "ìos", _ + "a"> => mkN059 form1; + <_ + "ùth", _ + "a"> => mkN059 form1; + <_ + "oth", _ + "a"> => mkN059 form1; + <_ + "oth", _ + "e"> => mkN098 form1; + <_ + "eun", _ + "a"> => mkN059 form1; + <_ + "eun", _ + "n"> => mkN081 form1; + <_ + "orc", _ + "a"> => mkN059 form1; + <_ + "orc", _ + "c"> => mkN089 form1; + <_ + "eur", _ + "a"> => mkN059 form1; + <_ + "eur", _ + "r"> => mkN080 form1; + <_ + "aga", _ + "a"> => mkN061 form1; + <_ + "csa", _ + "a"> => mkN061 form1; + <_ + "hta", _ + "a"> => mkN061 form1; + <_ + "ota", _ + "a"> => mkN061 form1; + <_ + "èan", _ + "n"> => mkN061 form1; + <_ + "èan", _ + "a"> => mkN261 form1; + <_ + "rsa", _ + "a"> => mkN088 form1; + <_ + "ata", _ + "a"> => mkN088 form1; + <_ + "ìob", _ + "a"> => mkN082 form1; + <_ + "gha", _ + "a"> => mkN088 form1; + <_ + "òla", _ + "a"> => mkN088 form1; + <_ + "mha", _ + "a"> => mkN088 form1; + <_ + "lpa", _ + "a"> => mkN121 form1; + <_ + "rùn", _ + "n"> => mkN124 form1; + <_ + "lla", _ + "a"> => mkN046 form1; + <_ + "ac", _ + "ric"> => mkN001 form1; + <_ + "ac", _ + "aca"> => mkN021 form1; + <_ + "us", _ + "uis"> => mkN002 form1; + <_ + "àn", _ + "àin"> => mkN002 form1; + <_ + "on", _ + "oin"> => mkN002 form1; + <_ + "òn", _ + "òin"> => mkN002 form1; + <_ + "àr", _ + "àir"> => mkN033 form1; + <_ + "gh", _ + "igh"> => mkN257 form1; + <_ + "gh", _ + "ogh"> => mkN004 form1; + <_ + "às", _ + "àis"> => mkN001 form1; + <_ + "ùn", _ + "ùin"> => mkN002 form1; + <_ + "ig", _ + "ige"> => mkN007 form1; + <_ + "dh", _ + "idh"> => mkN028 form1; + <_ + "dh", _ + "dhe"> => mkN007 form1; + <_ + "de", _ + "ide"> => mkN009 form1; + <_ + "eap", _ + "eip"> => mkN011 form1; + <_ + "ìr", _ + "ìre"> => mkN007 form1; + <_ + "ab", _ + "aba"> => mkN059 form1; + <_ + "ol", _ + "oil"> => mkN001 form1; + <_ + "he", _ + "dhe"> => mkN150 form1; + <_ + "ùl", _ + "ùil"> => mkN017 form1; + <_ + "as", _ + "ise"> => mkN072 form1; + <_ + "sa", _ + "nsa"> => mkN061 form1; + <_ + "ot", _ + "ota"> => mkN059 form1; + <_ + "ac", _ + "ic"> => mkN001 form1; + <_ + "ac", _ + "ca"> => mkN021 form1; + <_ + "us", _ + "is"> => mkN002 form1; + <_ + "us", _ + "us"> => mkN084 form1; + <_ + "àn", _ + "in"> => mkN002 form1; + <_ + "on", _ + "in"> => mkN002 form1; + <_ + "òn", _ + "in"> => mkN002 form1; + <_ + "òn", _ + "òn"> => mkN084 form1; + <_ + "àr", _ + "ir"> => mkN002 form1; + <_ + "gh", _ + "gh"> => mkN257 form1; + <_ + "às", _ + "is"> => mkN001 form1; + <_ + "ùn", _ + "in"> => mkN002 form1; + <_ + "ig", _ + "ge"> => mkN007 form1; + <_ + "dh", _ + "dh"> => mkN028 form1; + <_ + "dh", _ + "ch"> => mkN155 form1; + <_ + "dh", _ + "he"> => mkN007 form1; + <_ + "de", _ + "de"> => mkN009 form1; + <_ + "ap", _ + "ip"> => mkN002 form1; + <_ + "ap", _ + "ap"> => mkN084 form1; + <_ + "ìr", _ + "re"> => mkN007 form1; + <_ + "ab", _ + "ba"> => mkN021 form1; + <_ + "ol", _ + "il"> => mkN001 form1; + <_ + "ol", _ + "ol"> => mkN009 form1; + <_ + "eò", _ + "eò"> => mkN009 form1; + <_ + "he", _ + "he"> => mkN150 form1; + <_ + "ùl", _ + "il"> => mkN017 form1; + <_ + "as", _ + "se"> => mkN072 form1; + <_ + "sa", _ + "sa"> => mkN061 form1; + <_ + "ot", _ + "ta"> => mkN059 form1; + <_ + "ac", _ + "c"> => mkN001 form1; + <_ + "ac", _ + "a"> => mkN021 form1; + <_ + "us", _ + "s"> => mkN002 form1; + <_ + "àn", _ + "n"> => mkN002 form1; + <_ + "àl", _ + "l"> => mkN002 form1; + <_ + "on", _ + "n"> => mkN002 form1; + <_ + "òn", _ + "n"> => mkN002 form1; + <_ + "òn", _ + "e"> => mkN030 form1; + <_ + "àr", _ + "r"> => mkN002 form1; + <_ + "gh", _ + "h"> => mkN257 form1; + <_ + "às", _ + "s"> => mkN001 form1; + <_ + "ùn", _ + "n"> => mkN002 form1; + <_ + "ig", _ + "e"> => mkN007 form1; + <_ + "id", _ + "e"> => mkN007 form1; + <_ + "dh", _ + "h"> => mkN028 form1; + <_ + "dh", _ + "e"> => mkN007 form1; + <_ + "de", _ + "e"> => mkN009 form1; + <_ + "ge", _ + "e"> => mkN009 form1; + <_ + "ap", _ + "p"> => mkN002 form1; + <_ + "ìr", _ + "e"> => mkN007 form1; + <_ + "ìs", _ + "e"> => mkN007 form1; + <_ + "lc", _ + "e"> => mkN007 form1; + <_ + "ib", _ + "e"> => mkN007 form1; + <_ + "ìl", _ + "e"> => mkN007 form1; + <_ + "ab", _ + "b"> => mkN001 form1; + <_ + "ab", _ + "a"> => mkN021 form1; + <_ + "àc", _ + "c"> => mkN001 form1; + <_ + "àd", _ + "d"> => mkN001 form1; + <_ + "àd", _ + "a"> => mkN230 form1; + <_ + "ol", _ + "l"> => mkN001 form1; + <_ + "òd", _ + "d"> => mkN001 form1; + <_ + "òd", _ + "e"> => mkN036 form1; + <_ + "òs", _ + "s"> => mkN001 form1; + <_ + "òs", _ + "a"> => mkN059 form1; + <_ + "ns", _ + "s"> => mkN009 form1; + <_ + "eò", _ + "ò"> => mkN009 form1; + <_ + "òc", _ + "c"> => mkN009 form1; + <_ + "òc", _ + "a"> => mkN059 form1; + <_ + "he", _ + "e"> => mkN150 form1; + <_ + "ùl", _ + "l"> => mkN017 form1; + <_ + "as", _ + "s"> => mkN033 form1; + <_ + "as", _ + "e"> => mkN072 form1; + <_ + "sa", _ + "a"> => mkN061 form1; + <_ + "ot", _ + "a"> => mkN059 form1; + <_ + "ot", _ + "t"> => mkN084 form1; + <_ + "ut", _ + "a"> => mkN059 form1; + <_ + "go", _ + "o"> => mkN085 form1; + <_ + "to", _ + "o"> => mkN085 form1; + <_ + "oc", _ + "c"> => mkN089 form1; + <_ + "oc", _ + "e"> => mkN258 form1; + <_ + "n", _ + "inn"> => mkN002 form1; + <_ + "n", _ + "ann"> => mkN009 form1; + <_ + "n", _ + "nne"> => mkN007 form1; + <_ + "n", _ + "hne"> => mkN100 form1; + <_ + "n", _ + "sne"> => mkN100 form1; + <_ + "n", _ + "nna"> => mkN082 form1; + <_ + "d", _ + "gid"> => mkN001 form1; + <_ + "d", _ + "hid"> => mkN001 form1; + <_ + "d", _ + "aid"> => mkN001 form1; + <_ + "ead", _ + "eid"> => mkN011 form1; + <_ + "d", _ + "ead"> => mkN004 form1; + <_ + "h", _ + "ich"> => mkN002 form1; + <_ + "h", _ + "ach"> => mkN009 form1; + <_ + "h", _ + "rch"> => mkN009 form1; + <_ + "h", _ + "che"> => mkN007 form1; + <_ + "h", _ + "cha"> => mkN059 form1; + <_ + "n", _ + "nn"> => mkN002 form1; + <_ + "n", _ + "ne"> => mkN007 form1; + <_ + "n", _ + "na"> => mkN082 form1; + <_ + "d", _ + "id"> => mkN001 form1; + <_ + "d", _ + "ad"> => mkN004 form1; + <_ + "h", _ + "ch"> => mkN002 form1; + <_ + "h", _ + "he"> => mkN007 form1; + <_ + "h", _ + "ha"> => mkN059 form1; + <_ + "n", _ + "n"> => mkN002 form1; + <_ + "n", _ + "e"> => mkN007 form1; + <_ + "n", _ + "a"> => mkN082 form1; + <_ + "d", _ + "d"> => mkN001 form1; + <_ + "d", _ + "e"> => mkN030 form1; + <_ + "d", _ + "a"> => mkN059 form1; + <_ + "h", _ + "h"> => mkN002 form1; + <_ + "h", _ + "e"> => mkN007 form1; + <_ + "h", _ + "a"> => mkN059 form1; + <_ + "è", _ + "è"> => mkN004 form1; + _ => regN form1 + } ; + + regV : Str -> V -- s + = \form1 -> case form1 of { + _ + "iic" => mkV002 form1; + _ + "aic" => mkV002 form1; + _ + "irc" => mkV010 form1; + _ + "aim" => mkV010 form1; + _ + "nis" => mkV020 form1; + _ + "ach" => mkV026 form1; + _ + "och" => mkV026 form1; + _ + "uch" => mkV026 form1; + _ + "ùch" => mkV026 form1; + _ + "obh" => mkV094 form1; + _ + "lbh" => mkV055 form1; + _ + "abh" => mkV018 form1; + _ + "rbh" => mkV026 form1; + _ + "ubh" => mkV026 form1; + _ + "àbh" => mkV026 form1; + _ + "ibh" => mkV034 form1; + _ + "adh" => mkV094 form1; + _ + "idh" => mkV034 form1; + _ + "odh" => mkV026 form1; + _ + "òdh" => mkV094 form1; + _ + "ùdh" => mkV094 form1; + _ + "ith" => mkV008 form1; + _ + "àth" => mkV026 form1; + _ + "ath" => mkV026 form1; + _ + "òth" => mkV026 form1; + _ + "ùth" => mkV026 form1; + _ + "oth" => mkV122 form1; + _ + "àmh" => mkV043 form1; + _ + "amh" => mkV094 form1; + _ + "ùgh" => mkV026 form1; + _ + "agh" => mkV094 form1; + _ + "igh" => mkV119 form1; + _ + "ugh" => mkV094 form1; + _ + "asg" => mkV026 form1; + _ + "osg" => mkV026 form1; + _ + "ùsg" => mkV094 form1; + _ + "hog" => mkV018 form1; + _ + "iog" => mkV026 form1; + _ + "aog" => mkV026 form1; + _ + "nog" => mkV026 form1; + _ + "ìog" => mkV026 form1; + _ + "arg" => mkV026 form1; + _ + "irg" => mkV041 form1; + _ + "org" => mkV122 form1; + _ + "uig" => mkV056 form1; + _ + "aig" => mkV034 form1; + _ + "rig" => mkV034 form1; + _ + "lig" => mkV034 form1; + _ + "hig" => mkV034 form1; + _ + "nig" => mkV042 form1; + _ + "èig" => mkV056 form1; + _ + "éig" => mkV056 form1; + _ + "alg" => mkV043 form1; + _ + "eic" => mkV008 form1; + _ + "lac" => mkV026 form1; + _ + "rac" => mkV003 form1; + _ + "eac" => mkV026 form1; + _ + "arc" => mkV026 form1; + _ + "eoc" => mkV026 form1; + _ + "moc" => mkV094 form1; + _ + "aon" => mkV026 form1; + _ + "ìon" => mkV026 form1; + _ + "inn" => mkV009 form1; + _ + "ann" => mkV026 form1; + _ + "onn" => mkV026 form1; + _ + "ean" => mkV026 form1; + _ + "lan" => mkV026 form1; + _ + "ian" => mkV026 form1; + _ + "èan" => mkV026 form1; + _ + "oin" => mkV034 form1; + _ + "àin" => mkV034 form1; + _ + "ùin" => mkV034 form1; + _ + "uin" => mkV034 form1; + _ + "ain" => mkV041 form1; + _ + "dhn" => mkV034 form1; + _ + "thn" => mkV073 form1; + _ + "eòn" => mkV123 form1; + _ + "ìol" => mkV026 form1; + _ + "hol" => mkV026 form1; + _ + "aol" => mkV055 form1; + _ + "gol" => mkV094 form1; + _ + "eòl" => mkV015 form1; + _ + "eal" => mkV094 form1; + _ + "ual" => mkV054 form1; + _ + "gal" => mkV094 form1; + _ + "all" => mkV047 form1; + _ + "oll" => mkV026 form1; + _ + "ill" => mkV034 form1; + _ + "eil" => mkV034 form1; + _ + "àil" => mkV034 form1; + _ + "oil" => mkV041 form1; + _ + "chd" => mkV026 form1; + _ + "rod" => mkV003 form1; + _ + "aod" => mkV003 form1; + _ + "aid" => mkV041 form1; + _ + "uid" => mkV034 form1; + _ + "èid" => mkV034 form1; + _ + "éid" => mkV034 form1; + _ + "oid" => mkV041 form1; + _ + "eid" => mkV056 form1; + _ + "ùid" => mkV127 form1; + _ + "ead" => mkV043 form1; + _ + "pad" => mkV094 form1; + _ + "had" => mkV149 form1; + _ + "gap" => mkV003 form1; + _ + "eap" => mkV043 form1; + _ + "nap" => mkV123 form1; + _ + "air" => mkV005 form1; + _ + "eir" => mkV034 form1; + _ + "èir" => mkV034 form1; + _ + "ùir" => mkV034 form1; + _ + "àir" => mkV041 form1; + _ + "òir" => mkV127 form1; + _ + "ùrr" => mkV026 form1; + _ + "arr" => mkV055 form1; + _ + "iar" => mkV086 form1; + _ + "gar" => mkV094 form1; + _ + "aor" => mkV026 form1; + _ + "tòr" => mkV094 form1; + _ + "èim" => mkV008 form1; + _ + "eim" => mkV034 form1; + _ + "eum" => mkV021 form1; + _ + "ris" => mkV009 form1; + _ + "uis" => mkV034 form1; + _ + "hòs" => mkV015 form1; + _ + "ras" => mkV026 form1; + _ + "eas" => mkV026 form1; + _ + "las" => mkV055 form1; + _ + "eus" => mkV026 form1; + _ + "rus" => mkV055 form1; + _ + "ìos" => mkV026 form1; + _ + "ios" => mkV122 form1; + _ + "eab" => mkV026 form1; + _ + "uab" => mkV094 form1; + _ + "rùb" => mkV026 form1; + _ + "iob" => mkV026 form1; + _ + "ìob" => mkV094 form1; + _ + "tob" => mkV094 form1; + _ + "art" => mkV060 form1; + _ + "ort" => mkV130 form1; + _ + "urt" => mkV130 form1; + _ + "ost" => mkV060 form1; + _ + "ast" => mkV086 form1; + _ + "ist" => mkV174 form1; + _ + "bh" => mkV026 form1; + _ + "dh" => mkV094 form1; + _ + "th" => mkV026 form1; + _ + "mh" => mkV043 form1; + _ + "gh" => mkV094 form1; + _ + "ng" => mkV008 form1; + _ + "og" => mkV026 form1; + _ + "ug" => mkV021 form1; + _ + "ag" => mkV026 form1; + _ + "òg" => mkV026 form1; + _ + "rg" => mkV026 form1; + _ + "ig" => mkV034 form1; + _ + "lg" => mkV043 form1; + _ + "àg" => mkV088 form1; + _ + "ac" => mkV026 form1; + _ + "rc" => mkV026 form1; + _ + "uc" => mkV026 form1; + _ + "oc" => mkV026 form1; + _ + "òc" => mkV026 form1; + _ + "àc" => mkV094 form1; + _ + "on" => mkV026 form1; + _ + "nn" => mkV026 form1; + _ + "an" => mkV026 form1; + _ + "rn" => mkV026 form1; + _ + "in" => mkV034 form1; + _ + "hn" => mkV034 form1; + _ + "ìn" => mkV034 form1; + _ + "un" => mkV039 form1; + _ + "òn" => mkV086 form1; + _ + "àn" => mkV144 form1; + _ + "ol" => mkV026 form1; + _ + "òl" => mkV026 form1; + _ + "al" => mkV094 form1; + _ + "ll" => mkV034 form1; + _ + "ìl" => mkV034 form1; + _ + "àl" => mkV094 form1; + _ + "hd" => mkV026 form1; + _ + "ùd" => mkV003 form1; + _ + "od" => mkV026 form1; + _ + "nd" => mkV003 form1; + _ + "id" => mkV034 form1; + _ + "rd" => mkV026 form1; + _ + "ad" => mkV149 form1; + _ + "sd" => mkV172 form1; + _ + "ap" => mkV003 form1; + _ + "hp" => mkV034 form1; + _ + "op" => mkV054 form1; + _ + "ir" => mkV034 form1; + _ + "rr" => mkV026 form1; + _ + "ar" => mkV026 form1; + _ + "or" => mkV026 form1; + _ + "òr" => mkV026 form1; + _ + "ìr" => mkV034 form1; + _ + "ur" => mkV086 form1; + _ + "im" => mkV008 form1; + _ + "um" => mkV055 form1; + _ + "om" => mkV026 form1; + _ + "rm" => mkV041 form1; + _ + "is" => mkV034 form1; + _ + "òs" => mkV055 form1; + _ + "ns" => mkV026 form1; + _ + "rs" => mkV026 form1; + _ + "as" => mkV026 form1; + _ + "us" => mkV026 form1; + _ + "os" => mkV026 form1; + _ + "às" => mkV055 form1; + _ + "ab" => mkV094 form1; + _ + "ùb" => mkV094 form1; + _ + "ob" => mkV094 form1; + _ + "òb" => mkV094 form1; + _ + "ib" => mkV127 form1; + _ + "nt" => mkV060 form1; + _ + "lt" => mkV060 form1; + _ + "rt" => mkV130 form1; + _ + "st" => mkV174 form1; + _ + "ut" => mkV060 form1; + _ + "ot" => mkV122 form1; + _ + "g" => mkV026 form1; + _ + "c" => mkV026 form1; + _ + "n" => mkV026 form1; + _ + "l" => mkV034 form1; + _ + "d" => mkV026 form1; + _ + "p" => mkV034 form1; + _ + "r" => mkV034 form1; + _ + "m" => mkV026 form1; + _ + "s" => mkV026 form1; + _ + "b" => mkV094 form1; + _ + "t" => mkV060 form1; + _ + "f" => mkV094 form1; + _ + "ì" => mkV156 form1; + _ + "a" => mkV156 form1; + _ => error "Cannot find an inflection rule" + } ; + + reg2V : Str -> Str -> V -- s noun + = \form1, form2 -> case of { + <_ + "aim", _ + "ram"> => mkV010 form1; + <_ + "aim", _ + "lam"> => mkV087 form1; + <_ + "aim", _ + "am"> => mkV010 form1; + <_ + "aim", _ + "m"> => mkV010 form1; + <_ + "nis", _ + "e"> => mkV020 form1; + <_ + "lac", _ + "adh"> => mkV003 form1; + <_ + "aon", _ + "adh"> => mkV003 form1; + <_ + "ìol", _ + "adh"> => mkV003 form1; + <_ + "ìon", _ + "adh"> => mkV003 form1; + <_ + "chd", _ + "adh"> => mkV026 form1; + <_ + "obh", _ + "adh"> => mkV094 form1; + <_ + "gap", _ + "adh"> => mkV003 form1; + <_ + "adh", _ + "adh"> => mkV003 form1; + <_ + "rod", _ + "adh"> => mkV003 form1; + <_ + "air", _ + "irt"> => mkV005 form1; + <_ + "air", _ + "adh"> => mkV067 form1; + <_ + "idh", _ + "idh"> => mkV008 form1; + <_ + "idh", _ + "adh"> => mkV034 form1; + <_ + "idh", _ + "àdh"> => mkV035 form1; + <_ + "ith", _ + "ith"> => mkV008 form1; + <_ + "ith", _ + "adh"> => mkV034 form1; + <_ + "inn", _ + "inn"> => mkV009 form1; + <_ + "inn", _ + "ann"> => mkV035 form1; + <_ + "inn", _ + "adh"> => mkV049 form1; + <_ + "aid", _ + "aid"> => mkV009 form1; + <_ + "lbh", _ + "adh"> => mkV015 form1; + <_ + "eòl", _ + "adh"> => mkV015 form1; + <_ + "eum", _ + "eum"> => mkV021 form1; + <_ + "ath", _ + "adh"> => mkV026 form1; + <_ + "rbh", _ + "adh"> => mkV026 form1; + <_ + "ubh", _ + "adh"> => mkV026 form1; + <_ + "ann", _ + "adh"> => mkV026 form1; + <_ + "eal", _ + "adh"> => mkV026 form1; + <_ + "all", _ + "adh"> => mkV055 form1; + <_ + "ian", _ + "adh"> => mkV026 form1; + <_ + "onn", _ + "adh"> => mkV026 form1; + <_ + "agh", _ + "adh"> => mkV094 form1; + <_ + "aig", _ + "adh"> => mkV034 form1; + <_ + "rig", _ + "adh"> => mkV034 form1; + <_ + "àin", _ + "adh"> => mkV034 form1; + <_ + "lig", _ + "adh"> => mkV034 form1; + <_ + "ill", _ + "adh"> => mkV034 form1; + <_ + "ùir", _ + "adh"> => mkV034 form1; + <_ + "hig", _ + "adh"> => mkV034 form1; + <_ + "igh", _ + "adh"> => mkV034 form1; + <_ + "igh", _ + "ghe"> => mkV119 form1; + <_ + "àil", _ + "adh"> => mkV034 form1; + <_ + "èid", _ + "adh"> => mkV034 form1; + <_ + "oil", _ + "adh"> => mkV073 form1; + <_ + "eap", _ + "eap"> => mkV043 form1; + <_ + "ìob", _ + "adh"> => mkV054 form1; + <_ + "ugh", _ + "adh"> => mkV055 form1; + <_ + "lac", _ + "dh"> => mkV003 form1; + <_ + "aon", _ + "dh"> => mkV003 form1; + <_ + "ìol", _ + "dh"> => mkV003 form1; + <_ + "ìon", _ + "dh"> => mkV003 form1; + <_ + "chd", _ + "dh"> => mkV026 form1; + <_ + "obh", _ + "dh"> => mkV094 form1; + <_ + "gap", _ + "dh"> => mkV003 form1; + <_ + "adh", _ + "dh"> => mkV003 form1; + <_ + "rod", _ + "dh"> => mkV003 form1; + <_ + "air", _ + "rt"> => mkV005 form1; + <_ + "air", _ + "dh"> => mkV067 form1; + <_ + "idh", _ + "dh"> => mkV034 form1; + <_ + "ith", _ + "th"> => mkV008 form1; + <_ + "ith", _ + "dh"> => mkV034 form1; + <_ + "ith", _ + "mh"> => mkV046 form1; + <_ + "inn", _ + "nn"> => mkV009 form1; + <_ + "inn", _ + "dh"> => mkV049 form1; + <_ + "inn", _ + "mh"> => mkV046 form1; + <_ + "aid", _ + "id"> => mkV009 form1; + <_ + "lbh", _ + "dh"> => mkV015 form1; + <_ + "lbh", _ + "bh"> => mkV043 form1; + <_ + "eòl", _ + "dh"> => mkV015 form1; + <_ + "eum", _ + "um"> => mkV021 form1; + <_ + "ath", _ + "dh"> => mkV026 form1; + <_ + "rbh", _ + "dh"> => mkV026 form1; + <_ + "ubh", _ + "dh"> => mkV026 form1; + <_ + "ann", _ + "dh"> => mkV026 form1; + <_ + "eal", _ + "dh"> => mkV026 form1; + <_ + "all", _ + "dh"> => mkV055 form1; + <_ + "ian", _ + "dh"> => mkV026 form1; + <_ + "onn", _ + "dh"> => mkV026 form1; + <_ + "agh", _ + "dh"> => mkV094 form1; + <_ + "aig", _ + "dh"> => mkV034 form1; + <_ + "rig", _ + "dh"> => mkV034 form1; + <_ + "àin", _ + "dh"> => mkV034 form1; + <_ + "ibh", _ + "dh"> => mkV034 form1; + <_ + "ibh", _ + "bh"> => mkV037 form1; + <_ + "lig", _ + "dh"> => mkV034 form1; + <_ + "ill", _ + "dh"> => mkV034 form1; + <_ + "ùir", _ + "dh"> => mkV034 form1; + <_ + "hig", _ + "dh"> => mkV034 form1; + <_ + "igh", _ + "dh"> => mkV034 form1; + <_ + "igh", _ + "he"> => mkV119 form1; + <_ + "àil", _ + "dh"> => mkV034 form1; + <_ + "èid", _ + "dh"> => mkV034 form1; + <_ + "oil", _ + "dh"> => mkV073 form1; + <_ + "eap", _ + "ap"> => mkV043 form1; + <_ + "ìob", _ + "dh"> => mkV054 form1; + <_ + "ugh", _ + "dh"> => mkV055 form1; + <_ + "lac", _ + "h"> => mkV003 form1; + <_ + "aon", _ + "h"> => mkV003 form1; + <_ + "aon", _ + "n"> => mkV037 form1; + <_ + "ìol", _ + "h"> => mkV003 form1; + <_ + "ìon", _ + "h"> => mkV003 form1; + <_ + "ìon", _ + "n"> => mkV041 form1; + <_ + "chd", _ + "h"> => mkV026 form1; + <_ + "obh", _ + "h"> => mkV094 form1; + <_ + "gap", _ + "h"> => mkV003 form1; + <_ + "adh", _ + "h"> => mkV003 form1; + <_ + "rod", _ + "h"> => mkV003 form1; + <_ + "aod", _ + "h"> => mkV026 form1; + <_ + "air", _ + "t"> => mkV005 form1; + <_ + "air", _ + "h"> => mkV067 form1; + <_ + "air", _ + "r"> => mkV035 form1; + <_ + "air", _ + "n"> => mkV056 form1; + <_ + "idh", _ + "h"> => mkV034 form1; + <_ + "idh", _ + "e"> => mkV111 form1; + <_ + "ith", _ + "h"> => mkV008 form1; + <_ + "ris", _ + "s"> => mkV009 form1; + <_ + "ris", _ + "h"> => mkV034 form1; + <_ + "inn", _ + "n"> => mkV009 form1; + <_ + "inn", _ + "h"> => mkV049 form1; + <_ + "aid", _ + "d"> => mkV009 form1; + <_ + "lbh", _ + "h"> => mkV015 form1; + <_ + "eòl", _ + "h"> => mkV015 form1; + <_ + "eum", _ + "m"> => mkV021 form1; + <_ + "iog", _ + "h"> => mkV026 form1; + <_ + "ach", _ + "h"> => mkV026 form1; + <_ + "ath", _ + "h"> => mkV026 form1; + <_ + "rbh", _ + "h"> => mkV026 form1; + <_ + "ubh", _ + "h"> => mkV026 form1; + <_ + "ann", _ + "h"> => mkV026 form1; + <_ + "ann", _ + "l"> => mkV144 form1; + <_ + "uch", _ + "h"> => mkV026 form1; + <_ + "uch", _ + "l"> => mkV144 form1; + <_ + "odh", _ + "h"> => mkV026 form1; + <_ + "eas", _ + "h"> => mkV026 form1; + <_ + "eas", _ + "s"> => mkV043 form1; + <_ + "eal", _ + "h"> => mkV026 form1; + <_ + "all", _ + "h"> => mkV055 form1; + <_ + "all", _ + "n"> => mkV047 form1; + <_ + "ian", _ + "h"> => mkV026 form1; + <_ + "osg", _ + "h"> => mkV026 form1; + <_ + "osg", _ + "g"> => mkV043 form1; + <_ + "onn", _ + "h"> => mkV026 form1; + <_ + "aor", _ + "h"> => mkV026 form1; + <_ + "aor", _ + "r"> => mkV037 form1; + <_ + "agh", _ + "h"> => mkV094 form1; + <_ + "uig", _ + "h"> => mkV032 form1; + <_ + "uig", _ + "n"> => mkV056 form1; + <_ + "aig", _ + "h"> => mkV034 form1; + <_ + "uis", _ + "h"> => mkV034 form1; + <_ + "rig", _ + "h"> => mkV034 form1; + <_ + "àin", _ + "h"> => mkV034 form1; + <_ + "ibh", _ + "h"> => mkV034 form1; + <_ + "ùin", _ + "h"> => mkV034 form1; + <_ + "ùin", _ + "n"> => mkV041 form1; + <_ + "lig", _ + "h"> => mkV034 form1; + <_ + "ill", _ + "h"> => mkV034 form1; + <_ + "ill", _ + "l"> => mkV035 form1; + <_ + "uin", _ + "h"> => mkV034 form1; + <_ + "uin", _ + "e"> => mkV092 form1; + <_ + "ùir", _ + "h"> => mkV034 form1; + <_ + "hig", _ + "h"> => mkV034 form1; + <_ + "igh", _ + "h"> => mkV034 form1; + <_ + "igh", _ + "e"> => mkV119 form1; + <_ + "igh", _ + "d"> => mkV172 form1; + <_ + "àil", _ + "h"> => mkV034 form1; + <_ + "èid", _ + "h"> => mkV034 form1; + <_ + "oil", _ + "l"> => mkV041 form1; + <_ + "oil", _ + "n"> => mkV056 form1; + <_ + "oil", _ + "h"> => mkV073 form1; + <_ + "àmh", _ + "h"> => mkV043 form1; + <_ + "ead", _ + "d"> => mkV043 form1; + <_ + "ead", _ + "l"> => mkV088 form1; + <_ + "alg", _ + "g"> => mkV043 form1; + <_ + "alg", _ + "h"> => mkV094 form1; + <_ + "eap", _ + "p"> => mkV043 form1; + <_ + "ìob", _ + "h"> => mkV054 form1; + <_ + "ugh", _ + "h"> => mkV055 form1; + <_ + "las", _ + "h"> => mkV055 form1; + <_ + "eid", _ + "n"> => mkV056 form1; + <_ + "ist", _ + "d"> => mkV174 form1; + <_ + "ir", _ + "adh"> => mkV128 form1; + <_ + "ir", _ + "gur"> => mkV126 form1; + <_ + "ir", _ + "dh"> => mkV128 form1; + <_ + "ir", _ + "ur"> => mkV035 form1; + <_ + "ac", _ + "h"> => mkV026 form1; + <_ + "ac", _ + "c"> => mkV043 form1; + <_ + "rd", _ + "h"> => mkV026 form1; + <_ + "ag", _ + "h"> => mkV026 form1; + <_ + "og", _ + "h"> => mkV026 form1; + <_ + "og", _ + "l"> => mkV059 form1; + <_ + "om", _ + "h"> => mkV026 form1; + <_ + "rs", _ + "h"> => mkV026 form1; + <_ + "ìl", _ + "h"> => mkV034 form1; + <_ + "ir", _ + "h"> => mkV128 form1; + <_ + "ir", _ + "r"> => mkV035 form1; + <_ + "un", _ + "d"> => mkV039 form1; + <_ + "rm", _ + "m"> => mkV041 form1; + <_ + "um", _ + "h"> => mkV055 form1; + <_ + "um", _ + "l"> => mkV059 form1; + <_ + "nt", _ + "h"> => mkV060 form1; + <_ + "àc", _ + "h"> => mkV094 form1; + <_ + "sd", _ + "d"> => mkV172 form1; + <_ + "g", _ + "adh"> => mkV032 form1; + <_ + "l", _ + "adh"> => mkV032 form1; + <_ + "l", _ + "ail"> => mkV041 form1; + <_ + "g", _ + "dh"> => mkV032 form1; + <_ + "l", _ + "dh"> => mkV032 form1; + <_ + "l", _ + "al"> => mkV035 form1; + <_ + "l", _ + "il"> => mkV041 form1; + <_ + "g", _ + "h"> => mkV032 form1; + <_ + "g", _ + "g"> => mkV035 form1; + <_ + "l", _ + "h"> => mkV032 form1; + <_ + "l", _ + "l"> => mkV041 form1; + <_, _ + "adh"> => mkV032 form1; + <_, _ + "ich"> => mkV041 form1; + <_, _ + "ach"> => mkV035 form1; + <_, _ + "chd"> => mkV029 form1; + <_, _ + "dh"> => mkV032 form1; + <_, _ + "ch"> => mkV041 form1; + <_, _ + "hd"> => mkV029 form1; + <_, _ + "h"> => mkV032 form1; + <_, _ + "d"> => mkV029 form1; + _ => regV form1 + } ; + +mkA = overload { + mkA : Str -> Str -> A = reg2A; -- ('asg', nom, masc) ('asg', nom, fem) + mkA : Str -> A = regA -- ('asg', nom, masc) +} ; + +mkA2 : A -> A2 = \n -> lin A2 n ** {c2=noPrep} ; + +mkN = overload { + mkN : Str -> N = \s -> lin N (regN s) ; -- nom;indef;sg + mkN : (nom,gen : Str) -> N = reg2N; -- nom;indef;sg gen;indef;sg + + mkN : (nom,gen,pl : Str) -> Gender -> N = \loch,locha,lochan,g -> + mk5N loch loch locha lochan (palatalise loch) g ; + mkN : (base : Str) -> Gender -> N = \tunnag,g -> + let fm : Str -> Str -> Str = \fem,masc -> case g of { + Fem => fem ; Masc => masc } ; + tunnaig : Str = palatalise tunnag ; + tunnaige : Str = fm (tunnaig + "e") tunnaig ; + tunnagan : Str = fm (tunnag + "an") tunnaig ; + in mk5N tunnag tunnag tunnaige tunnagan tunnaig g +} ; + +mkN2 : LinN -> N2 = \n -> lin N2 n ** {c2=noPrep} ; + +mkV = overload { + mkV : Str -> Str -> V = reg2V; -- s noun + mkV : Str -> V = regV -- s +} ; + +mkV2 = overload { + mkV2 : V -> V2 = \v -> lin V2 v ** {c2=noPrep} ; + mkV2 : V -> Prep -> V2 = \v,p -> lin V2 v ** {c2=p} ; +} ; + +mkVV : V -> VV = \v -> lin VV v ; +mkVS : V -> VS = \v -> lin VS v ; +mkVQ : V -> VQ = \v -> lin VQ v ; +mkVA : V -> VA = \v -> lin VA v ; + +mkV2V = overload { + mkV2V : V -> V2V = \v -> lin V2V v ** {c2=noPrep} ; + mkV2V : V -> Prep -> V2V = \v,p2 -> lin V2V v ** {c2=p2} ; +} ; + +mkV2S = overload { + mkV2S : V -> V2S = \v -> lin V2S v ** {c2=noPrep} ; + mkV2S : V -> Prep -> V2S = \v,p2 -> lin V2S v ** {c2=p2} ; +} ; + +mkV2Q = overload { + mkV2Q : V -> V2Q = \v -> lin V2Q v ** {c2=noPrep} ; + mkV2Q : V -> Prep -> V2Q = \v,p2 -> lin V2Q v ** {c2=p2} ; +} ; + +mkV2A = overload { + mkV2A : V -> V2A = \v -> lin V2A v ** {c2=noPrep} ; + mkV2A : V -> Prep -> V2A = \v,p2 -> lin V2A v ** {c2=p2} ; +} ; + +mkV3 = overload { + mkV3 : V -> V3 = \v -> lin V3 v ** {c2,c3=noPrep} ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p2,p3 -> lin V3 v ** {c2=p2; c3=p3} ; +} ; + +oper mkLN = \s -> lin LN {s=s} ; +oper mkGN = \s -> lin GN {s=s} ; +oper mkSN = \s -> lin SN {s=s} ; +oper mkPN = \s -> lin PN {s=s} ; + +mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; +mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; +mkAdA : Str -> AdA = \s -> lin AdA {s=s} ; +mkAdN : Str -> AdN = \s -> lin AdN {s=s} ; +mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s;p=[]} ; oper - ---2 Parameters --- --- To abstract over number, valency and (some) case names, --- we define the following identifiers. The application programmer --- should always use these constants instead of the constructors --- defined in $ResSom$. - - Prep : Type ; - noPrep : Prep ; - - -- Add more overload instances if needed for all categories! - ---2 Nouns - - mkN : overload { - mkN : Str -> N ; -- Predictable nouns - } ; - - mkPN : overload { - mkPN : Str -> PN ; -- Proper nouns - } ; - ---2 Adjectives - - mkA : overload { - mkA : Str -> A ; -- Predictable adjective - } ; - - mkA2 : overload { - mkA2 : Str -> A2 ; -- Predictable A2, no preposition - mkA2 : A -> Prep -> A2 ; -- A2 made from A and Prep - } ; - ---2 Verbs - - -- Verbs - mkV : overload { - mkV : Str -> V ; -- Predictable verb - } ; - - - mkV2 : overload { - mkV2 : Str -> V2 ; -- Predictable transitive verb - mkV2 : V -> Prep -> V2 ; -- V2 made from V and Prep + mkPron : (subj,poss : Str) -> PronAgr -> LinPron = \subj,poss,agr -> { + s = table { + Nom _ => subj ; + _ => "gam" -- TODO fix this + } ; + poss = poss ; + a = agr ; + empty = [] } ; - mkV3 : overload { - mkV3 : V -> V3 ; -- No prepositions - mkV3 : V -> Prep -> Prep -> V3 ; -- Prepositions for direct and indirect objects given +mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; +mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; +mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; +mkIP : Str -> IP = \s -> lin IP {s=s} ; +mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; +mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; + +oper + -- Can you reuse your mkNoun? Do nouns and quantifiers inflect the same way? + mkQuant : Str -> Species -> LinQuant = \this,sp -> { + s = \\_ => this ; + sp = this ; + qt = QDef sp ; } ; - mkVV : overload { - mkVV : V -> VV ; - } ; +mkConj : Str -> Number -> Conj = \s,n -> lin Conj {s1=[]; s2=s; n=n} ; +mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; +mkCard : Str -> Number -> Card = \s,n -> lin Card {s=s; n=n} ; +mkACard : Str -> ACard = \s -> lin ACard {s=s} ; +mkDet : Str -> Number -> Species -> Det = \s,n,defn -> lin Det {s=\\_,_=>s; s2=\\_,_=>[]; sp=[]; dt=DDef n defn} ; +mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; - mkVA : overload { - mkVA : V -> VA ; - } ; +noPrep : Prep = lin Prep {s=\\_=>""; c2=\\_=>Dat NoMutation; replacesObjPron=False} ; - mkVQ : overload { - mkVQ : V -> VQ ; - } ; +mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; +mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; - mkVS : overload { - mkV : V -> VS ; - } ; +oper + singular : Number = Sg ; + plural : Number = Pl ; - -- Etc. do the same for other V subcats (V2A, V2V, V2S, …) - - - ----- - ---2 Structural categories - - -- If prepositions take case, add that as argument to mkPrep - -- mkPrep : overload { - -- mkPrep : Str -> Prep ; - -- } ; - -- TODO: should export the whole set of morphologically complex prepositions here and not let users construct them alone - -- but should include funs like "override complement case for existing preps" - - mkConj : overload { - mkConj : (and : Str) -> Conj ; -- (coffee) and (tea) - mkConj : (either : Str) -> (or : Str) -> Conj ; -- either (coffee) or (tea) - } ; - - mkSubj : overload { - mkSubj : Str -> Subj ; - } ; - - mkAdv : overload { - mkAdv : Str -> Adv ; - } ; - - mkAdV : overload { - mkAdV : Str -> AdV ; - } ; - - mkAdA : overload { - mkAdA : Str -> AdA ; - } ; - - ---. -------------------------------------------------------------------------------- --- The definitions should not bother the user of the API. So they are --- hidden from the document. - - Prep = CatGla.Prep ; - noPrep = lin Prep ResGla.emptyPrep ; - - -- Add more overload instances if needed for all categories! - - -- For explanation of `lin N`, see - -- https://inariksit.github.io/gf/2018/05/25/subtyping-gf.html#lock-fields - - mkN = overload { - mkN : Str -> N = \s -> lin N (ResGla.smartN s (s+"a") (s+"an") Masc) ; - -- TODO: more overload instances - } ; - -{- - mkPN = overload { - mkPN : Str -> PN = … - } ; - ---2 Adjectives - - mkA = overload { - mkA : Str -> A = \s -> … - } ; - - mkA2 = overload { - mkA2 : Str -> A2 = \s -> … - mkA2 : A -> Prep -> A2 = \s -> … - } ; - ---2 Verbs --} - -- Verbs - mkV = overload { - mkV : Str -> V = \s -> lin V (mkVerb s) ; - } ; - -{- - - mkV2 = overload { - mkV2 : Str -> V2 = \s -> … - mkV2 : V -> Prep -> V2 = \s -> … - } ; - - mkV3 = overload { - mkV3 : V -> V3 = \s -> … - mkV3 : V -> Prep -> Prep -> V3 = \s -> … - } ; - - mkVV = overload { - mkVV : V -> VV = \s -> … - } ; - - mkVA = overload { - mkVA : V -> VA = \s -> … - } ; - - mkVQ = overload { - mkVQ : V -> VQ = \s -> … - } ; - - - mkVS = overload { - mkV : V -> VS = \s -> … - } ; - - -- Etc. do the same for other V subcats (V2A, V2V, V2S, …) - - - ----- --} -{- - -- If prepositions take case, add that as argument to mkPrep - mkPrep = overload { - mkPrep : Str -> Prep = \s -> lin Prep {s = s} ; - } ; - - mkConj = overload { - mkConj : (and : Str) -> Conj = \s -> … - mkConj : (either : Str) -> (or : Str) -> Conj = \s -> … - } ; - - mkSubj = overload { - mkSubj : Str -> Subj = \s -> … - } ; - - mkAdv = overload { - mkAdv : Str -> Adv = \s -> … - } ; - - mkAdV = overload { - mkAdV : Str -> AdV = \s -> … - } ; - - mkAdA = overload { - mkAdA : Str -> AdA = \s -> … - } ; - --} --------------------------------------------------------------------------------- + indefinite : Species = Indef ; + definite : Species = Def ; } diff --git a/src/gaelic/PhraseGla.gf b/src/gaelic/PhraseGla.gf index a8a5ad3b..a89ad298 100644 --- a/src/gaelic/PhraseGla.gf +++ b/src/gaelic/PhraseGla.gf @@ -4,6 +4,7 @@ concrete PhraseGla of Phrase = CatGla ** open Prelude, ResGla in { PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; UttS s = s ; + {- UttQS qs = qs ; UttIAdv iadv = iadv ; @@ -16,8 +17,8 @@ concrete PhraseGla of Phrase = CatGla ** open Prelude, ResGla in { UttAP ap = { s = ap.s } ; UttAdv adv = {s = } ; UttCN n = {s = } ; - UttCard n = {s = } ; - UttInterj i = i ; -} + UttCard n = {s = } ; -} + UttInterj i = i ; NoPConj = {s = []} ; -- PConjConj conj = {s = conj.s1 ++ conj.s2 ! …} ; diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 5fe973ef..691dfae4 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -1,5 +1,6 @@ resource ResGla = open Prelude, Predef in { + -------------------------------------------------------------------------------- -- General notes @@ -29,82 +30,65 @@ https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#my-naming-scheme-for-l param Gender = Masc | Fem ; - CoreCase = Nom Mutation | Gen | Dat Mutation ; - Case = CC CoreCase | Voc ; --- NPCase = NPC CoreCase | NPVoc ; + Case = Nom Mutation | Dat Mutation | Gen ; Mutation = Lenited | NoMutation ; Number = Sg | Pl ; Person = P1 | P2 | P3 ; - Definiteness = Definite | Indefinite ; -- Some prepositions govern different case when definite vs. indefinite + Species = Indef | Def ; -- Some prepositions govern different case when definite vs. indefinite oper - NOM : CoreCase = Nom NoMutation ; -- shorthand - - npc2cc : Case -> CoreCase = \npc -> case npc of { - CC c => c ; - _ => NOM - } ; - -param - NForm = - Indef Number CoreCase - | Def Number Case - | Dual -- only after number 2, only for a handful of nouns. TODO: does it have different cases? - ; + NOM : Case = Nom NoMutation ; -- shorthand oper - getNForm : DType -> Case -> NForm = \d,c -> - case of { - => Def n Voc ; - => Indef n c ; - => Def n c ; - => Indef n NOM ; -- as per Michal on Discord https://discord.com/channels/865093807343140874/865094084683366400/1409838154550087711 . TODO: Def or Indef nom ???? - => Def n c -- ???????????????? - } ; + LinN : Type = {s: Case => Species => Number => Str; voc: Number => Str; g: Gender} ; - LinN : Type = { - base, -- tunnag fuil loch fear litir bròg - dat, -- -"- bròig (1B) - gen, -- tunnaige fala locha fir litreach ("de-palatalised") bròige - pl, -- tunnagan lochan fir litrichean brògan --- pldat, -- Krasimir's and Katya's automatic extraction suggests there's a difference, but I don't see it - -- add this form if we turn out to need it - -- TODO: for nouns that only use suffixes, should these just show theoretical forms? - lenited, -- thunnag fhuil loch fhear - palatalised, -- tunnaig fuil loch fir - lenited_palatalised, -- thunnaig fhuil loch fhir - lenited_plural - : Str ; - g : Gender - } ; - - mk5N : (nom,gen,dat,pl : Str) -> Gender -> LinN = \brog,broige,broig,brogan,g -> { - base = brog ; - gen = broige ; - dat = broig ; - pl = brogan ; - lenited_plural = lenite brogan ; - lenited = bhrog ; - palatalised = broig ; - lenited_palatalised = bhroig ; - g = g - } where { - bhrog : Str = lenite brog ; - bhroig : Str = lenite broig } ; - - smartN = overload { - smartN : (nom,gen,pl : Str) -> Gender -> LinN = \loch,locha,lochan,g -> - mk5N loch locha loch lochan g ; - smartN : (base : Str) -> Gender -> LinN = \tunnag,g -> - let fm : Str -> Str -> Str = \fem,masc -> case g of { - Fem => fem ; Masc => masc } ; - tunnaig : Str = palatalise tunnag ; - tunnaige : Str = fm (tunnaig + "e") tunnaig ; - tunnagan : Str = fm (tunnag + "an") tunnaig ; - in mk5N tunnag tunnaige tunnag tunnagan g - } ; + mk5N nom dat gen pl pal g = + { s = table { + Nom _ => table { + Indef => table { + Sg => nom ; + Pl => pl + } ; + Def => table { + Sg => nom ; + Pl => fm pl pal + } + } ; + Dat _ => table { + Indef => table { + Sg => dat ; + Pl => pl + } ; + Def => table { + Sg => fm pal (lenite nom) ; + Pl => pl + } + } ; + Gen => table { + Indef => table { + Sg => gen ; + Pl => lenite nom + } ; + Def => table { + Sg => fm pal (lenite pal) ; + Pl => nom + } + } + } ; + voc = table { + Sg => fm (lenite nom) (lenite pal) ; + Pl => lenite nom+"a" + } ; + g = g + } + where { + fm : Str -> Str -> Str = \fem,masc -> case g of { + Fem => fem ; + Masc => masc + } + }; vowel : pattern Str = #("a"|"à"|"e"|"i"|"ì"|"o"|"u") ; -- more accents? diphthong : pattern Str = #("ea"|"oi") ; @@ -112,12 +96,8 @@ oper labial : pattern Str = #("b"|"f"|"m"|"p") ; palatalise : Str -> Str = \lamh -> case lamh of { - f@? + "ea" + r => f + "i" + r ; -- TODO is this irregular? - boireann@(_ + (#vowel|#diphthong) + ? + _ + (#vowel|#diphthong) + ? + _) - + a@#vowel + ch => boireann + a + "i" + ch ; - tunn@(_ + (#vowel|#diphthong) + ? + _) - + a@#vowel + g => tunn + a + "i" + g ; - l + a@#vowel + mh => l + a + "i" + mh ; + gr+"ea"+nn@("c"|"d"|"l"|"n"|"p"|"r"|"s"|"m"|"ch"|"dh"|"ll"|"mh"|"nn"|"sg") => gr+"i"+nn ; + boireann + a@#vowel + ch@("b"|"c"|"d"|"g"|"l"|"p"|"r"|"s"|"t"|"m"|"n"|"bh"|"ch"|"cs"|"dh"|"gh"|"ll"|"lm"|"lt"|"mh"|"nc"|"ng"|"nn"|"nt"|"nnd"|"rc"|"rd"|"rm"|"rn"|"rs"|"rt"|"sg"|"th"|"ths"|"rbh") => boireann + a + "i" + ch ; _ => lamh } ; lenite : Str -> Str = \tunnag -> case tunnag of { @@ -127,88 +107,6 @@ oper _ => tunnag } ; - -- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56 - mkNoun : (b,g,d,pl,l,p,lp,lpl : Str) -> Gender -> LinN = \b,gen,dat,pl,l,p,lp,lpl,g -> { - base = b ; -- tunnag fuil loch fear litir - gen = gen ; -- tunnaige fala locha fir litreach - dat = dat ; -- tunnaige fala locha fir litreach - pl = pl ; -- tunnagan lochan fir litrichean - lenited = l ; -- thunnag fhuil loch fhear litir ? - palatalised = p ; -- tunnaig fuil loch fir litir ? - lenited_palatalised = lp ; -- thunnaig fhuil loch fhir litir ? - lenited_plural = lpl ; -- thunnagan lochan fhir litrichean ? - g = g ; - } ; - - -- TODO: no idea if this is even remotely correct - -- can always replace morphology with Katya's automated tool - useN : LinN -> LinCN = \n -> n ** { - s = table { - Indef Sg (Nom NoMutation) => n.base ; - Indef Sg (Nom Lenited) => n.lenited ; - Indef Sg Gen => n.gen ; - Indef Sg (Dat NoMutation) => n.dat ; - Indef Sg (Dat Lenited) => fm n.lenited_palatalised n.lenited ; ------- FIXME later - Def Sg (CC (Nom NoMutation)) => n.base ; - Def Sg (CC (Nom Lenited)) => n.lenited ; - Def Sg (CC Gen) => fm n.gen n.lenited_palatalised ; - Def Sg (CC (Dat NoMutation)) => fm n.palatalised n.lenited ; - Def Sg (CC (Dat Lenited)) => fm n.lenited_palatalised n.lenited ; - Def Sg Voc => fm n.lenited n.lenited_palatalised ; - Indef Pl (Nom NoMutation) => fm n.pl n.palatalised ; - Indef Pl (Nom Lenited) => fm n.lenited_plural n.lenited_palatalised ; - Indef Pl Gen => n.lenited ; - Indef Pl (Dat NoMutation) => fm n.pl n.palatalised ; -- TODO: is this overfitting based on the 5 nouns i know? probably! - Indef Pl (Dat Lenited) => fm n.lenited_plural n.lenited_palatalised ; -- TODO: see above - Def Pl (CC (Nom NoMutation)) => n.pl ; - Def Pl (CC (Nom Lenited)) => n.lenited_plural ; - Def Pl (CC Gen) => n.base ; - Def Pl (CC (Dat NoMutation)) => n.pl ; - Def Pl (CC (Dat Lenited)) => n.lenited_plural ; - Def Pl Voc => glue n.lenited "a" ; - Dual => fm n.palatalised n.base -- TODO: is this correct? only for 1-syllable feminine nouns? - } - } where { - fm : Str -> Str -> Str = \fem,masc -> case n.g of { - Fem => fem ; - Masc => masc - } - }; - - LinCN : Type = { - s : NForm => - Str ; - g : Gender ; - -- ** postmod/premod/… : Str -- if needed? determiners can put stuff after head but it only comes at NP - } ; - - linCN : LinCN -> Str = \cn -> cn.s ! Indef Sg NOM - -- ++ cn.postmod -- If there is another field, use here - ; - - --- some test nouns — TODO: do smart paradigms -tunnag_N : LinN = { - base,dat = "tunnag" ; - gen = "tunnaige" ; - pl = "tunnagan" ; - lenited_plural = "thunnagan" ; - lenited = "thunnag" ; - palatalised = "tunnaig" ; - lenited_palatalised = "thunnaig" ; - g = Fem ; - } ; - -boireannach_N : LinN = { - base,dat = "boireannach" ; - pl,gen = "boireannaich" ; - lenited = "bhoireannach" ; - palatalised = "boireannaich" ; - lenited_palatalised, - lenited_plural = "bhoireannaich" ; - g = Masc ; - } ; - --------------------------------------------- -- Proper noun @@ -243,24 +141,12 @@ oper oper LinPron : Type = { - s : CoreCase => Str ; + s : Case => Str ; a : PronAgr ; poss : Str ; -- if a case is needed, it comes from the Prep! TODO verify this (do we ever need a dative for poss pron without a prep present? some preps merge, others not, but the pronoun is present in all the preps. why this way—I counted on there being fewer pronouns than prepositions.) empty : Str ; -- to prevent metavariables } ; - -- TODO: nicer API where you can give Person, Number, Gender etc. - -- not this weird unintuitive Agr param - mkPron : (subj,poss : Str) -> PronAgr -> LinPron = \subj,poss,agr -> { - s = table { - Nom _ => subj ; - _ => "gam" -- TODO fix this - } ; - poss = poss ; - a = agr ; - empty = [] - } ; - --------------------------------------------- -- NP @@ -286,11 +172,11 @@ oper a : Agr ; -- includes whether it's pron and whether it's definite. TODO: probably can make even leaner (wasn't a prio so far). } ; - linNP : LinNP -> Str = \np -> np.art ! CC NOM ++ np.s ! CC NOM ; + linNP : LinNP -> Str = \np -> np.art ! NOM ++ np.s ! NOM ; emptyNP : LinNP = { s,art = \\_ => [] ; - a = NotPron (DDef Sg Indefinite) ; -- we assume pronouns are definite by default. also it just matters for PrepNP. + a = NotPron (DDef Sg Indef) ; -- we assume pronouns are definite by default. also it just matters for PrepNP. empty = [] ; } ; @@ -298,9 +184,9 @@ oper -- Det, Quant, Card, Ord param - QuantForm = QSg Gender CoreCase | QPl CoreCase ; - QType = QDef Definiteness | QPoss PronAgr ; - DType = DDef Number Definiteness | DPoss Number PronAgr ; + QuantForm = QSg Gender Case | QPl Case ; + QType = QDef Species | QPoss PronAgr ; + DType = DDef Number Species | DPoss Number PronAgr ; -- The minimum forms that preposition merges with PrepAgr = PrepBase | PrepDefiniteArticle Number | PrepObjectPron PronAgr | PrepPossPron PronAgr ; @@ -314,16 +200,12 @@ oper } ; getQuantForm : Number -> Gender -> Case -> QuantForm = \n,g,c -> case of { - => QSg g c ; - => QSg g NOM ; --- ?????? - => QPl c ; - => QPl NOM --- ?????? + => QSg g c ; + => QPl c } ; - getArt : LinQuant -> Number -> Gender -> Case -> Str = \quant,n,g,c -> case c of { - Voc => "" ; -- TODO: add empty field to article to not get metavariables - _ => quant.s ! getQuantForm n g c - } ; + getArt : LinQuant -> Number -> Gender -> Case -> Str = \quant,n,g,c -> + quant.s ! getQuantForm n g c ; LinQuant : Type = { s -- quantifier in a context, e.g. 'this (cat) (is nice)' @@ -343,14 +225,7 @@ oper n : Number ; } ; - -- Can you reuse your mkNoun? Do nouns and quantifiers inflect the same way? - mkQuant : Str -> QType -> LinQuant = \this,qt -> { - s = \\_ => this ; - sp = this ; - qt = qt ; - } ; - - mkDet : (seven, teen : Str) -> Definiteness -> Number -> LinDet = \aon, deug, defi, num -> { + mkDet : (seven, teen : Str) -> Species -> Number -> LinDet = \aon, deug, defi, num -> { s = \\_,_ => aon ; s2 = \\_,_ => deug ; sp = aon ; @@ -390,7 +265,7 @@ oper QPl _ => NA } ; sp = "an" ; --- meaningless for DefArt - qt = QDef Definite ; + qt = QDef Def ; } ; -------------------------------------------------------------------------------- -- Adpositions @@ -416,14 +291,14 @@ param Agr = NotPron DType | IsPron PronAgr ; oper - getDefi : Agr -> Definiteness = \a -> case a of { + getDefi : Agr -> Species = \a -> case a of { NotPron (DDef n d) => d ; - _ => Definite + _ => Def } ; LinPrep : Type = { s : PrepAgr => Str ; -- bare: aig 'on', inflected: agam 'on me', agad 'on you', … - c2 : Definiteness => CoreCase ; -- most often dative + c2 : Species => Case ; -- most often dative replacesObjPron : Bool ; -- NP has to keep track of if it comes from a Pron -- If your language has both pre- and postpositions, you need an inherent parameter in Prep to record which one a given Prep is. @@ -434,18 +309,18 @@ oper PrepForms : Type = {base, sg1, sg2, sg3M, sg3F, pl1, pl2, pl3 : Str} ; - H, N, LENITION_DEBUG : Str ; - H = pre {#vowel => "h" ++ BIND ; _ => []} ; - N = pre {#vowel => "n-" ++ BIND ; _ => []} ; + h, n, LENITION_DEBUG : Str ; + h = pre {#vowel => "h" ++ BIND ; _ => []} ; + n = pre {#vowel => "n-" ++ BIND ; _ => []} ; LENITION_DEBUG = "^L" ; -- Only for debugging purposes—replace with empty string for production invarPrepForms : Str -> PrepForms = \str -> {base=str ; sg1=str++"mo" + LENITION_DEBUG; sg2=str++"do" + LENITION_DEBUG; sg3M=str++"a" + LENITION_DEBUG; - sg3F=str++"a"++H; pl1=str++"àr"++N; pl2=str++"ùr"++N; pl3=str++AN} ; -- AN is defined as an allomorph to def art, TODO does the possessive add t- before vowel? + sg3F=str++"a"++h; pl1=str++"àr"++n; pl2=str++"ùr"++n; pl3=str++AN} ; -- AN is defined as an allomorph to def art, TODO does the possessive add t- before vowel? mkLinPrep : (replacesObjPron : Bool) - -> (indef,defi : CoreCase) + -> (indef,defi : Case) -> (objForms, possForms : PrepForms) -> LinPrep = \replaces,casIndef,casDef,objForms,possForms -> { @@ -485,13 +360,12 @@ oper mkPrep : (objForms, possForms : PrepForms) -> LinPrep = smartPrep ; mkPrep : (objForms, possForms : PrepForms) -> Mutation -> LinPrep = \obj,poss,mutation -> mkLinPrep True (Dat mutation) (Dat mutation) obj poss ; - mkPrep : (replacesObjPron : Bool) -> (indef,defi : CoreCase) + mkPrep : (replacesObjPron : Bool) -> (indef,defi : Case) -> (objForms, possForms : PrepForms) -> LinPrep = mkLinPrep } ; emptyPrep : LinPrep = { s = \\_ => [] ; - poss = \\_ => [] ; c2 = \\_ => Dat Lenited ; replacesObjPron = False } ; @@ -499,7 +373,7 @@ oper aigPrep : LinPrep = mkPrep {base="aig"; sg1="agam"; sg2="agad"; sg3M="aige"; sg3F="aice"; pl1="againn"; pl2="agaibh"; pl3="aca"} - {base="aig"; sg1="'gam" + LENITION_DEBUG; sg2="'gad" + LENITION_DEBUG; sg3M="'ga" + LENITION_DEBUG; sg3F="'ga"++H; pl1="'gar"++N; pl2="'gur"++N; pl3="'gan"} + {base="aig"; sg1="'gam" + LENITION_DEBUG; sg2="'gad" + LENITION_DEBUG; sg3M="'ga" + LENITION_DEBUG; sg3F="'ga"++h; pl1="'gar"++n; pl2="'gur"++n; pl3="'gan"} NoMutation ; airPrep : LinPrep = @@ -511,7 +385,7 @@ oper annPrep : LinPrep = mkPrep {base="ann"; sg1="annam"; sg2="annad"; sg3M="ann"; sg3F="innte"; pl1="annainn"; pl2="annaibh"; pl3="annta"} - {base="ann"; sg1="'nam" + LENITION_DEBUG; sg2="'nad" + LENITION_DEBUG; sg3M="'na" + LENITION_DEBUG; sg3F="'na"++H; pl1="'nar"++N; pl2="'nur"++N; pl3="'nan"} + {base="ann"; sg1="'nam" + LENITION_DEBUG; sg2="'nad" + LENITION_DEBUG; sg3M="'na" + LENITION_DEBUG; sg3F="'na"++h; pl1="'nar"++n; pl2="'nur"++n; pl3="'nan"} NoMutation ; àsPrep : LinPrep = @@ -523,14 +397,14 @@ oper bhoPrep : LinPrep = mkPrep {base="bho"; sg1="bhuam"; sg2="bhuat"; sg3M="bhuaithe"; sg3F="bhuaipe"; pl1="bhuainn"; pl2="buaibh"; pl3="bhuapa"} - {base="bho"; sg1="bhom" + LENITION_DEBUG; sg2="bhod" + LENITION_DEBUG; sg3M="bho a" + LENITION_DEBUG; sg3F="bho a"++H; pl1="bhor"++N; pl2="bhu"++N; pl3="bhon"} + {base="bho"; sg1="bhom" + LENITION_DEBUG; sg2="bhod" + LENITION_DEBUG; sg3M="bho a" + LENITION_DEBUG; sg3F="bho a"++h; pl1="bhor"++n; pl2="bhu"++n; pl3="bhon"} Lenited ; {- dePrep : LinPrep = …-} doPrep : LinPrep = mkPrep {base="do"; sg1="dhomh"; sg2="dhut"; sg3M="dha"; sg3F="dhi"; pl1="dhuinn"; pl2="dhuibh"; pl3="dhiubh"} - {base="bho"; sg1="dom" + LENITION_DEBUG; sg2="dod" + LENITION_DEBUG; sg3M="dha" + LENITION_DEBUG; sg3F="dha"++H; pl1="dor"++N; pl2="dhur"++N; pl3="don"} + {base="bho"; sg1="dom" + LENITION_DEBUG; sg2="dod" + LENITION_DEBUG; sg3M="dha" + LENITION_DEBUG; sg3F="dha"++h; pl1="dor"++n; pl2="dhur"++n; pl3="don"} Lenited ; {- eadarPrep : LinPrep = …-} @@ -541,7 +415,7 @@ oper (Dat NoMutation) {-governs dative when indefinite, no mutation-} Gen {-governs genitive when definite-} {base="gu"; sg1="ugam"; sg2="ugad"; sg3M="uige"; sg3F="uice"; pl1="ugainn"; pl2="ugaibh"; pl3="uca"} - {base="gu"; sg1="gum" + LENITION_DEBUG; sg2="gud" + LENITION_DEBUG; sg3M="gu a" + LENITION_DEBUG; sg3F="gu a"++H; pl1="gar"++N; pl2="gur"++N; pl3="gun"} + {base="gu"; sg1="gum" + LENITION_DEBUG; sg2="gud" + LENITION_DEBUG; sg3M="gu a" + LENITION_DEBUG; sg3F="gu a"++h; pl1="gar"++n; pl2="gur"++n; pl3="gun"} ; -------------------------------------------------------------------------------- @@ -549,68 +423,89 @@ oper -- Lamb p. 220 basic morphology, degree -- Lamb p. 246: predicative adjectives - LinA : Type = SS ; +param + AForm = ASg Case Gender | APl ; + +oper + LinA : Type = {s: AForm => Str; voc: Gender => Str; compar: Str} ; -- 686 + oper mkAdj : (_,_,_,_,_,_,_,_,_,_ : Str) -> LinA = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10 -> + { s = table { + ASg (Nom _) Masc => f1 ; + ASg (Nom _) Fem => f2 ; + ASg (Dat _) Masc => f3 ; + ASg (Dat _) Fem => f4 ; + ASg Gen Masc => f5 ; + ASg Gen Fem => f6 ; + APl => f7 + } ; + voc = table { + Masc => f8 ; + Fem => f9 + } ; + compar = f10 ; + } ; + LinA2 : Type = LinA ; - mkAdj : Str -> LinA = \str -> {s = str} ; - - AdjPhrase : Type = LinA ; -- ** {compar : Str} ; + LinAP : Type = LinA ; -- ** {compar : Str} ; -------------------------------------------------------------------------------- -- Verbs param - VAgr = VSg1 | VSg2 | VSg3 | VPl1 | VPl2 | VPl3 ; - VForm = VInf | VPres VAgr | VPast VAgr ; -- TODO - + VForm = Indep | Dep ; + oper - nagr2vagr : Agr -> VAgr = \a -> case a of { - NotPron (DDef Sg _) => VSg3 ; - NotPron (DDef Pl _) => VPl3 ; - - -- this is the number of the possessee—number of possessor only matters for PrepNP! - NotPron (DPoss Sg _) => VSg3 ; - NotPron (DPoss Pl _) => VPl3 ; - - -- this is subject pronoun, which agrees with verb - IsPron Sg1 => VSg1 ; - IsPron Sg2 => VSg2 ; - IsPron (Sg3 _) => VSg3 ; - IsPron Pl1 => VPl1 ; - IsPron Pl2 => VPl2 ; - IsPron Pl3 => VPl3 - } ; - - LinV : Type = { - s : VForm => Str - } ; + LinV = {s: Str; conditional: Number => Str; imperative: Person => Number => Str; future, past : VForm => Str; noun, participle: Str} ; LinV2 : Type = LinV ** { c2 : LinPrep ; } ; - mkVerb : Str -> LinV = \str -> { - s = table { - _ => str - } - } ; - - copula : LinV = {s = \\_ => "TODO: copula"} ; -- often useful + mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> LinV = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15 -> + { s = f1 ; + conditional = table { + Sg => f2 ; + Pl => f3 + } ; + imperative = table { + P1 => table { + Sg => f4 ; + Pl => f5 + } ; + P2 => table { + Sg => f6 ; + Pl => f7 + } ; + P3 => table { + Sg => f8 ; + Pl => f9 + } + } ; + future = table { + Indep => f10 ; + Dep => f11 + } ; + past = table { + Indep => f12 ; + Dep => f13 + } ; + noun = f14 ; + participle = f15 + } ; ------------------ -- VP -- Lamb p. 229 -- "tense, aspect, modality, voice, person and number. There are contrasts to be seen, as above, between inflected and periphrastic forms and, as a whole, periphrasis is more productive." - LinVP : Type = { - s : VForm => Str ; - } ; + LinVP : Type = LinV ; LinVPSlash : Type = LinVP ** { c2 : LinPrep ; } ; - linVP : LinVP -> Str = \vp -> vp.s ! VInf ; - -------------------------------------------------------------------------------- -- Cl, S @@ -622,4 +517,46 @@ oper linCl : LinCl -> Str = \cl -> cl.subj ++ cl.pred ; + +oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> LinN = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,g -> + { s = table { + Nom _ => table { + Indef => table { + Sg => f1 ; + Pl => f2 + } ; + Def => table { + Sg => f3 ; + Pl => f4 + } + } ; + Dat _ => table { + Indef => table { + Sg => f5 ; + Pl => f6 + } ; + Def => table { + Sg => f7 ; + Pl => f8 + } + } ; + Gen => table { + Indef => table { + Sg => f9 ; + Pl => f10 + } ; + Def => table { + Sg => f11 ; + Pl => f12 + } + } + } ; + voc = table { + Sg => f13 ; + Pl => f14 + } ; + g = g + } ; + } diff --git a/src/gaelic/SentenceGla.gf b/src/gaelic/SentenceGla.gf index 523eb632..9a81f2c8 100644 --- a/src/gaelic/SentenceGla.gf +++ b/src/gaelic/SentenceGla.gf @@ -13,7 +13,7 @@ lin subj = linNP np ; -- article and CN are discontinuous in NP! linNP just picks nominative unmutated. pred = -- table {something with tense+polarity => - vp.s ! VPres (nagr2vagr np.a) + vp.s -- TODO: all of the VP's tense and polarity should be open here! -- PredVP only decides the subject. -- } From 1f5615c0bb18796293ab5069d9e3813fb79fb443 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 11:53:22 +0100 Subject: [PATCH 078/169] missed AllGlaAbs.gf --- src/gaelic/AllGlaAbs.gf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/gaelic/AllGlaAbs.gf diff --git a/src/gaelic/AllGlaAbs.gf b/src/gaelic/AllGlaAbs.gf new file mode 100644 index 00000000..0abea7cd --- /dev/null +++ b/src/gaelic/AllGlaAbs.gf @@ -0,0 +1,3 @@ +abstract AllGlaAbs = + Lang + ** {} \ No newline at end of file From 071b2af9c3ceeb06a661ed8ac565e325491439e7 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 11:53:36 +0100 Subject: [PATCH 079/169] added gaelic --- languages.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/languages.csv b/languages.csv index 3c191a1c..e5adb275 100644 --- a/languages.csv +++ b/languages.csv @@ -16,6 +16,7 @@ Eus,Basque,basque,,,,,,,,y,n Fao,Faroese,faroese,,,,y,n,n,n,y,n Fin,Finnish,finnish,,,y,,,,y,y,y Fre,French,french,Romance,,y,,,,y,y,y +Gla,Gaelic,gaelic,,,,y,n,n,n,y,n Ger,German,german,,,y,,,,,y,y Grc,Ancient Greek,ancient_greek,,,y,,n,n,,n,n Gre,Greek,greek,,,,,,,,y,n From d833b245098d2ee3e48f31db2207f9c47418ccaa Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 12:36:28 +0100 Subject: [PATCH 080/169] added AdjCN --- src/gaelic/AdjectiveGla.gf | 9 ++++----- src/gaelic/CatGla.gf | 2 +- src/gaelic/NounGla.gf | 10 +++++++--- src/gaelic/ResGla.gf | 11 ++++++++++- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/gaelic/AdjectiveGla.gf b/src/gaelic/AdjectiveGla.gf index 8d103483..5a2de9aa 100644 --- a/src/gaelic/AdjectiveGla.gf +++ b/src/gaelic/AdjectiveGla.gf @@ -6,13 +6,12 @@ concrete AdjectiveGla of Adjective = CatGla ** open ResGla, Prelude in { -- : AP -> Adv -> AP ; -- warm by nature AdvAP ap adv = ap ** { - s = ap.s ++ adv.s ; + s = \\af => ap.s ! af ++ adv.s ; + voc = \\g => ap.voc ! g ++ adv.s } ; -- : A -> AP ; - --PositA a = a ** { - -- compar = [] ; - -- } ; + PositA a = a ; -- : A -> NP -> AP ; --ComparA a np = a ** { @@ -45,7 +44,7 @@ concrete AdjectiveGla of Adjective = CatGla ** open ResGla, Prelude in { -- compar = [] -- } ; -- AdjOrd : Ord -> AP = - AdjOrd ord = ord ; + -- AdjOrd ord = ord ; -- Sentence and question complements defined for all adjectival -- phrases, although the semantics is only clear for some adjectives. diff --git a/src/gaelic/CatGla.gf b/src/gaelic/CatGla.gf index 6e23a46d..3b9fc8bd 100644 --- a/src/gaelic/CatGla.gf +++ b/src/gaelic/CatGla.gf @@ -41,7 +41,7 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { --2 Adjectival phrases -- Constructed in AdjectiveGla. - AP = SS ; + AP = LinAP ; --2 Nouns and noun phrases diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index b9e620aa..2a622364 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -168,10 +168,14 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : N3 -> N2 ; -- distance (to Paris) Use3N3 n3 = lin N2 n3 ; - +-} -- : AP -> CN -> CN - AdjCN ap cn = - + AdjCN ap cn = { + s = \\c,s,n => cn.s ! c ! s ! n ++ ap.s ! aform c n cn.g ; + voc = \\n => cn.voc ! n ++ ap.voc ! cn.g ; + g = cn.g + } ; +{- -- : CN -> RS -> CN ; RelCN cn rs = diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 691dfae4..40a1149c 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -44,6 +44,7 @@ oper oper LinN : Type = {s: Case => Species => Number => Str; voc: Number => Str; g: Gender} ; + mk5N : (_,_,_,_,_ : Str) -> Gender -> LinN ; mk5N nom dat gen pl pal g = { s = table { Nom _ => table { @@ -426,6 +427,13 @@ oper param AForm = ASg Case Gender | APl ; +oper + aform : Case -> Number -> Gender -> AForm = + \c,n,g -> case n of { + Sg => ASg c g ; + Pl => APl + } ; + oper LinA : Type = {s: AForm => Str; voc: Gender => Str; compar: Str} ; -- 686 oper mkAdj : (_,_,_,_,_,_,_,_,_,_ : Str) -> LinA = @@ -448,7 +456,8 @@ oper LinA2 : Type = LinA ; - LinAP : Type = LinA ; -- ** {compar : Str} ; + LinAP : Type = {s: AForm => Str; voc: Gender => Str} ; -- 686 + -------------------------------------------------------------------------------- -- Verbs From d589cedc6bdebf4d86db901989bbab0fa479ba65 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 12:41:31 +0100 Subject: [PATCH 081/169] fix typechecking with the normal type checker --- src/gaelic/MorphoGla.gf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gaelic/MorphoGla.gf b/src/gaelic/MorphoGla.gf index b9f7ee7b..4d9dae8c 100644 --- a/src/gaelic/MorphoGla.gf +++ b/src/gaelic/MorphoGla.gf @@ -2026,6 +2026,7 @@ mkA092 base = _ => error "Can't apply paradigm mkA092" } ; +reg4N' : (_,_,_,_ : Str) -> Gender -> LinN ; reg4N' nom pl gen pal g = lin N { s = table { From b84d05034d9145e6fbb8f8c86b51c373237c9082 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 12:46:05 +0100 Subject: [PATCH 082/169] more type signatures --- src/gaelic/ParadigmsGla.gf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf index c3d59120..1154c21f 100644 --- a/src/gaelic/ParadigmsGla.gf +++ b/src/gaelic/ParadigmsGla.gf @@ -2136,10 +2136,10 @@ mkV3 = overload { mkV3 : V -> Prep -> Prep -> V3 = \v,p2,p3 -> lin V3 v ** {c2=p2; c3=p3} ; } ; -oper mkLN = \s -> lin LN {s=s} ; -oper mkGN = \s -> lin GN {s=s} ; -oper mkSN = \s -> lin SN {s=s} ; -oper mkPN = \s -> lin PN {s=s} ; +oper mkLN : Str -> LN = \s -> lin LN {s=s} ; +oper mkGN : Str -> GN = \s -> lin GN {s=s} ; +oper mkSN : Str -> SN = \s -> lin SN {s=s} ; +oper mkPN : Str -> PN = \s -> lin PN {s=s} ; mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; From fd817f80d6e75d61f0a22426f0a5c1d8f0db7a31 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 12:51:53 +0100 Subject: [PATCH 083/169] add a lock field --- src/gaelic/ParadigmsGla.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf index 1154c21f..f5210104 100644 --- a/src/gaelic/ParadigmsGla.gf +++ b/src/gaelic/ParadigmsGla.gf @@ -2081,7 +2081,7 @@ mkA2 : A -> A2 = \n -> lin A2 n ** {c2=noPrep} ; mkN = overload { mkN : Str -> N = \s -> lin N (regN s) ; -- nom;indef;sg - mkN : (nom,gen : Str) -> N = reg2N; -- nom;indef;sg gen;indef;sg + mkN : (nom,gen : Str) -> N = \nom,gen -> lin N (reg2N nom gen) ; -- nom;indef;sg gen;indef;sg mkN : (nom,gen,pl : Str) -> Gender -> N = \loch,locha,lochan,g -> mk5N loch loch locha lochan (palatalise loch) g ; From fff1c40f2482e4c8898253df6508d36c3f62cde6 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 12:54:45 +0100 Subject: [PATCH 084/169] added UttNP --- src/gaelic/PhraseGla.gf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gaelic/PhraseGla.gf b/src/gaelic/PhraseGla.gf index a89ad298..a267dd89 100644 --- a/src/gaelic/PhraseGla.gf +++ b/src/gaelic/PhraseGla.gf @@ -7,9 +7,11 @@ concrete PhraseGla of Phrase = CatGla ** open Prelude, ResGla in { {- UttQS qs = qs ; - UttIAdv iadv = iadv ; - UttNP np = - UttIP ip = + UttIAdv iadv = iadv ; -} + + UttNP np = {s = linNP np} ; + +{- UttIP ip = UttImpSg pol imp = { s = pol.s ++ imp.s ! Sg ! pol.p } ; UttImpPl pol imp = UttImpPol pol imp = {s = pol.s ++ imp.s ! Sg ! pol.p} ; From ffc10a32c918e6f17426836c1cd3ba178379ae5d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 6 Nov 2025 13:47:58 +0100 Subject: [PATCH 085/169] guessed VocNP, UttCN, UttAP --- src/gaelic/NounGla.gf | 4 ++++ src/gaelic/PhraseGla.gf | 12 ++++++------ src/gaelic/ResGla.gf | 2 ++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index 2a622364..a315be5f 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -13,6 +13,10 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { DDef n sp => cn.s ! c ! sp ! n ; DPoss n _ => cn.s ! c ! Def ! n -- ???????????????? } ; + voc = case det.dt of { + DDef n sp => cn.voc ! n ; -- ???????????????? guessed + DPoss n _ => cn.voc ! n -- ???????????????? + } ; a = NotPron det.dt ; } ; diff --git a/src/gaelic/PhraseGla.gf b/src/gaelic/PhraseGla.gf index a267dd89..851a5322 100644 --- a/src/gaelic/PhraseGla.gf +++ b/src/gaelic/PhraseGla.gf @@ -15,16 +15,16 @@ concrete PhraseGla of Phrase = CatGla ** open Prelude, ResGla in { UttImpSg pol imp = { s = pol.s ++ imp.s ! Sg ! pol.p } ; UttImpPl pol imp = UttImpPol pol imp = {s = pol.s ++ imp.s ! Sg ! pol.p} ; - UttVP vp = {s = linVP vp} ; - UttAP ap = { s = ap.s } ; - UttAdv adv = {s = } ; - UttCN n = {s = } ; - UttCard n = {s = } ; -} + UttVP vp = {s = linVP vp} ; -} + UttAP ap = { s = ap.s ! ASg NOM Masc } ; + UttAdv adv = {s = adv.s} ; + UttCN n = {s = n.s ! NOM ! Indef ! Sg} ; +-- UttCard n = {s = } ; UttInterj i = i ; NoPConj = {s = []} ; -- PConjConj conj = {s = conj.s1 ++ conj.s2 ! …} ; NoVoc = {s = []} ; --- VocNP np = { s = "," ++ np.s ! … } ; + VocNP np = {s = "," ++ np.art ! NOM ++ np.voc} ; --guessed } diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 40a1149c..aa652904 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -169,6 +169,7 @@ oper -- or do we have an exhaustive list of prepositions that merge, and we can make that into a param and put on a LHS here? s : Case => Str ; -- TODO: is lenition a separate dimension from case? + voc : Str ; empty : Str ; -- to avoid metavariables a : Agr ; -- includes whether it's pron and whether it's definite. TODO: probably can make even leaner (wasn't a prio so far). } ; @@ -177,6 +178,7 @@ oper emptyNP : LinNP = { s,art = \\_ => [] ; + voc = [] ; a = NotPron (DDef Sg Indef) ; -- we assume pronouns are definite by default. also it just matters for PrepNP. empty = [] ; } ; From 48658e3689c52b400f56f3267b09145316e89fcd Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 14 Nov 2025 10:52:59 +0100 Subject: [PATCH 086/169] fix some of the nouns --- src/scots/LexiconSco.gf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/scots/LexiconSco.gf b/src/scots/LexiconSco.gf index 4a419bff..e6d6aee0 100644 --- a/src/scots/LexiconSco.gf +++ b/src/scots/LexiconSco.gf @@ -7,11 +7,11 @@ flags optimize=values ; lin - airplane_N = regN "airplane" ; + airplane_N = mkN "airieplane" ; alas_Interj = ss "alas" ; answer_V2S = mkV2S (mkV "answer" "answered") toP ; apartment_N = regN "apartment" ; - apple_N = regN "apple" ; + apple_N = mkN "aiple" ; art_N = regN "art" ; ask_V2Q = mkV2Q (regV "ask") noPrep ; baby_N = regN "baby" ; @@ -48,13 +48,13 @@ lin ceiling_N = regN "ceiling" ; chair_N = regN "chair" ; cheese_N = regN "cheese" ; - child_N = mk2N "child" "children" ; - church_N = regN "church" ; - city_N = regN "city" ; + child_N = mkN "bairn" ; + church_N = mkN "kirk" ; + city_N = mkN "ceety" ; clean_A = regADeg "clean" ; clever_A = mkA "clever" "cleverer" ; close_V2 = dirV2 (regV "close") ; - coat_N = regN "coat" ; + coat_N = mkN "sark" ; cold_A = regADeg "cold" ; come_V = (irregV "come" "came" "come") ; computer_N = regN "computer" ; @@ -139,7 +139,7 @@ lin pen_N = regN "pen" ; planet_N = regN "planet" ; plastic_N = regN "plastic" ; - play_V2 = dirV2 (regV "play") ; + play_V2 = dirV2 (regV "spiel") ; policeman_N = mkN masculine (mkN "policeman" "policemen") ; priest_N = mkN human (regN "priest") ; probable_AS = mkAS (regA "probable") ; @@ -154,7 +154,7 @@ lin rock_N = regN "rock" ; roof_N = regN "roof" ; rubber_N = regN "rubber" ; - run_V = (irregDuplV "run" "ran" "run") ; + run_V = (irregDuplV "rin" "ran" "run") ; say_VS = mkVS (irregV "say" "said" "said") ; school_N = regN "school" ; science_N = regN "science" ; From c7fe453c12e39db575ef7aff54e6b08ac2c0c351 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 14 Nov 2025 14:12:57 +0100 Subject: [PATCH 087/169] use consistent lin X everywhere --- src/arabic/ConstructionAra.gf | 18 +++++----- src/arabic/LexiconAra.gf | 6 ++-- src/arabic/ParadigmsAra.gf | 20 +++++------ src/arabic/StructuralAra.gf | 2 +- src/armenian/ParadigmsHye.gf | 44 +++++++++++------------ src/basque/ConjunctionEus.gf | 4 +-- src/basque/ParadigmsEus.gf | 4 +-- src/belarusian/ParadigmsBel.gf | 44 +++++++++++------------ src/bulgarian/LangBul.gf | 2 +- src/bulgarian/MorphoFunsBul.gf | 4 +-- src/chinese/ParadigmsChi.gf | 2 +- src/english/ExtendEng.gf | 6 ++-- src/estonian/ExtendEst.gf | 6 ++-- src/estonian/ParadigmsEst.gf | 4 +-- src/faroese/ParadigmsFao.gf | 44 +++++++++++------------ src/finnish/DocumentationFinFunctor.gf | 4 +-- src/finnish/ExtendFin.gf | 2 +- src/finnish/ParadigmsFin.gf | 6 ++-- src/gaelic/ParadigmsGla.gf | 4 +-- src/german/ExtraGer.gf | 4 +-- src/hindi/ParadigmsHin.gf | 6 ++-- src/hungarian/ParadigmsHun.gf | 8 ++--- src/icelandic/ParadigmsIce.gf | 6 ++-- src/korean/ConjunctionKor.gf | 6 ++-- src/korean/LexiconKor.gf | 6 ++-- src/korean/ParadigmsKor.gf | 6 ++-- src/latin/ParadigmsLat.gf | 6 ++-- src/latvian/SentenceLav.gf | 2 +- src/malay/ParadigmsMay.gf | 25 +++++++++++++- src/malay/ResMay.gf | 25 -------------- src/nepali/QuestionNep.gf | 6 ++-- src/persian/IdiomPes.gf | 2 +- src/persian/ParadigmsPes.gf | 38 ++++++++++---------- src/polish/AdjectiveMorphoPol.gf | 2 +- src/polish/MorphoPol.gf | 4 +-- src/polish/VerbMorphoPol.gf | 8 ++--- src/portuguese/ConstructionPor.gf | 6 ++-- src/punjabi/LexiconPnb.gf | 6 ++-- src/punjabi/ParadigmsPnb.gf | 2 +- src/romance/ExtendRomanceFunctor.gf | 2 +- src/rukiga/ParadigmsCgg.gf | 12 +++---- src/russian/DocumentationRusFunctor.gf | 2 +- src/russian/ParadigmsRus.gf | 6 ++-- src/sindhi/LexiconSnd.gf | 1 - src/sindhi/MorphoSnd.gf | 34 +++++++++--------- src/sindhi/ParadigmsSnd.gf | 2 +- src/sindhi/src/MorphoSnd.gf | 34 +++++++++--------- src/slovenian/ParadigmsSlv.gf | 14 ++++---- src/somali/NounSom.gf | 2 +- src/somali/ParadigmsSom.gf | 4 +-- src/somali/StructuralSom.gf | 19 +++++----- src/spanish/MorphoSpa.gf | 48 +++++++++++++------------- src/swahili/ParadigmsSwa.gf | 2 +- src/thai/ConstructionTha.gf | 2 +- src/thai/LexiconTha.gf | 20 +++++------ src/turkish/ParadigmsTur.gf | 8 ++--- src/ukrainian/ParadigmsUkr.gf | 44 +++++++++++------------ src/urdu/ParadigmsUrd.gf | 8 ++--- 58 files changed, 330 insertions(+), 334 deletions(-) diff --git a/src/arabic/ConstructionAra.gf b/src/arabic/ConstructionAra.gf index 0542f3e0..bd762048 100644 --- a/src/arabic/ConstructionAra.gf +++ b/src/arabic/ConstructionAra.gf @@ -31,15 +31,15 @@ lin monthAdv january = let january_CN : CN = mkCN month_Timeunit (mkNP (mkPN january)) ; - january_NP : NP = R.emptyNP ** + january_NP : NP = lin NP R.emptyNP ** {s = \\c => R.cn2str january_CN R.Sg R.Const c ; a = {pgn = R.Per3 january_CN.g R.Sg ; isPron = False}} ; - in SyntaxAra.mkAdv R.biPrep january_NP ; + in SyntaxAra.mkAdv ParadigmsAra.biPrep january_NP ; yearAdv y = SyntaxAra.mkAdv in_Prep y ; -- dummy - dayMonthAdv d m = SyntaxAra.mkAdv on_Prep (mkNP d) ; -- on 17 May + dayMonthAdv d m = SyntaxAra.mkAdv on_Prep (mkNP m) ; -- on 17 May monthYearAdv m y = SyntaxAra.mkAdv on_Prep (mkNP m) ; -- in May 2012 dayMonthYearAdv d m y = SyntaxAra.mkAdv on_Prep y ; -- on 17 May 2013 @@ -51,7 +51,7 @@ lin let ap = mkAP a in ap ** { s = \\s,g,n,d,c => ap.s ! s ! g ! n ! d ! c - ++ (mkAdv R.biPrep (mkNP amount_N)).s + ++ (mkAdv ParadigmsAra.biPrep (mkNP amount_N)).s ++ (mkNP card cn).s ! R.Bare ---- ? /IL } ; @@ -60,26 +60,26 @@ oper amount_N : N = mkN "مِقْدَار" "مَقَادِير" masc nohum ; -- hack used in the name constructions - toNP : Bool -> NP -> NP = \b -> if_then_else NP b R.emptyNP ; + toNP : Bool -> NP -> NP = \b -> if_then_else NP b (lin NP R.emptyNP) ; lin -- : NP -> NP -> Cl have_name_Cl np nm = - let subjPron : Pron = R.np2pron np ; + let subjPron : Pron = lin Pron (R.np2pron np) ; me : NP = toNP np.a.isPron np ; myName : NP = E.ApposNP me (mkNP (mkDet subjPron) L.name_N) ; in mkCl myName nm ; -- : NP -> QCl what_name_QCl np = - let subjPron : Pron = R.np2pron np ; + let subjPron : Pron = lin Pron (R.np2pron np) ; me : R.NP = toNP np.a.isPron np ; myName : NP = E.ApposNP me (mkNP (mkDet subjPron) L.name_N) ; - what_IP : R.IP = R.mkIP "مَا هُوَ" R.Sg ; + what_IP : IP = lin IP (R.mkIP "مَا هُوَ" R.Sg) ; in mkQCl what_IP myName ; how_old_QCl np = - let subjPron : Pron = R.np2pron np ; + let subjPron : Pron = lin Pron (R.np2pron np) ; me : R.NP = toNP np.a.isPron np ; age_N = mkN "عُمر" ; myAge : NP = E.ApposNP me (mkNP (mkDet subjPron) L.name_N) ; diff --git a/src/arabic/LexiconAra.gf b/src/arabic/LexiconAra.gf index d10f07ec..05bbf115 100644 --- a/src/arabic/LexiconAra.gf +++ b/src/arabic/LexiconAra.gf @@ -23,7 +23,7 @@ flags beautiful_A = sndA "جمل" "فَعِيل" ; become_VA = mkVA (v4 "صبح") ; beer_N = sdfN "بير" "فِعلة" Fem NoHum ; - beg_V2V = mkV2V (mkVV (v5 "وسل")) noPrep ; + beg_V2V = mkV2V (mkVV (v5 "وسل")) ParadigmsAra.noPrep ; big_A = sndA "كبر" "فَعِيل" ; bike_N = sdfN "درج" "فَعّالة" Fem NoHum ; bird_N = brkN "طير" "فَعل" "فُعُول" Masc NoHum; @@ -72,7 +72,7 @@ flags door_N = brkN "بوب" "فاع" "أَفعَال" Masc NoHum ; drink_V2 = dirV2 (regV "شَرِب") ; -- drink_V2 = dirV2 (v1 "شرب" i a) ; - easy_A2V = mkA2 (sndA "سهل" "فَعل") liPrep ; + easy_A2V = mkA2 (sndA "سهل" "فَعل") ParadigmsAra.liPrep ; eat_V2 = dirV2 (mkV "ءكل" FormI) ; empty_A = sndA "فرغ" "فاعِل" ; enemy_N = brkN "عدو" "فَعُلّ" "أَفعَاء" Masc Hum ; @@ -202,7 +202,7 @@ flags switch8off_V2 = dirV2 (v4 "طفء") ; switch8on_V2 = dirV2 (v4 "شعل") ; table_N = sdfN "طول" "فاعِلة" Fem NoHum ; - talk_V3 = mkV3 (v5 "حدث") liPrep (mkPrep "عَن") ; + talk_V3 = mkV3 (v5 "حدث") ParadigmsAra.liPrep (mkPrep "عَن") ; teacher_N = sdmN "علم" "مُفَعِّل" Masc Hum ; --mucal~imö teach_V2 = dirV2 (v2 "علم") ; television_N = mkN (sndf "تِلِفِزيُون") Masc NoHum ; diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 1c6540e3..b5cf1340 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -108,7 +108,7 @@ resource ParadigmsAra = open ---- ++ n.s2 ! Sg ! Def ! c -- NB this hack works for idaafa constructions (if you used mkN : N -> N -> N), but wrong for mkN : N -> A -> N. /IL ---- }))) ; mkLN : NP -> LN - = \np -> np ; + = \np -> lin LN np ; } ; --3 Relational nouns @@ -814,7 +814,7 @@ resource ParadigmsAra = open dirV3 = overload { dirV3 : V -> Prep -> V3 = \v,p -> mkV3 v (casePrep acc) p ; - dirV3 : V -> Str -> V3 = \v,s -> mkV3 v (casePrep acc) (mkPreposition s) + dirV3 : V -> Str -> V3 = \v,s -> mkV3 v (casePrep acc) (mkPrep s) } ; dirdirV3 v = dirV3 v (casePrep acc) ; @@ -875,7 +875,7 @@ resource ParadigmsAra = open mkAS, mkAV = \a -> a ; mkA2S, - mkA2V = \a,p -> prepA2 a (mkPreposition p) ; + mkA2V = \a,p -> lin A (prepA2 a (mkPreposition p)) ; @@ -951,25 +951,25 @@ oper wmkA : {masc_sg, masc_pl, root, sg_patt : Str} -> A = \r -> mkA r.root r.sg_patt ; wmkA : {masc_sg, fem_sg, masc_pl, fem_pl, root, pl_patt : Str} -> A - = \r -> mascFemAdj r.masc_sg r.fem_sg ; + = \r -> mascFemA r.masc_sg r.fem_sg ; wmkA : {masc_sg, fem_sg, masc_pl, fem_pl, root : Str} -> A - = \r -> mascFemAdj r.masc_sg r.fem_sg ; + = \r -> mascFemA r.masc_sg r.fem_sg ; wmkA : {masc_sg, fem_sg, root : Str} -> A = \r -> mkA r.root ; ---- wmkA : {masc_sg, fem_sg, masc_pl, fem_pl, pl_patt : Str} -> A - = \r -> mascFemAdj r.masc_sg r.fem_sg ; + = \r -> mascFemA r.masc_sg r.fem_sg ; wmkA : {masc_sg : Str; fem_sg : Str; fem_pl : Str} -> A - = \r -> mascFemAdj r.masc_sg r.fem_sg ; + = \r -> mascFemA r.masc_sg r.fem_sg ; wmkA : {masc_sg : Str; fem_sg : Str; root : Str ; sg_patt : Str} -> A = \r -> mkA r.root r.sg_patt ; wmkA : {masc_sg : Str; fem_sg : Str} -> A - = \r -> mascFemAdj r.masc_sg r.fem_sg ; + = \r -> mascFemA r.masc_sg r.fem_sg ; wmkA : {masc_sg : Str; masc_pl : Str; fem_sg : Str; fem_pl : Str} -> A - = \r -> mascFemAdj r.masc_sg r.fem_sg ; + = \r -> mascFemA r.masc_sg r.fem_sg ; wmkA : {masc_sg : Str; masc_pl : Str; fem_sg : Str; root : Str} -> A = \r -> mkA r.root ; wmkA : {masc_sg : Str; masc_pl : Str; fem_sg : Str} -> A - = \r -> mascFemAdj r.masc_sg r.fem_sg ; + = \r -> mascFemA r.masc_sg r.fem_sg ; wmkA : {masc_sg : Str; masc_pl : Str; root : Str} -> A = \r -> mkA r.root ; wmkA : {masc_sg : Str; masc_pl, pl_patt : Str; root : Str} -> A diff --git a/src/arabic/StructuralAra.gf b/src/arabic/StructuralAra.gf index 744af228..83652369 100644 --- a/src/arabic/StructuralAra.gf +++ b/src/arabic/StructuralAra.gf @@ -124,7 +124,7 @@ concrete StructuralAra of Structural = CatAra ** youPl_Pron = youPlMasc_Pron ; youPol_Pron = youPlFem_Pron ; -- arbitrary? - have_V2 = mkV2 ladaa_V (casePrep nom) ; -- "X has Y" literally "Y is on X" + have_V2 = mkV2 (lin V ladaa_V) (casePrep nom) ; -- "X has Y" literally "Y is on X" --have_V2 = dirV2 (regV "يَملِك") ; -- "X owns/possesses Y" lin language_title_Utt = {s = \\_ => "العربية"} ; diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf index 02210bef..4687407e 100644 --- a/src/armenian/ParadigmsHye.gf +++ b/src/armenian/ParadigmsHye.gf @@ -400,39 +400,39 @@ oper mkV : Str -> Str -> V = reg2V -- s Imperative_Jussive;Pl } ; - mkVV : V -> VV = \v -> v ; - mkVS : V -> VS = \v -> v ; - mkVQ : V -> VQ = \v -> v ; - mkVA : V -> VA = \v -> v ; + mkVV : V -> VV = \v -> lin VV v ; + mkVS : V -> VS = \v -> lin VS v ; + mkVQ : V -> VQ = \v -> lin VQ v ; + mkVA : V -> VA = \v -> lin VA v ; mkV2 = overload { - mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; - mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + mkV2 : V -> V2 = \v -> lin V2 (v ** {c2 = noPrep}) ; + mkV2 : V -> Prep -> V2 = \v,p -> lin V2 (v ** {c2 = p}) ; } ; mkV3 = overload { - mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV3 : V -> V3 = \v -> lin V3 (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> lin V3 (v ** {c2 = p1; c3 = p2}) ; } ; mkV2A = overload { - mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2A : V -> V2A = \v -> lin V2A (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> lin V2A (v ** {c2 = p1; c3 = p2}) ; } ; mkV2S = overload { - mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2S : V -> V2S = \v -> lin V2S (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> lin V2S (v ** {c2 = p1; c3 = p2}) ; } ; mkV2Q = overload { - mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2Q : V -> V2Q = \v -> lin V2Q (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> lin V2Q (v ** {c2 = p1; c3 = p2}) ; } ; mkV2V = overload { - mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2V : V -> V2V = \v -> lin V2V (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> lin V2V (v ** {c2 = p1; c3 = p2}) ; } ; mkN = overload { @@ -441,13 +441,13 @@ oper } ; mkN2 = overload { - mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; - mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + mkN2 : N -> N2 = \n -> lin N2 (n ** {c2 = noPrep}) ; + mkN2 : N -> Prep -> N2 = \n,p -> lin N2 (n ** {c2 = p}) ; } ; mkN3 = overload { - mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; - mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + mkN3 : N -> N3 = \n -> lin N3 (n ** {c2 = noPrep; c3 = noPrep}) ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> lin N3 (n ** {c2 = p1; c3 = p2}) ; } ; mkA = overload { @@ -456,8 +456,8 @@ oper } ; mkA2 = overload { - mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; - mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + mkA2 : A -> A2 = \a -> lin A2 (a ** {c2 = noPrep}) ; + mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c2 = p}) ; } ; mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; diff --git a/src/basque/ConjunctionEus.gf b/src/basque/ConjunctionEus.gf index bd3c2c79..658b412e 100644 --- a/src/basque/ConjunctionEus.gf +++ b/src/basque/ConjunctionEus.gf @@ -91,7 +91,7 @@ oper -- Use linCNIndef so that words with FinalA get the -a at the end baseCN : CN -> CN -> [CN] = \x,y -> - y ** --choose all the other fields from second argument + lin ListCN y ** --choose all the other fields from second argument { s1 = \\agr => linCNIndef x ; s2 = y.s } ; @@ -144,4 +144,4 @@ oper conjNbr : Number -> Number -> Number = \n,m -> case n of { Pl => Pl ; _ => m } ; -} \ No newline at end of file +} diff --git a/src/basque/ParadigmsEus.gf b/src/basque/ParadigmsEus.gf index c2146107..5836fee1 100644 --- a/src/basque/ParadigmsEus.gf +++ b/src/basque/ParadigmsEus.gf @@ -67,7 +67,7 @@ oper mkA = overload { mkA : Str -> A = \s -> lin A (regAdj s) ; - mkA : Str -> A -> A = \s,a -> irregAdvAdj s a + mkA : Str -> A -> A = \s,a -> lin A (irregAdvAdj s a) } ; mkA2 : Str -> Prep -> A2 = \s,pp -> lin A2 (regAdj s ** { compl = pp }) ; @@ -104,7 +104,7 @@ oper mkV2A : Str -> V2A = \s -> lin V2A (mkVerbDu s) ; -- Nor-nork mkVQ : Str -> VQ = \s -> lin VQ (mkVerbDu s) ; -- Nor-nork mkVS : Str -> VS = \s -> lin VS (mkVerbDu s) ; -- Nor-nork - mkVV : V -> VV = \v -> v ; + mkVV : V -> VV = \v -> lin VV v ; mkV2V : Str -> V2V = \s -> lin V2V (mkVerbDio s) ; -- ??? TODO check valency mkV2S : Str -> V2S = \s -> lin V2S (mkVerbDio s) ; -- Nor-nori-nork: (mutilari) (neska datorrela) erantzun diot diff --git a/src/belarusian/ParadigmsBel.gf b/src/belarusian/ParadigmsBel.gf index 9b99d0a0..470cc486 100644 --- a/src/belarusian/ParadigmsBel.gf +++ b/src/belarusian/ParadigmsBel.gf @@ -752,13 +752,13 @@ oper } ; mkN2 = overload { - mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; - mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + mkN2 : N -> N2 = \n -> lin N2 (n ** {c2 = noPrep}) ; + mkN2 : N -> Prep -> N2 = \n,p -> lin N2 (n ** {c2 = p}) ; } ; mkN3 = overload { - mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; - mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + mkN3 : N -> N3 = \n -> lin N3 (n ** {c2 = noPrep; c3 = noPrep}) ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> lin N3 (n ** {c2 = p1; c3 = p2}) ; } ; mkV = overload { @@ -766,39 +766,39 @@ oper mkV : Str -> Str -> V = reg2V -- infinitive Imperative;Sg } ; - mkVV : V -> VV = \v -> v ; - mkVS : V -> VS = \v -> v ; - mkVQ : V -> VQ = \v -> v ; - mkVA : V -> VA = \v -> v ; + mkVV : V -> VV = \v -> lin VV v ; + mkVS : V -> VS = \v -> lin VS v ; + mkVQ : V -> VQ = \v -> lin VQ v ; + mkVA : V -> VA = \v -> lin VA v ; mkV2 = overload { - mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; - mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + mkV2 : V -> V2 = \v -> lin V2 (v ** {c2 = noPrep}) ; + mkV2 : V -> Prep -> V2 = \v,p -> lin V2 (v ** {c2 = p}) ; } ; mkV3 = overload { - mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV3 : V -> V3 = \v -> lin V3 (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> lin V3 (v ** {c2 = p1; c3 = p2}) ; } ; mkV2A = overload { - mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2A : V -> V2A = \v -> lin V2A (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> lin V2A (v ** {c2 = p1; c3 = p2}) ; } ; mkV2S = overload { - mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2S : V -> V2S = \v -> lin V2S (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> lin V2S (v ** {c2 = p1; c3 = p2}) ; } ; mkV2Q = overload { - mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2Q : V -> V2Q = \v -> lin V2Q (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> lin V2Q (v ** {c2 = p1; c3 = p2}) ; } ; mkV2V = overload { - mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2V : V -> V2V = \v -> lin V2V (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> lin V2V (v ** {c2 = p1; c3 = p2}) ; } ; mkA = overload { @@ -807,8 +807,8 @@ oper } ; mkA2 = overload { - mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; - mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + mkA2 : A -> A2 = \a -> lin A2 (a ** {c2 = noPrep}) ; + mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c2 = p}) ; } ; mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; diff --git a/src/bulgarian/LangBul.gf b/src/bulgarian/LangBul.gf index 2ddb8632..5af8a89e 100644 --- a/src/bulgarian/LangBul.gf +++ b/src/bulgarian/LangBul.gf @@ -1,4 +1,4 @@ ---# -path=.:../abstract:../common:../api +--# -path=.:../abstract:../common:../api:../prelude concrete LangBul of Lang = GrammarBul, diff --git a/src/bulgarian/MorphoFunsBul.gf b/src/bulgarian/MorphoFunsBul.gf index d199b3c1..4f5bcdd8 100644 --- a/src/bulgarian/MorphoFunsBul.gf +++ b/src/bulgarian/MorphoFunsBul.gf @@ -168,7 +168,7 @@ oper -- prepN2 : N -> Prep -> N2 ; - prepN2 n p = n ** {c2 = p} ; + prepN2 n p = lin N2 (n ** {c2 = p}) ; dirN2 : N -> N2 ; dirN2 n = prepN2 n noPrep ; @@ -178,7 +178,7 @@ oper -- prepN3 : N -> Prep -> Prep -> N3 ; - prepN3 n p q = n ** {c2 = p; c3 = q} ; + prepN3 n p q = lin N3 (n ** {c2 = p; c3 = q}) ; dirN3 : N -> Prep -> N3 ; dirN3 n p = prepN3 n noPrep p ; diff --git a/src/chinese/ParadigmsChi.gf b/src/chinese/ParadigmsChi.gf index 881a1497..a52528e5 100644 --- a/src/chinese/ParadigmsChi.gf +++ b/src/chinese/ParadigmsChi.gf @@ -183,7 +183,7 @@ oper mkInterj : Str -> Interj = \s -> lin Interj {s = word s} ; - emptyPrep : Preposition = mkPrep [] ; + emptyPrep : Prep = mkPrep [] ; mkpNP : Str -> CatChi.NP = \s -> lin NP {s = word s ; det = []} ; diff --git a/src/english/ExtendEng.gf b/src/english/ExtendEng.gf index bb830e0d..d8252c36 100644 --- a/src/english/ExtendEng.gf +++ b/src/english/ExtendEng.gf @@ -182,7 +182,7 @@ concrete ExtendEng of Extend = BaseVPS2 x y = let baseX : OneFinVPS = baseVPS2 x ; - baseY : OneFinVPS = baseVPS y ; + baseY : OneFinVPS = baseVPS (lin VPS y) ; in twoTable2 Order Agr baseX baseY ** {fin = baseX.fin ; c2 = y.c2} ; ConsVPS2 x xs = let baseX : OneFinVPS = baseVPS2 x ; @@ -323,8 +323,8 @@ lin BaseImp = twoTable2 CPolarity ImpForm ; } ; lin - PassVPSlash vps = passVPSlash (lin VPS vps) [] ; - PassAgentVPSlash vps np = passVPSlash (lin VPS vps) ("by" ++ np.s ! NPAcc) ; + PassVPSlash vps = passVPSlash (lin VPSlash vps) [] ; + PassAgentVPSlash vps np = passVPSlash (lin VPSlash vps) ("by" ++ np.s ! NPAcc) ; ProgrVPSlash vp = insertObjc (\\a => vp.ad ! a ++ vp.prp ++ vp.p ++ vp.s2 ! a) (predAux auxBe ** {c2 = vp.c2; gapInMiddle = vp.gapInMiddle; missingAdv = vp.missingAdv}); diff --git a/src/estonian/ExtendEst.gf b/src/estonian/ExtendEst.gf index 3700bb36..08712dc2 100644 --- a/src/estonian/ExtendEst.gf +++ b/src/estonian/ExtendEst.gf @@ -353,7 +353,7 @@ concrete ExtendEst of Extend = -- : VPSlash -> AP ; -- täna leitud PastPartAP vp = { - s = \\_,_ => vp2adv ; + s = \\_,_ => vp2adv (lin VP vp) ; infl = Invariable } ; @@ -366,7 +366,7 @@ concrete ExtendEst of Extend = -- : VPSlash -> NP -> AP -- hobisukeldujate poolt leitud (süvaveepomm) PastPartAgentAP vp np = { s = \\_,_ => appCompl True Pos by8agent_Prep np - ++ vp2adv ; + ++ vp2adv (lin VP vp) ; infl = Invariable } ; @@ -374,7 +374,7 @@ concrete ExtendEst of Extend = -- : AP -> VP -> Cl ; -- it is good to walk / on hea kõndida PredAPVP ap vp = - let heaOllaVP : VP = insertObj (\\_,_,_ => ap.s ! True ! NCase Sg Nom) vp ; -- puts AP into the s2 field + let heaOllaVP : VP = lin VP (insertObj (\\_,_,_ => ap.s ! True ! NCase Sg Nom) vp) ; -- puts AP into the s2 field heaOllaComp : Comp = CompVP ASimul PPos heaOllaVP ; -- chooses InfDa, fixes word order heaOlla : VP = UseComp heaOllaComp -- looks silly, but I want to reuse the abstract syntax funs :-P in existClause noSubj (agrP3 Sg) heaOlla ; diff --git a/src/estonian/ParadigmsEst.gf b/src/estonian/ParadigmsEst.gf index 0e8723f4..07cdadf8 100644 --- a/src/estonian/ParadigmsEst.gf +++ b/src/estonian/ParadigmsEst.gf @@ -970,9 +970,9 @@ oper mkV2Q v p = lin V2Q (mk2V2 v p) ; mkAS a = a ; - mkA2S a p = mkA2 a p ; + mkA2S a p = lin A (mkA2 a p) ; mkAV a = a ; - mkA2V a p = mkA2 a p ; + mkA2V a p = lin A (mkA2 a p) ; mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; diff --git a/src/faroese/ParadigmsFao.gf b/src/faroese/ParadigmsFao.gf index 7c6dc207..90cb2364 100644 --- a/src/faroese/ParadigmsFao.gf +++ b/src/faroese/ParadigmsFao.gf @@ -480,13 +480,13 @@ oper } ; mkN2 = overload { - mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; - mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + mkN2 : N -> N2 = \n -> lin N2 (n ** {c2 = noPrep}) ; + mkN2 : N -> Prep -> N2 = \n,p -> lin N2 (n ** {c2 = p}) ; } ; mkN3 = overload { - mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; - mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + mkN3 : N -> N3 = \n -> lin N3 (n ** {c2 = noPrep; c3 = noPrep}) ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> lin N3 (n ** {c2 = p1; c3 = p2}) ; } ; mkA = overload { @@ -495,8 +495,8 @@ oper } ; mkA2 = overload { - mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; - mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + mkA2 : A -> A2 = \a -> lin A2 (a ** {c2 = noPrep}) ; + mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c2 = p}) ; } ; mkV = overload { @@ -504,39 +504,39 @@ oper mkV : Str -> Str -> V = reg2V -- Nonfinite Indicative;Pres;('PSg', P2) } ; - mkVV : V -> VV = \v -> v ; - mkVS : V -> VS = \v -> v ; - mkVQ : V -> VQ = \v -> v ; - mkVA : V -> VA = \v -> v ; + mkVV : V -> VV = \v -> lin VV v ; + mkVS : V -> VS = \v -> lin VS v ; + mkVQ : V -> VQ = \v -> lin VQ v ; + mkVA : V -> VA = \v -> lin VA v ; mkV2 = overload { - mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; - mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + mkV2 : V -> V2 = \v -> lin V2 (v ** {c2 = noPrep}) ; + mkV2 : V -> Prep -> V2 = \v,p -> lin V2 (v ** {c2 = p}) ; } ; mkV3 = overload { - mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV3 : V -> V3 = \v -> lin V3 (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> lin V3 (v ** {c2 = p1; c3 = p2}) ; } ; mkV2A = overload { - mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2A : V -> V2A = \v -> lin V2A (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> lin V2A (v ** {c2 = p1; c3 = p2}) ; } ; mkV2S = overload { - mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2S : V -> V2S = \v -> lin V2S (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> lin V2S (v ** {c2 = p1; c3 = p2}) ; } ; mkV2Q = overload { - mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2Q : V -> V2Q = \v -> lin V2Q (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> lin V2Q (v ** {c2 = p1; c3 = p2}) ; } ; mkV2V = overload { - mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2V : V -> V2V = \v -> lin V2V (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> lin V2V (v ** {c2 = p1; c3 = p2}) ; } ; mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; diff --git a/src/finnish/DocumentationFinFunctor.gf b/src/finnish/DocumentationFinFunctor.gf index b81fd9a3..3f09fbd1 100644 --- a/src/finnish/DocumentationFinFunctor.gf +++ b/src/finnish/DocumentationFinFunctor.gf @@ -161,14 +161,14 @@ oper verbExample : CatFin.Cl -> Str = \cl -> (S.mkUtt cl).s ; {- -} --# notpresent - inflVerb : CatFin.V -> Str = \verb0 -> + inflVerb : SVerb1 -> Str = \verb0 -> let verb = sverb2verbSep verb0 ; vfin : ResFin.VForm -> Str = \f -> verb.s ! f ; nounNounHeading : Parameter -> Parameter -> Str = \n1,n2 -> - (S.mkUtt (G.PossNP (S.mkCN n1) (S.mkNP (snoun2nounSep n2)))).s ; + (S.mkUtt (G.PossNP (S.mkCN n1) (S.mkNP (lin N (snoun2nounSep n2))))).s ; in heading3 (nounNounHeading present_Parameter indicative_Parameter) ++ frameTable ( diff --git a/src/finnish/ExtendFin.gf b/src/finnish/ExtendFin.gf index 2c3b1915..c64d21b9 100644 --- a/src/finnish/ExtendFin.gf +++ b/src/finnish/ExtendFin.gf @@ -258,7 +258,7 @@ lin PresPartAP vp = { hasPrefix = False } ; lin PastPartAP vps = { - s = \\_,nf => preCompVP (PastPartAct (AN nf)) ; + s = \\_,nf => preCompVP (lin VP vps) (PastPartAct (AN nf)) ; p = vps.c2.s.p1 ; hasPrefix = False } ; diff --git a/src/finnish/ParadigmsFin.gf b/src/finnish/ParadigmsFin.gf index c44570a6..d44d9de2 100644 --- a/src/finnish/ParadigmsFin.gf +++ b/src/finnish/ParadigmsFin.gf @@ -406,10 +406,10 @@ mkVS = overload { mkQuant = overload { mkQuant : N -> Quant = - \noun -> heavyQuant {s1 = \\n,c => (snoun2nounBind noun).s ! NCase n c ; s2 = \\_ => [] ; isNum,isPoss,isNeg,isDef = False} ; + \noun -> lin Quant (heavyQuant {s1 = \\n,c => (snoun2nounBind noun).s ! NCase n c ; s2 = \\_ => [] ; isNum,isPoss,isNeg,isDef = False}) ; mkQuant : N -> N -> Quant = - \sg,pl -> heavyQuant {s1 = table {Sg => \\c => (snoun2nounBind pl).s ! NCase Sg c ; Pl => \\c => (snoun2nounBind pl).s ! NCase Pl c} ; - s2 = \\_ => [] ; isNum,isPoss,isNeg,isDef = False} ; + \sg,pl -> lin Quant (heavyQuant {s1 = table {Sg => \\c => (snoun2nounBind pl).s ! NCase Sg c ; Pl => \\c => (snoun2nounBind pl).s ! NCase Pl c} ; + s2 = \\_ => [] ; isNum,isPoss,isNeg,isDef = False}) ; } ; mkInterj : Str -> Interj diff --git a/src/gaelic/ParadigmsGla.gf b/src/gaelic/ParadigmsGla.gf index f5210104..e065eabb 100644 --- a/src/gaelic/ParadigmsGla.gf +++ b/src/gaelic/ParadigmsGla.gf @@ -2084,14 +2084,14 @@ mkN = overload { mkN : (nom,gen : Str) -> N = \nom,gen -> lin N (reg2N nom gen) ; -- nom;indef;sg gen;indef;sg mkN : (nom,gen,pl : Str) -> Gender -> N = \loch,locha,lochan,g -> - mk5N loch loch locha lochan (palatalise loch) g ; + lin N (mk5N loch loch locha lochan (palatalise loch) g) ; mkN : (base : Str) -> Gender -> N = \tunnag,g -> let fm : Str -> Str -> Str = \fem,masc -> case g of { Fem => fem ; Masc => masc } ; tunnaig : Str = palatalise tunnag ; tunnaige : Str = fm (tunnaig + "e") tunnaig ; tunnagan : Str = fm (tunnag + "an") tunnaig ; - in mk5N tunnag tunnag tunnaige tunnagan tunnaig g + in lin N (mk5N tunnag tunnag tunnaige tunnagan tunnaig g) } ; mkN2 : LinN -> N2 = \n -> lin N2 n ** {c2=noPrep} ; diff --git a/src/german/ExtraGer.gf b/src/german/ExtraGer.gf index 3aa14354..8de75a86 100644 --- a/src/german/ExtraGer.gf +++ b/src/german/ExtraGer.gf @@ -291,7 +291,7 @@ concrete ExtraGer of ExtraGerAbs = CatGer ** lin FocObj np cl = - let n = appPrepNP cl.c2 np in mkFoc n cl ; + let n = appPrepNP cl.c2 np in mkFoc n (lin Cl cl) ; FocAdv adv cl = mkFoc adv.s cl ; @@ -304,7 +304,7 @@ concrete ExtraGer of ExtraGerAbs = CatGer ** -- "froh ist sie dass er da ist" -- "stolz ist sie auf ihn" subj = mkSubject np vp.c1 ; - cl = mkClause subj.s subj.a vp + cl = lin Cl (mkClause subj.s subj.a vp) in mkFoc adj cl ; UseFoc t p f = {s = t.s ++ p.s ++ f.s ! t.m ! t.t ! t.a ! p.p} ; diff --git a/src/hindi/ParadigmsHin.gf b/src/hindi/ParadigmsHin.gf index 2999e5ff..5d4e664c 100644 --- a/src/hindi/ParadigmsHin.gf +++ b/src/hindi/ParadigmsHin.gf @@ -81,7 +81,7 @@ oper } ; - mkIrregA : Str -> A = \str -> makeIrregA str ; + mkIrregA : Str -> A = \str -> lin A (makeIrregA str) ; mkA2 : A -> Str -> A2 ; mkA2 a str = a ** {c2=str ; lock_A2 = <>} ; @@ -169,7 +169,7 @@ oper -- mkV0 : V -> V0 ; mkVS : V -> VS; -- e.g drna - mkVS v = v ; + mkVS v = lin VS v ; -- mkV2S : V -> Prep -> V2S ; mkVV : V -> VV = -- e.g cahna \v -> lin VV (v ** {isAux = False}); @@ -184,7 +184,7 @@ oper -- mkVA : V -> VA ; -- mkV2A : V -> Prep -> V2A ; mkVQ : V -> VQ ; -- e.g janna - mkVQ v = v ; + mkVQ v = lin VQ v ; -- mkV2Q : V -> Prep -> V2Q ; -- -- mkAS : A -> AS ; diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index 344436c1..5dfb718a 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -36,7 +36,7 @@ oper mkLN : Str -> Number -> PN -- PN with a given number } ; - mkGN : Str -> PN ; -- GN out of a string + mkGN : Str -> GN ; -- GN out of a string mkSN : Str -> SN ; -- SN out of a string --2 Adjectives @@ -213,7 +213,7 @@ oper } ; mkA2 = overload { - mkA2 : A -> A2 = \a -> a ** {c2 = casePrep Nom ; isPost = False} ; + mkA2 : A -> A2 = \a -> lin A2 (a ** {c2 = casePrep Nom ; isPost = False}) ; mkA2 : Str -> Prep -> A2 = \s,p -> lin A2 ((mkAdj s) ** {c2 = p ; isPost = False}) ; mkA2 : Str -> Case -> A2 = \s,c -> @@ -230,7 +230,7 @@ oper lin V (mkVerbFull sg1 sg2 sg3 pl1 pl2 pl3 inf) ; } ; - copula = ResHun.copula ; + copula = lin V ResHun.copula ; mkVS = overload { mkVS : Str -> VS = \v -> lin VS (mkVerb v) ; @@ -249,7 +249,7 @@ oper mkV2 = overload { mkV2 : (plain : Str) -> V2 = \v2 -> lin V2 (mkVerb2 v2) ; - mkV2 : V -> V2 = vtov2 ; + mkV2 : V -> V2 = \v -> lin V2 (vtov2 v) ; } ; mkVV = overload { diff --git a/src/icelandic/ParadigmsIce.gf b/src/icelandic/ParadigmsIce.gf index c40f4846..d888506d 100644 --- a/src/icelandic/ParadigmsIce.gf +++ b/src/icelandic/ParadigmsIce.gf @@ -403,7 +403,7 @@ resource ParadigmsIce = open addAdv : A -> Str -> A = \a,adv -> a ** {adv = adv} ; - mkA2 : A -> Prep -> A2 = \adj,prep -> adj ** {c2 = prep} ; + mkA2 : A -> Prep -> A2 = \adj,prep -> lin A2 (adj ** {c2 = prep}) ; --2 Verbs @@ -744,9 +744,9 @@ resource ParadigmsIce = open -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). - prepV2 : V -> Preposition -> V2 = \v,prep -> v ** {c2 = prep} ; + prepV2 : V -> Preposition -> V2 = \v,prep -> lin V2 (v ** {c2 = prep}) ; - prepV3 : V -> Preposition -> Preposition -> V3 = \v,p1,p2 -> v ** {c2 = p1 ; c3 = p2} ; + prepV3 : V -> Preposition -> Preposition -> V3 = \v,p1,p2 -> lin V3 (v ** {c2 = p1 ; c3 = p2}) ; accPrep : Preposition = {s = []; c = Acc} ; diff --git a/src/korean/ConjunctionKor.gf b/src/korean/ConjunctionKor.gf index 7e69601e..9102d532 100644 --- a/src/korean/ConjunctionKor.gf +++ b/src/korean/ConjunctionKor.gf @@ -143,16 +143,16 @@ oper \\conj => glue (np.s ! Bare) (conjTable ! NStar ! conj ! np.p) ; -- Versions with commas, no repeated conjunctions - baseNPcomma : NP -> NP -> ListNP = \x,y -> y ** { + baseNPcomma : NP -> NP -> ListNP = \x,y -> lin ListNP y ** { firstNP = \\conj => x.s ! Bare ++ BIND ++ "," ; } ; - consNPcomma : NP -> ListNP -> ListNP = \x,xs -> xs ** { + consNPcomma : NP -> ListNP -> ListNP = \x,xs -> lin ListNP xs ** { firstNP = \\conj => x.s ! Bare ++ BIND ++ "," ++ xs.firstNP ! conj ; } ; - conjNPcomma : Conj -> ListNP -> NP = \co,xs -> xs ** { + conjNPcomma : Conj -> ListNP -> NP = \co,xs -> lin NP xs ** { s = \\nf => co.s1 ++ xs.firstNP ! co.c ++ co.s2 diff --git a/src/korean/LexiconKor.gf b/src/korean/LexiconKor.gf index e2783bc5..cc7e92d4 100644 --- a/src/korean/LexiconKor.gf +++ b/src/korean/LexiconKor.gf @@ -91,7 +91,7 @@ lin come_V = mkV "오다" ; -- lin dig_V = mkV "" ; -- lin dirty_A = mkA "" ; -- lin distance_N3 = mkN "" ; -lin do_V2 = mkV2 do_V ; +lin do_V2 = mkV2 (lin V do_V) ; -- lin doctor_N = mkN "" ; -- lin dog_N = mkN "" ; -- lin door_N = mkN "" ; @@ -209,7 +209,7 @@ lin laugh_V = mkV "웃다" ; -- lin leave_V2 = mkV2 "" ; -- lin leg_N = mkN "" ; -- lin lie_V = mkV "" ; -lin like_V2 = mkV2 (mkV "좋아" do_V) topic object ; +lin like_V2 = mkV2 (mkV "좋아" (lin V do_V)) topic object ; -- lin listen_V2 = mkV2 "" ; -- lin live_V = mkV ""; -- lin liver_N = mkN "" ; @@ -319,7 +319,7 @@ lin shirt_N = mkN "셔츠" "벌" ; -- lin shop_N = mkN "" ; lin short_A = mkA "키가" small_A ; -- "height is small" -- lin silver_N = mkN "" ; -lin sing_V = mkV "노래" do_V ; +lin sing_V = mkV "노래" (lin V do_V) ; -- lin sister_N = mkN "" ; -- lin sit_V = mkV "" ; -- lin skin_N = mkN "" ; diff --git a/src/korean/ParadigmsKor.gf b/src/korean/ParadigmsKor.gf index e3ffd334..b9109a6b 100644 --- a/src/korean/ParadigmsKor.gf +++ b/src/korean/ParadigmsKor.gf @@ -169,16 +169,16 @@ oper = \x1,x2,x3,x4 -> lin V (mkVerbReg x1 x2 x3 x4) ; } ; - copula = ResKor.copula ; + copula = lin V ResKor.copula ; -- regV : Str -> Verb = \s -> case s of { -- } ; mkV2 = overload { mkV2 : (plain : Str) -> V2 = \v2 -> lin V2 (mkVerb2 v2) ; - mkV2 : V -> V2 = vtov2 ; + mkV2 : V -> V2 = \v -> lin V2 (vtov2 v) ; mkV2 : V -> (subj,obj : CaseParticle) -> V2 = \v,sc,c2 -> - vtov2 v ** {sc = sc ; c2 = c2} ; + lin V2 (vtov2 v ** {sc = sc ; c2 = c2}) ; } ; mkV3 = overload { diff --git a/src/latin/ParadigmsLat.gf b/src/latin/ParadigmsLat.gf index 78f4ee20..42620669 100644 --- a/src/latin/ParadigmsLat.gf +++ b/src/latin/ParadigmsLat.gf @@ -86,8 +86,8 @@ oper V0 : Type = V; mkV0 = overload { - mkV0 : V -> V0 = \v -> lin V0 v ; -- Same as in english, don't know if it's working - mkV0 : Str -> V0 = \v -> lin V0 (impersonalVerb v) ; + mkV0 : V -> V0 = \v -> lin V v ; -- Same as in english, don't know if it's working + mkV0 : Str -> V0 = \v -> lin V (impersonalVerb v) ; } ; mkV2 = overload { @@ -154,7 +154,7 @@ oper AV : Type = A ; mkAV : A -> AV = \a -> lin AV a ; - mkLN : N -> Number -> LN = \noun,num -> lin PN (noun ** { s = noun.s ! num ; n = num } ) ; + mkLN : N -> Number -> LN = \noun,num -> lin LN (noun ** { s = noun.s ! num ; n = num } ) ; mkGN = overload { mkGN : Str -> GN = \s -> lin GN {s = s ; g = Male}; -- default gender male diff --git a/src/latvian/SentenceLav.gf b/src/latvian/SentenceLav.gf index 226c8d1a..ebc53071 100644 --- a/src/latvian/SentenceLav.gf +++ b/src/latvian/SentenceLav.gf @@ -18,7 +18,7 @@ lin ImpVP vp = { s = \\pol,num => vp.v.s ! pol ! (VImp num) ++ vp.compl ! (AgrP2 num Masc) } ; - SlashVP np vp = mkClause np vp ** { prep = vp.rightVal } ; + SlashVP np vp = mkClause np (lin VP vp) ** { prep = vp.rightVal } ; AdvSlash slash adv = { s = \\m,p => slash.s ! m ! p ++ adv.s ; diff --git a/src/malay/ParadigmsMay.gf b/src/malay/ParadigmsMay.gf index 18cb71f7..68ca7f79 100644 --- a/src/malay/ParadigmsMay.gf +++ b/src/malay/ParadigmsMay.gf @@ -10,6 +10,22 @@ oper -- defined in $ResSom$. noPrep : Prep = mkPrep "" ; + emptyPrep : Prep = lin Prep { + s = [] ; + obj = \\_ => [] ; + prepType = EmptyPrep ; + } ; + datPrep : Prep = mkPrep "kepada" ; + + -- direct object: "hits him" -> "memukul+nya" + dirPrep : Prep = lin Prep { + s = [] ; + obj = table { + P1 => BIND ++ "ku" ; + P2 => BIND ++ "mu" ; + P3 => BIND ++ "nya" } ; + prepType = DirObj ; + } ; --2 Nouns @@ -192,9 +208,16 @@ oper mkV2S = overload { mkV2S : Str -> V2S = \v -> lin V2S (mkVerb2 (regVerb v Meng) dirPrep) ; - mkV2S : V -> Prep -> V2S = \v,p -> lin V22 (mkVerb2 v p) + mkV2S : V -> Prep -> V2S = \v,p -> lin V2S (mkVerb2 v p) } ; + + mkPrep : Str -> Prep = \dengan -> lin Prep { + s = dengan ; + obj = \\p => dengan + poss2str (Poss p) ; + prepType = OtherPrep ; + } ; + -- lin like_V2 = let like' : V2 = mkV2 "suka" in like' ** { -- s = table {Passive => "disukai" ; _ => "suka"} ; -- } ; diff --git a/src/malay/ResMay.gf b/src/malay/ResMay.gf index 9fd53433..1fdf7682 100644 --- a/src/malay/ResMay.gf +++ b/src/malay/ResMay.gf @@ -167,31 +167,6 @@ oper prepType : PrepType ; -- TODO rename, the name is confusing } ; - mkPrep : Str -> Preposition = \dengan -> { - s = dengan ; - obj = \\p => dengan + poss2str (Poss p) ; - prepType = OtherPrep ; - } ; - - -- direct object: "hits him" -> "memukul+nya" - dirPrep : Preposition = { - s = [] ; - obj = table { - P1 => BIND ++ "ku" ; - P2 => BIND ++ "mu" ; - P3 => BIND ++ "nya" } ; - prepType = DirObj ; - } ; - - -- truly empty - emptyPrep : Preposition = { - s = [] ; - obj = \\_ => [] ; - prepType = EmptyPrep ; - } ; - - datPrep : Preposition = mkPrep "kepada" ; - applyPrep : Preposition -> NounPhrase -> Str = \prep,np -> case of { => prep.obj ! p ++ np.empty ; diff --git a/src/nepali/QuestionNep.gf b/src/nepali/QuestionNep.gf index efd62916..a74e896f 100644 --- a/src/nepali/QuestionNep.gf +++ b/src/nepali/QuestionNep.gf @@ -74,9 +74,9 @@ concrete QuestionNep of Question = CatNep ** open ResNep, Prelude in { CompIAdv a = a ; CompIP p = ss (p.s ! Nom) ; AdvIAdv i a = {s = i.s ++ a.s} ; - AdvQVP vp iadv = insertObj (\\_ => iadv.s) vp ; - AddAdvQVP qvp iadv = insertObj (\\_ => iadv.s) qvp ; - ComplSlashIP vpslash ip = insertObj (\\_ => ip.s ! Nom) vpslash ; + AdvQVP vp iadv = lin VP (insertObj (\\_ => iadv.s) vp) ; + AddAdvQVP qvp iadv = lin VP (insertObj (\\_ => iadv.s) qvp) ; + ComplSlashIP vpslash ip = lin VP (insertObj (\\_ => ip.s ! Nom) vpslash) ; --QuestQVP : IP -> QVP -> QCl ; -- who buys what where QuestQVP ip qvp = diff --git a/src/persian/IdiomPes.gf b/src/persian/IdiomPes.gf index 07bdb023..6057acd9 100644 --- a/src/persian/IdiomPes.gf +++ b/src/persian/IdiomPes.gf @@ -33,6 +33,6 @@ lin {s = "بگذارید" ++ np2str np ++ showVPH (VSubj Pos np.a) np.a vp}; oper - existVerb : V2 = mkV2 (mkV "وجود" haveVerb) noPrep ; + existVerb : V2 = mkV2 (mkV "وجود" (lin V haveVerb)) noPrep ; } diff --git a/src/persian/ParadigmsPes.gf b/src/persian/ParadigmsPes.gf index ae381f65..f8073156 100644 --- a/src/persian/ParadigmsPes.gf +++ b/src/persian/ParadigmsPes.gf @@ -164,11 +164,11 @@ oper mkVV : Str -> VV -- Predictable VV, subjunctive complement, is auxiliary. = \s -> lin VV (regV s ** {isAux = True ; compl = subjunctive ; isDef = False}) ; mkVV : V -> VV -- takes its VP complement in subjunctive. Is auxiliary. - = \v -> v ** {isAux = True ; compl = subjunctive ; isDef = False} ; + = \v -> lin VV (v ** {isAux = True ; compl = subjunctive ; isDef = False}) ; mkVV : VVForm -> V -> VV -- takes its VP complement in the given VVForm - = \vvf,v -> v ** {isAux = True ; compl = vvf ; isDef = False} ; + = \vvf,v -> lin VV (v ** {isAux = True ; compl = vvf ; isDef = False}) ; mkVV : (isAux : Bool) -> VVForm -> V -> VV -- takes its VP complement in the given VVForm. Whether it's auxiliary (T/F) given as the first argument. - = \isAux,vvf,v -> v ** {isAux = isAux ; compl = vvf ; isDef = False} + = \isAux,vvf,v -> lin VV (v ** {isAux = isAux ; compl = vvf ; isDef = False}) } ; defVV : VV -> VV = \vv -> vv ** {isDef=True} ; @@ -282,19 +282,19 @@ oper mkN = overload { mkN : (sg : Str) -> N -- Takes singular form, returns a noun with ها as the plural form. - = \sg -> mkN01 sg inanimate ; + = \sg -> lin N (mkN01 sg inanimate) ; mkN : (sg,pl : Str) -> N -- Takes singular and plural forms. Use for ان or its allomorphs, and loanwords with Arabic plural. - = \sg,pl -> M.mkN sg pl inanimate ; + = \sg,pl -> lin N (M.mkN sg pl inanimate) ; mkN : (possStem : Str) -> N -> N -- Noun with an unexpected possessive stem, e.g. مه where ه is a consonant, not vowel. - = \ps,n -> possStemN ps n ; + = \ps,n -> lin N (possStemN ps n) ; -- hidden from API mkN : (sg : Str) -> Animacy -> N -- Takes singular form and animacy. Inanimate plural ها. Animate plural ان or an allomorph of it (یان or گان) depending on the singular form. = \sg,ani -> case ani of { - Inanimate => mkN01 sg ani ; - Animate => mkN02 sg ani } ; + Inanimate => lin N (mkN01 sg ani) ; + Animate => lin N (mkN02 sg ani) } ; mkN : (sg,pl : Str) -> Animacy -> N -- Worst-case constructor: takes singular and plural forms and animacy. Use for e.g. loanwords with Arabic plural, or animate nouns with ها as plural. - = \sg,pl,ani -> M.mkN sg pl ani + = \sg,pl,ani -> lin N (M.mkN sg pl ani) } ; possStemN : Str -> N -> N = \possStem,n -> n ** { @@ -304,18 +304,18 @@ oper } ; - mkN01 : (sg : Str) -> Animacy -> Noun ; -- Takes singular form and animacy, forms plural with ها + mkN01 : (sg : Str) -> Animacy -> N ; -- Takes singular form and animacy, forms plural with ها mkN01 sg ani = let pl : Str = case last sg of { --"د"|"ذ"|"ر"|"ز"|"ژ" => sg + "ها" ; -- these letters are separated by default _ => zwnj sg "ها" } ; -- Using zero-width non-joiner, defined in MorphoPes - in M.mkN sg pl ani ; + in lin N (M.mkN sg pl ani) ; - mkN02 : (sg : Str) -> Animacy -> Noun ; -- Takes singular form and animacy, pattern matches singular and forms plural with either گان, یان or ان + mkN02 : (sg : Str) -> Animacy -> N ; -- Takes singular form and animacy, pattern matches singular and forms plural with either گان, یان or ان mkN02 str ani = case last str of { - "ه" => M.mkN str (init str + "گان") ani ; - ("ا"|"و") => M.mkN str (str + "یان") ani ; - _ => M.mkN str (str + "ان") ani + "ه" => lin N (M.mkN str (init str + "گان") ani) ; + ("ا"|"و") => lin N (M.mkN str (str + "یان") ani) ; + _ => lin N (M.mkN str (str + "ان") ani) }; mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> @@ -396,7 +396,7 @@ oper => {s = [] ; ra = ra ; mod=Bare ; isPrep = False} ; prep => {s = prep ; ra = [] ; mod=Bare ; isPrep = True} } ; - noPrep = prepOrRa [] ; + noPrep : Prep = lin Prep (prepOrRa []) ; -- NB. The 'mod' field has different meaning for verbs and N2s. ezafeForN2 = {s = [] ; ra = [] ; mod=Ezafe ; isPrep = False} ; @@ -427,11 +427,11 @@ oper mkQuant = overload { -- mkQuant : Pron -> Quant = \p -> {s = \\_,_,c => p.s!c ;a = p.a ; lock_Quant = <>}; mkQuant : Str -> Str -> Quant -- hidden from public API - = \sg,pl -> makeQuant sg pl Bare False; + = \sg,pl -> lin Quant (makeQuant sg pl Bare False); mkQuant : Str -> Str -> (isNeg : Bool) -> Quant -- hidden from public API - = \sg,pl,isneg -> makeQuant sg pl Bare isneg; + = \sg,pl,isneg -> lin Quant (makeQuant sg pl Bare isneg); mkQuant : Str -> Str -> Mod -> (isNeg : Bool) -> Quant -- hidden from public API - = \sg,pl,mod,isneg -> makeQuant sg pl mod isneg; + = \sg,pl,mod,isneg -> lin Quant (makeQuant sg pl mod isneg); } ; } diff --git a/src/polish/AdjectiveMorphoPol.gf b/src/polish/AdjectiveMorphoPol.gf index cbee1e24..4cf89b94 100644 --- a/src/polish/AdjectiveMorphoPol.gf +++ b/src/polish/AdjectiveMorphoPol.gf @@ -209,6 +209,6 @@ resource AdjectiveMorphoPol = open CatPol, ResPol, Prelude, (Predef=Predef) in { }; addComplToAdj : A -> Str -> Case -> A2 ; - addComplToAdj a s c = a ** {c = mkCompl s c } ; + addComplToAdj a s c = lin A2 (a ** {c = mkCompl s c}) ; } diff --git a/src/polish/MorphoPol.gf b/src/polish/MorphoPol.gf index 776de2ac..447ebacc 100644 --- a/src/polish/MorphoPol.gf +++ b/src/polish/MorphoPol.gf @@ -26,10 +26,10 @@ oper mkN2 n = mkFun n nullPrep ; mkFun : N -> Complement -> N2; - mkFun f c = f ** { c = c } ; + mkFun f c = lin N2 (f ** { c = c }) ; mkN3 : N -> Complement -> Complement -> N3; - mkN3 f c1 c2 = f ** { c1 = c1 ; c2 = c2 }; + mkN3 f c1 c2 = lin N3 (f ** { c1 = c1 ; c2 = c2}) ; -- Prepositions diff --git a/src/polish/VerbMorphoPol.gf b/src/polish/VerbMorphoPol.gf index 9667aa91..ba8b9e4a 100644 --- a/src/polish/VerbMorphoPol.gf +++ b/src/polish/VerbMorphoPol.gf @@ -415,7 +415,7 @@ resource VerbMorphoPol = open CatPol, ResPol, Prelude, (Predef=Predef), (Adj=Adj dirV3 : V -> V3; -- a typical case ie. "zabrać", "dać" dirV3 v = mkV3 v "" "" Acc Dat; - indicative_form : V -> Bool -> Polarity -> Tense * Anteriority * GenNum * Person => Str; + indicative_form : Verb -> Bool -> Polarity -> Tense * Anteriority * GenNum * Person => Str; indicative_form verb imienne pol = case imienne of {True => imienne_form verb pol; False => let nie = case pol of { Pos => "" ; Neg => "nie" }; in @@ -433,7 +433,7 @@ resource VerbMorphoPol = open CatPol, ResPol, Prelude, (Predef=Predef), (Adj=Adj } }; - imienne_form : V -> Polarity -> Tense * Anteriority * GenNum * Person => Str; + imienne_form : Verb -> Polarity -> Tense * Anteriority * GenNum * Person => Str; imienne_form verb pol = let byc = (case verb.asp of { Perfective => conj3 "zostać"; _ => conj1 "być" }).s; in let zostac = (case verb.asp of { Imperfective => conj1 "być"; _ => conj3 "zostać" }).s; in @@ -461,7 +461,7 @@ resource VerbMorphoPol = open CatPol, ResPol, Prelude, (Predef=Predef), (Adj=Adj => "będą" }; - imperative_form : V -> Bool -> Polarity -> GenNum -> Person -> Str; + imperative_form : Verb -> Bool -> Polarity -> GenNum -> Person -> Str; imperative_form verb imienne pol gn p = case imienne of { True => @@ -493,7 +493,7 @@ resource VerbMorphoPol = open CatPol, ResPol, Prelude, (Predef=Predef), (Adj=Adj } }; - infinitive_form : V -> Bool -> Polarity -> GenNum -> Str; + infinitive_form : Verb -> Bool -> Polarity -> GenNum -> Str; infinitive_form verb imienne pol gn = case imienne of { True => diff --git a/src/portuguese/ConstructionPor.gf b/src/portuguese/ConstructionPor.gf index ffd73900..7f916d60 100644 --- a/src/portuguese/ConstructionPor.gf +++ b/src/portuguese/ConstructionPor.gf @@ -22,13 +22,13 @@ lin what_name_QCl x = mkQCl how_IAdv (mkCl (lin NP x) (reflV (mkV "chamar"))) ; how_old_QCl x = mkQCl (mkIP how8many_IDet L.year_N) x have_V2 ; - how_far_QCl x = mkQCl (lin IAdv (ss "a que distância")) (mkCl x D.stare_V) ; + how_far_QCl x = mkQCl (lin IAdv (ss "a que distância")) (mkCl x (lin V D.stare_V)) ; -- some more things weather_adjCl ap = mkCl (mkVP (mkVA (mkV (fazer_Besch "fazer"))) (lin AP ap)) ; - is_right_VP = mkVP (mkVA D.stare_V) (mkAP (mkA "certo")) ; - is_wrong_VP = mkVP (mkVA D.stare_V) (mkAP (mkA "errado")) ; + is_right_VP = mkVP (mkVA (lin V D.stare_V)) (mkAP (mkA "certo")) ; + is_wrong_VP = mkVP (mkVA (lin V D.stare_V)) (mkAP (mkA "errado")) ; n_units_AP card cn a = mkAP (lin AdA (mkUtt (mkNP (lin CN cn)))) (lin A a) ; diff --git a/src/punjabi/LexiconPnb.gf b/src/punjabi/LexiconPnb.gf index f256b82a..6fe73959 100644 --- a/src/punjabi/LexiconPnb.gf +++ b/src/punjabi/LexiconPnb.gf @@ -36,7 +36,7 @@ concrete LexiconPnb of Lexicon = CatPnb ** bread_N = mkN03 "روتی" ; break_V2 = mkV2 (mkV "توڑنا") ; broad_A = mkAdj1 "كھلا" ; - brother_N2 = mkN2 (mkN01 "پرا") (mkPrep "كا") "كے" ; --not correct + brother_N2 = mkN2 (lin N (mkN01 "پرا")) (mkPrep "كا") "كے" ; --not correct brown_A = mkAdj1 "نسواری" ; -- butter_N = mkN "مكھن" ; buy_V2 = mkV2 (mkV "خریدنا"); @@ -73,7 +73,7 @@ concrete LexiconPnb of Lexicon = CatPnb ** empty_A = mkAdj1 "خالی" ; -- enemy_N = mkN "دشمن" ; -- factory_N = mkN "كارخانہ" ; - father_N2 = mkN2 (mkN01 "ابا") (mkPrep "دا") "دے" ; + father_N2 = mkN2 (lin N (mkN01 "ابا")) (mkPrep "دا") "دے" ; fear_VS = mkV "ڈرنا"; find_V2 = mkV2 (mkV "پانا") ; fish_N = mkN03 "مچھلی" ; @@ -124,7 +124,7 @@ concrete LexiconPnb of Lexicon = CatPnb ** meat_N = mkN02 "گوشت" ; -- milk_N = mkN "دودھ" ; moon_N = mkN02 "چن" ; - mother_N2 = mkN2 (mkN05 "ماں") (mkPrep "دی") "ڈے"; -- not covered need to be discussed + mother_N2 = mkN2 (lin N (mkN05 "ماں")) (mkPrep "دی") "ڈے"; -- not covered need to be discussed mountain_N = mkN03 "پاڑی" ; -- music_N = mkN "موسیقی" ; narrow_A = mkAdj1 "باریك" ; diff --git a/src/punjabi/ParadigmsPnb.gf b/src/punjabi/ParadigmsPnb.gf index a0bc81c1..c478fe56 100644 --- a/src/punjabi/ParadigmsPnb.gf +++ b/src/punjabi/ParadigmsPnb.gf @@ -58,7 +58,7 @@ mkPN = overload { \s1,s2,s3,s4,n,g -> let p = mkIntPronForm s1 s2 s3 s4 in { s = p.s ; n = n ; g = g ; lock_IP = <>}; -- AdN - mkAdN : Str -> AdN = \s -> ss s ; + mkAdN : Str -> AdN = \s -> lin AdN (ss s) ; --2 Adjectives diff --git a/src/romance/ExtendRomanceFunctor.gf b/src/romance/ExtendRomanceFunctor.gf index bc5ddaa6..62dede71 100644 --- a/src/romance/ExtendRomanceFunctor.gf +++ b/src/romance/ExtendRomanceFunctor.gf @@ -340,7 +340,7 @@ incomplete concrete ExtendRomanceFunctor of Extend = passVPSlash vps agent = let auxvp = predV auxPassive in - vps ** { + lin VP vps ** { s = auxvp.s ; agr = auxvp.agr ; comp = \\a => (let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) ++ vps.comp ! a ++ agent ; diff --git a/src/rukiga/ParadigmsCgg.gf b/src/rukiga/ParadigmsCgg.gf index 278b01ec..fdc29e85 100644 --- a/src/rukiga/ParadigmsCgg.gf +++ b/src/rukiga/ParadigmsCgg.gf @@ -40,17 +40,17 @@ oper }; mkV = overload { - mkV : Str -> Verb + mkV : Str -> V = \root -> lin V (smartVerb root); --{s =root; pres =[]; perf = []; morphs= mkVerbMorphs; isRegular = True}; --only those verbs whose conjugation involves change of last letter and are done in the same way in both runyankore and rukiga - mkV : Str -> Str ->Str -> Verb + mkV : Str -> Str ->Str -> V = \root, restPres, restPerf ->lin V (mkVerb root restPres restPerf); - mkV : Str -> Str ->Str ->Str -> Bool -> Verb + mkV : Str -> Str ->Str ->Str -> Bool -> V = \root, restPres, restPerf, p, bool ->lin V (mkVerbV2X root restPres restPerf p bool); }; mkV2 = overload { - mkV2 : Str -> V2 = \root ->dirV2 (smartVerb root); --** {comp =[] ; isCompN2 = False}; - mkV2 : Str -> Str ->Str -> V2 = \root, s1, s2 ->dirV2 (mkVerb root s1 s2); --** {comp =[] ; isCompN2 = False}; + mkV2 : Str -> V2 = \root ->dirV2 (lin V (smartVerb root)); --** {comp =[] ; isCompN2 = False}; + mkV2 : Str -> Str ->Str -> V2 = \root, s1, s2 ->dirV2 (lin V (mkVerb root s1 s2)); --** {comp =[] ; isCompN2 = False}; }; mkV3 = overload { mkV3 : Str -> Verb3 = \root ->mkV2 root ** {comp2 =[]}; @@ -213,7 +213,7 @@ mkInterj : Str -> Interj mkV0 : V -> V; mkV0 v = v ; mkA2 : Str -> Position -> Bool -> Bool ->Bool-> A2V = \a2, pos, isProper, isPrep,isNeg -> - lin A2V ((mkAdjective a2 pos isProper isPrep isNeg) ** {c2 = ""; isPre = True}); + lin A2 (mkAdjective a2 pos isProper isPrep isNeg) ** {c2 = ""; isPre = True}; --mkA2V : A -> A2V; --mkA2V a = lin A2V (a * {c2 = ""; isPre = True}); mkA2V : Str -> Position -> Bool -> Bool ->Bool-> A2 =\a2, pos, isProper, isPrep,isNeg -> lin A2 ((mkAdjective a2 pos isProper isPrep isNeg) ** {c2 = ""; isPre = True}); diff --git a/src/russian/DocumentationRusFunctor.gf b/src/russian/DocumentationRusFunctor.gf index 9e451e3b..d2b1bdae 100644 --- a/src/russian/DocumentationRusFunctor.gf +++ b/src/russian/DocumentationRusFunctor.gf @@ -163,7 +163,7 @@ lin oper {- -} --# notpresent - inflVerb : CatRus.V -> Str = \v -> + inflVerb : VerbForms -> Str = \v -> let fut : Agr=>Str = \\a => verbFutAgree v a in let pres : Agr=>Str = \\a => verbPresAgree v a in let past : Agr=>Str = \\a => verbPastAgree v a "" in diff --git a/src/russian/ParadigmsRus.gf b/src/russian/ParadigmsRus.gf index ecab4331..fa1efe6b 100644 --- a/src/russian/ParadigmsRus.gf +++ b/src/russian/ParadigmsRus.gf @@ -292,7 +292,7 @@ oper compoundN = overload { compoundN : A -> N -> N - = \a, n -> applyMaybeNumber + = \a, n -> lin N (applyMaybeNumber {snom = case n.g of { Fem => preOrPost (notB a.p) a.fsnom n.snom ; Masc => preOrPost (notB a.p) a.msnom n.snom ; @@ -349,7 +349,7 @@ oper g=n.g ; rel=(guessAdjectiveForms nonExist) ; rt=GenType - } ; + }) ; compoundN : N -> Str -> N = \n, adv -> n ** { @@ -592,7 +592,7 @@ oper mkA : Str -> Str -> Z.ZAIndex -> ShortFormPreference -> A = \nom, comp, zi, spf -> lin A (makeAdjectiveFormsUseIndex nom comp zi spf) ; mkA : PronForms -> A - = \pf -> pronToAdj pf ; + = \pf -> lin A (pronToAdj pf) ; mkA : A -> Str -> A -> A = \a1,link,a2 -> lin A (mkCompoundA a1 link a2) ; mkA : V -> Voice -> Tense -> A diff --git a/src/sindhi/LexiconSnd.gf b/src/sindhi/LexiconSnd.gf index 5deb86ac..de0de579 100644 --- a/src/sindhi/LexiconSnd.gf +++ b/src/sindhi/LexiconSnd.gf @@ -1,7 +1,6 @@ --# -path=.:prelude:alltenses concrete LexiconSnd of Lexicon = CatSnd ** ---open ResSnd, Prelude in { open ParadigmsSnd,MorphoSnd, Prelude in { flags diff --git a/src/sindhi/MorphoSnd.gf b/src/sindhi/MorphoSnd.gf index 2efe97d6..43b43aa6 100644 --- a/src/sindhi/MorphoSnd.gf +++ b/src/sindhi/MorphoSnd.gf @@ -8,7 +8,7 @@ ---- syntax. To build a lexicon, it is better to use $ParadigmsSnd$, which ---- gives a higher-level access to this module. -- -resource MorphoSnd = ResSnd ** open Prelude,Predef in { +resource MorphoSnd = ResSnd ** open Prelude,Predef,CatSnd in { flags optimize=all ; @@ -17,8 +17,8 @@ resource MorphoSnd = ResSnd ** open Prelude,Predef in { ----2 Nouns oper - mkN : (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> Noun = - \sd,so,sv,sa, pd,po,pv,pa, g -> { + mkN : (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> N = + \sd,so,sv,sa, pd,po,pv,pa, g -> lin N { s = table { Sg => table { Dir => sd ; @@ -39,7 +39,7 @@ oper -- 1. msculine: chokro, kuto, hat - mkN01 : Str -> Noun ; + mkN01 : Str -> N ; mkN01 chokro = let chokr = (tk 1 chokro) in mkN (chokro) (chokr+"ی") (chokr+"ا") (chokr+"ا") (chokr+"ا") (chokr+"ن") (chokr+"ا") (chokr+"ا") @@ -47,81 +47,81 @@ oper -- 2. karkhano - mkN02 : Str -> Noun ; + mkN02 : Str -> N ; mkN02 karkhano =let karkhan = (tk 1 karkhano) in mkN (karkhano) (karkhan+"ی") (karkhan+"ا") (karkhano) (karkhan+"ا") (karkhan+"ن") (karkhan+"و") (karkhan+"ا") Fem ; -- 3. gher, shehar - mkN03 : Str -> Noun ; + mkN03 : Str -> N ; mkN03 gher = mkN (gher) (gher) (gher) (gher) (gher) (gher+"ن") (gher+"و") (gher) Masc ; -- 4. paki, mez, gah - mkN04 : Str -> Noun ; + mkN04 : Str -> N ; mkN04 paki = mkN (paki) (paki) (paki) (paki) (paki) (paki+"ن") (paki) (paki) Fem ; -- 5. msculine: bar, hotel, pathar - mkN05 : Str -> Noun ; + mkN05 : Str -> N ; mkN05 bar = mkN (bar) (bar) (bar) (bar) (bar) (bar+"ن") (bar+"و") (bar) Masc ; -- 6. pe - mkN06 : Str -> Noun ; + mkN06 : Str -> N ; mkN06 pe = mkN (pe) (pe) (pe) (pe) (pe+"۶ر") (pe+"۶رن") (pe+"۶رو") (pe+"۶ر") Masc ; -- 7. Feminine : ma - mkN07 : Str -> Noun ; + mkN07 : Str -> N ; mkN07 ma = mkN (ma) (ma) (ma) (ma) (ma+"۶ر") (ma+"۶رن") (ma+"۶رو") (ma+"۶ر") Fem ; -- 8. msculine: topi, takre - mkN08 : Str -> Noun ; + mkN08 : Str -> N ; mkN08 topi = mkN (topi) (topi) (topi) (topi) (topi+"ون") (topi+"ن") (topi+"و") (topi+"ون") Masc ; -- 9. Feminine: bere, bili, kurse - mkN09 : Str -> Noun ; + mkN09 : Str -> N ; mkN09 bili = mkN (bili) (bili) (bili) (bili) (bili+"ون") (bili+"ن") (bili+"ن") (bili+"ون") Fem ; -- 10. msculine: bha - mkN010 : Str -> Noun ; + mkN010 : Str -> N ; mkN010 bha = mkN (bha) (bha) (bha) (bha) (bha+"ر") (bha+"رن") (bha+"رو") (bha+"ر") Masc ; -- 11. Feminine: bhen - mkN11 : Str -> Noun ; + mkN11 : Str -> N ; mkN11 bhen = let bhe= (tk 1 bhen) in mkN (bhen) (bhen) (bhen) (bhen) (bhe+"نر") (bhe+"نرن") (bhen+"ون") (bhe+"نر") Fem ; --12. msculine: raja, darya - mkN12 : Str -> Noun ; + mkN12 : Str -> N ; mkN12 raja = mkN (raja) (raja) (raja) (raja) (raja) (raja+"۶ن") (raja+"۶و") (raja) Masc ; -- 13. msculine: fan, son, kher, - mkN13 : Str -> Noun ; + mkN13 : Str -> N ; mkN13 son = mkN (son) (son) (son) (son) (son) (son) (son) (son) Masc ; -- 14. Feminine: pen, samand - mkN14 : Str -> Noun ; + mkN14 : Str -> N ; mkN14 pen = mkN (pen) (pen) (pen) (pen) (pen) (pen) pen "" Fem ; diff --git a/src/sindhi/ParadigmsSnd.gf b/src/sindhi/ParadigmsSnd.gf index 7c8b7631..3506d2e0 100644 --- a/src/sindhi/ParadigmsSnd.gf +++ b/src/sindhi/ParadigmsSnd.gf @@ -60,7 +60,7 @@ mkPN = overload { \s1,s2,s3,s4,n,g -> let p = mkIntPronForm s1 s2 s3 s4 in { s = p.s ; n = n ; g = g ; lock_IP = <>}; -- AdN - mkAdN : Str -> AdN = \s -> ss s ; + mkAdN : Str -> AdN = \s -> lin AdN (ss s) ; --2 Adjectives diff --git a/src/sindhi/src/MorphoSnd.gf b/src/sindhi/src/MorphoSnd.gf index b6a02892..4f0b5f79 100644 --- a/src/sindhi/src/MorphoSnd.gf +++ b/src/sindhi/src/MorphoSnd.gf @@ -8,7 +8,7 @@ ---- syntax. To build a lexicon, it is better to use $ParadigmsSnd$, which ---- gives a higher-level access to this module. -- -resource MorphoSnd = ResSnd ** open Prelude,Predef in { +resource MorphoSnd = ResSnd ** open Prelude,Predef,CatSnd in { flags optimize=all ; @@ -17,8 +17,8 @@ resource MorphoSnd = ResSnd ** open Prelude,Predef in { ----2 Nouns oper - mkN : (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> Noun = - \sd,so,sv,sa, pd,po,pv,pa, g -> { + mkN : (x1,_,_,_,_,_,_,x8 : Str) -> Gender -> N = + \sd,so,sv,sa, pd,po,pv,pa, g -> lin N { s = table { Sg => table { Dir => sd ; @@ -39,7 +39,7 @@ oper -- 1. msculine: chokro, kuto, hat - mkN01 : Str -> Noun ; + mkN01 : Str -> N ; mkN01 chokro = let chokr = (tk 1 chokro) in mkN (chokro) (chokr+"y") (chokr+"a") (chokr+"a") (chokr+"a") (chokr+"n") (chokr+"a") (chokr+"a") @@ -47,81 +47,81 @@ oper -- 2. karkhano - mkN02 : Str -> Noun ; + mkN02 : Str -> N ; mkN02 karkhano =let karkhan = (tk 1 karkhano) in mkN (karkhano) (karkhan+"y") (karkhan+"a") (karkhano) (karkhan+"a") (karkhan+"n") (karkhan+"W") (karkhan+"a") Fem ; -- 3. gher, shehar - mkN03 : Str -> Noun ; + mkN03 : Str -> N ; mkN03 gher = mkN (gher) (gher) (gher) (gher) (gher) (gher+"n") (gher+"W") (gher) Masc ; -- 4. paki, mez, gah - mkN04 : Str -> Noun ; + mkN04 : Str -> N ; mkN04 paki = mkN (paki) (paki) (paki) (paki) (paki) (paki+"n") (paki) (paki) Fem ; -- 5. msculine: bar, hotel, pathar - mkN05 : Str -> Noun ; + mkN05 : Str -> N ; mkN05 bar = mkN (bar) (bar) (bar) (bar) (bar) (bar+"n") (bar+"W") (bar) Masc ; -- 6. pe - mkN06 : Str -> Noun ; + mkN06 : Str -> N ; mkN06 pe = mkN (pe) (pe) (pe) (pe) (pe+"e'r") (pe+"e'rn") (pe+"e'rW") (pe+"e'r") Masc ; -- 7. Feminine : ma - mkN07 : Str -> Noun ; + mkN07 : Str -> N ; mkN07 ma = mkN (ma) (ma) (ma) (ma) (ma+"e'r") (ma+"e'rn") (ma+"e'rW") (ma+"e'r") Fem ; -- 8. msculine: topi, takre - mkN08 : Str -> Noun ; + mkN08 : Str -> N ; mkN08 topi = mkN (topi) (topi) (topi) (topi) (topi+"Wn") (topi+"n") (topi+"W") (topi+"Wn") Masc ; -- 9. Feminine: bere, bili, kurse - mkN09 : Str -> Noun ; + mkN09 : Str -> N ; mkN09 bili = mkN (bili) (bili) (bili) (bili) (bili+"Wn") (bili+"n") (bili+"n") (bili+"Wn") Fem ; -- 10. msculine: bha - mkN010 : Str -> Noun ; + mkN010 : Str -> N ; mkN010 bha = mkN (bha) (bha) (bha) (bha) (bha+"r") (bha+"rn") (bha+"rW") (bha+"r") Masc ; -- 11. Feminine: bhen - mkN11 : Str -> Noun ; + mkN11 : Str -> N ; mkN11 bhen = let bhe= (tk 1 bhen) in mkN (bhen) (bhen) (bhen) (bhen) (bhe+"nr") (bhe+"nrn") (bhen+"Wn") (bhe+"nr") Fem ; --12. msculine: raja, darya - mkN12 : Str -> Noun ; + mkN12 : Str -> N ; mkN12 raja = mkN (raja) (raja) (raja) (raja) (raja) (raja+"e'n") (raja+"e'W") (raja) Masc ; -- 13. msculine: fan, son, kher, - mkN13 : Str -> Noun ; + mkN13 : Str -> N ; mkN13 son = mkN (son) (son) (son) (son) (son) (son) (son) (son) Masc ; -- 14. Feminine: pen, samand - mkN14 : Str -> Noun ; + mkN14 : Str -> N ; mkN14 pen = mkN (pen) (pen) (pen) (pen) (pen) (pen) pen "" Fem ; diff --git a/src/slovenian/ParadigmsSlv.gf b/src/slovenian/ParadigmsSlv.gf index 7cb1a45a..78a584af 100644 --- a/src/slovenian/ParadigmsSlv.gf +++ b/src/slovenian/ParadigmsSlv.gf @@ -38,7 +38,7 @@ oper compoundN : N -> Str -> N = \noun,adv -> noun ** {s = \\c,n => noun.s ! c ! n ++ adv} ; } ; - mkN2 : N -> Prep -> N2 = \n,c -> n ** {c=c} ; + mkN2 : N -> Prep -> N2 = \n,c -> lin N2 (n ** {c=c}) ; --All masculine forms (except those with long pluralstem) are formed here. --Takes the baseform + the genitive singular form + animacy. @@ -398,11 +398,11 @@ oper } ; mkV3 = overload { - mkV3 : V -> V3 = \v -> lin V2 (v ** {c2 = lin Prep {s=""; c=Acc}; c3 = lin Prep {s=""; c=Acc}}) ; - mkV3 : V -> Case -> Case -> V3 = \v,c2,c3 -> lin V2 (v ** {c2 = lin Prep {s=""; c=c2}; c3 = lin Prep {s=""; c=c3}}) ; - mkV3 : V -> Case -> Prep -> V3 = \v,c2,p3 -> lin V2 (v ** {c2 = lin Prep {s=""; c=c2}; c3 = p3}) ; - mkV3 : V -> Prep -> Case -> V3 = \v,p2,c3 -> lin V2 (v ** {c2 = p2 ; c3 = lin Prep {s=""; c=c3}}) ; - mkV3 : V -> Prep -> Prep -> V3 = \v,p2,p3 -> lin V2 (v ** {c2 = p2 ; c3 = p3}) ; + mkV3 : V -> V3 = \v -> lin V3 (v ** {c2 = lin Prep {s=""; c=Acc}; c3 = lin Prep {s=""; c=Acc}}) ; + mkV3 : V -> Case -> Case -> V3 = \v,c2,c3 -> lin V3 (v ** {c2 = lin Prep {s=""; c=c2}; c3 = lin Prep {s=""; c=c3}}) ; + mkV3 : V -> Case -> Prep -> V3 = \v,c2,p3 -> lin V3 (v ** {c2 = lin Prep {s=""; c=c2}; c3 = p3}) ; + mkV3 : V -> Prep -> Case -> V3 = \v,p2,c3 -> lin V3 (v ** {c2 = p2 ; c3 = lin Prep {s=""; c=c3}}) ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p2,p3 -> lin V3 (v ** {c2 = p2 ; c3 = p3}) ; } ; mkVA : V -> VA ; @@ -442,7 +442,7 @@ oper mkA : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x166 : Str) -> A = worstA ; } ; - mkA2 : A -> Prep -> A2 = \a,c -> a ** {c=c} ; + mkA2 : A -> Prep -> A2 = \a,c -> lin A2 (a ** {c=c}) ; irregA : (_,_,_,_,_,_ :Str) -> A = \masc,fem,neut,mascC,femC,neutC -> lin A { s = table { diff --git a/src/somali/NounSom.gf b/src/somali/NounSom.gf index 5432a8b4..925117ff 100644 --- a/src/somali/NounSom.gf +++ b/src/somali/NounSom.gf @@ -226,7 +226,7 @@ concrete NounSom of Noun = CatSom ** open ResSom, Prelude in { UseN,UseN2 = ResSom.useN ; -- : N2 -> NP -> CN ; -- Sahra hooyadeed - ComplN2 n2 np = genModCN (useN n2) np ; + ComplN2 n2 np = genModCN (lin CN (useN n2)) np ; {- -- : N3 -> NP -> N2 ; -- distance from this city (to Paris) diff --git a/src/somali/ParadigmsSom.gf b/src/somali/ParadigmsSom.gf index deed7226..cec47c5b 100644 --- a/src/somali/ParadigmsSom.gf +++ b/src/somali/ParadigmsSom.gf @@ -219,7 +219,7 @@ oper mkV : Str -> V -> V = \s,v -> lin V (prefixV s v) } ; - copula = ResSom.copula ; + copula = lin V (ResSom.copula) ; regV : Str -> Verb = \s -> case s of { _ + #c + #c + "o" => mkVerb (cJoogso s) ; @@ -243,7 +243,7 @@ oper mkV3 = overload { mkV3 : (sug : Str) -> V3 = \s -> lin V3 (regV s ** {c2,c3 = noPrep}) ; mkV3 : (sug : Str) -> (_,_ : Adposition) -> V3 = \s,p,q -> lin V3 (regV s ** {c2 = p ; c3 = q}) ; - mkV3 : V -> (_,_ : Adposition) -> V2 = \v,p,q -> lin V3 (v ** {c2 = p ; c3 = q}) ; + mkV3 : V -> (_,_ : Adposition) -> V3 = \v,p,q -> lin V3 (v ** {c2 = p ; c3 = q}) ; } ; mkVV = overload { diff --git a/src/somali/StructuralSom.gf b/src/somali/StructuralSom.gf index 5ce16529..33861378 100644 --- a/src/somali/StructuralSom.gf +++ b/src/somali/StructuralSom.gf @@ -115,14 +115,14 @@ lin above_Prep = mkPrep (mkPrep ka) [] [] "dul" ; -- lin after_Prep = mkPrep "" -- lin before_Prep = mkPrep "" ; -- lin behind_Prep = mkPrep "" ; -lin between_Prep = possPrep (nUl "dhex") ; +lin between_Prep = possPrep (lin N (nUl "dhex")) ; -- lin by8agent_Prep = mkPrep ; -- lin by8means_Prep = mkPrep ; -- lin during_Prep = mkPrep ; -- lin except_Prep = mkPrep ; -- lin for_Prep = mkPrep ; -- lin from_Prep = mkPrep "" ; -lin in8front_Prep = possPrep (nUl "hor") ; +lin in8front_Prep = possPrep (lin N (nUl "hor")) ; lin in_Prep = mkPrep ku ; lin on_Prep = mkPrep ku ; -- lin part_Prep = mkPrep ; @@ -130,7 +130,7 @@ lin on_Prep = mkPrep ku ; -- lin through_Prep = mkPrep ; -- lin to_Prep = mkPrep ; lin under_Prep = - let hoos : CatSom.Prep = possPrep (nUl "hoos") + let hoos : CatSom.Prep = possPrep (lin N (nUl "hoos")) in hoos ** {c2 = Ku} ; lin with_Prep = mkPrep la ; -- lin without_Prep = mkPrep ; @@ -176,7 +176,7 @@ lin yes_Utt = ss "haa" ; ------- -- Verb -lin have_V2 = mkV2 have_V noPrep ; -- TODO: check if {sii = "l" ++ BIND ; isCopula=True} makes sense for present tense negative +lin have_V2 = mkV2 (lin V have_V) noPrep ; -- TODO: check if {sii = "l" ++ BIND ; isCopula=True} makes sense for present tense negative lin can8know_VV = can_VV ; -- can (capacity) lin can_VV = mkVV "kar" ; -- can (possibility) lin must_VV = mkVV waa_in ; @@ -190,18 +190,17 @@ lin please_Voc = ss "" ; -} oper mkIAdv : Adposition -> Str -> Bool -> ResSom.IAdv = \pr -> - let pr' : Prep = ParadigmsSom.mkPrep pr ; - in prepIP pr' ; + prepIP (ParadigmsSom.mkPrep pr) ; - mkIP : (maxay, maxaa : Str) -> Bool -> IP = \maxay,maxaa,b -> emptyNP ** { + mkIP : (maxay, maxaa : Str) -> Bool -> IP = \maxay,maxaa,b -> lin IP (emptyNP ** { s = table { Nom => maxaa ; -- together with STM Abs => maxay } ; -- alone, no STM (used in UttIP and IComp) contractSTM = b ; - } ; + }) ; - prepIP : Prep -> Str -> Bool -> ResSom.IAdv = \pr,str,b -> + prepIP : CatSom.Prep -> Str -> Bool -> ResSom.IAdv = \pr,str,b -> let adv : Adverb = prepNP (mkPrep pr str [] []) emptyNP ; - in adv ** {contractSTM = b ; s = linAdv adv} ; + in lin IP (adv ** {contractSTM = b ; s = linAdv adv}) ; } diff --git a/src/spanish/MorphoSpa.gf b/src/spanish/MorphoSpa.gf index aea78c10..9c5bcd7b 100644 --- a/src/spanish/MorphoSpa.gf +++ b/src/spanish/MorphoSpa.gf @@ -166,65 +166,65 @@ oper -- Used in application grammars, please don't remove. /IL agr2pron : Agr => Pron = table { {g=Masc ; n=Sg ; p=P1} - => mkPronoun + => lin Pron (mkPronoun "yo" "me" "me" "mí" "mi" "mi" "mis" "mis" - Masc Sg P1 ; + Masc Sg P1) ; {g=Masc ; n=Sg ; p=P2} - => mkPronoun + => lin Pron (mkPronoun "tú" "te" "te" "ti" "tu" "tu" "tus" "tus" - Masc Sg P2 ; + Masc Sg P2) ; {g=Masc ; n=Sg ; p=P3} - => mkPronoun + => lin Pron (mkPronoun "él" "lo" "le" "él" "su" "su" "sus" "sus" - Masc Sg P3 ; + Masc Sg P3) ; {g=Masc ; n=Pl ; p=P1} - => mkPronoun + => lin Pron (mkPronoun "nosotros" "nos" "nos" "nosotros" "nuestro" "nuestra" "nuestros" "nuestras" - Masc Pl P1 ; + Masc Pl P1) ; {g=Masc ; n=Pl ; p=P2} - => mkPronoun + => lin Pron (mkPronoun "vosotros" "os" "os" "vosotros" "vuestro" "vuestra" "vuestros" "vuestras" - Masc Pl P2 ; + Masc Pl P2) ; {g=Masc ; n=Pl ; p=P3} - => mkPronoun + => lin Pron (mkPronoun "ellos" "los" "les" "ellos" "su" "su" "sus" "sus" - Masc Pl P3 ; + Masc Pl P3) ; {g=Fem ; n=Sg ; p=P1} - => mkPronoun + => lin Pron (mkPronoun "yo" "me" "me" "mí" "mi" "mi" "mis" "mis" - Fem Sg P1 ; + Fem Sg P1) ; {g=Fem ; n=Sg ; p=P2} - => mkPronoun + => lin Pron (mkPronoun "tú" "te" "te" "ti" "tu" "tu" "tus" "tus" - Fem Sg P2 ; + Fem Sg P2) ; {g=Fem ; n=Sg ; p=P3} - => mkPronoun + => lin Pron (mkPronoun "ella" "la" "le" "ella" "su" "su" "sus" "sus" - Fem Sg P3 ; + Fem Sg P3) ; {g=Fem ; n=Pl ; p=P1} - => mkPronoun + => lin Pron (mkPronoun "nosotras" "nos" "nos" "nosotras" "nuestro" "nuestra" "nuestros" "nuestras" - Fem Pl P1 ; + Fem Pl P1) ; {g=Fem ; n=Pl ; p=P2} - => mkPronoun + => lin Pron (mkPronoun "vosotras" "os" "os" "vosotras" "vuestro" "vuestra" "vuestros" "vuestras" - Fem Pl P2 ; + Fem Pl P2) ; {g=Fem ; n=Pl ; p=P3} - => mkPronoun + => lin Pron (mkPronoun "ellas" "las" "les" "ellas" "su" "su" "sus" "sus" - Fem Pl P3 + Fem Pl P3) } ; --2 Determiners diff --git a/src/swahili/ParadigmsSwa.gf b/src/swahili/ParadigmsSwa.gf index 8584e99c..5e485381 100644 --- a/src/swahili/ParadigmsSwa.gf +++ b/src/swahili/ParadigmsSwa.gf @@ -388,7 +388,7 @@ mkN2 = overload { } ; - regV=MorphoSwa.regV ; + regV=\v -> lin V (MorphoSwa.regV v) ; mkV = overload { mkV : Str -> V = \v ->lin V(regV v) ; diff --git a/src/thai/ConstructionTha.gf b/src/thai/ConstructionTha.gf index 15289d4d..b36edc04 100644 --- a/src/thai/ConstructionTha.gf +++ b/src/thai/ConstructionTha.gf @@ -65,7 +65,7 @@ lin monthPN m = ss m.s ; languageNP l = mkNP l ; - languageCN l = mkCN l ; + languageCN l = l ; monday_Weekday = mkN (R.thword "วัน" "จั" "นท" "ร์") ; tuesday_Weekday = mkN (R.thword "วัน" "อัง" "คาร") ; diff --git a/src/thai/LexiconTha.gf b/src/thai/LexiconTha.gf index bef525b2..acfc30b3 100644 --- a/src/thai/LexiconTha.gf +++ b/src/thai/LexiconTha.gf @@ -11,12 +11,12 @@ lin airplane_N = mkN (thword "เครื่อง" "บิน") "ลำ" ; already_Adv = mkAdv (thword "เรียบ" "ร้อย") ; animal_N = animalN (thword "สัตว์") ; - answer_V2S = mkV2S (regV "ตอบ") [] ; ---- prep + answer_V2S = mkV2S (mkV "ตอบ") [] ; ---- prep apartment_N = mkN (thword "ห้อง" "เช่า")"ห้อง" ; apple_N = mkN (thbind "แอป" "เปิ้ล") "ลูก" ; art_N = mkN (thword "ศิล" "ปะ") ; ashes_N = mkN (thword "เถ้า") ; - ask_V2Q = regV "ถาม" ** {c2 = []} ; + ask_V2Q = mkV "ถาม" ** {c2 = []} ; at_Prep = mkPrep "ที่" ; baby_N = mkN (thword "เด็ก" "ทา" "รก") "คน" ; back_N = mkN (thword "หลัง") ; @@ -26,7 +26,7 @@ lin beautiful_A = mkA "สวย" ; become_VA = mkV (thword "กลาย" "เป็น") ; -- pen beer_N = mkN biar_s kew_s ; - beg_V2V = regV "ขอ" ** {c2 = [] ; c3 = "ให้"} ; --- hay as prep of VP + beg_V2V = mkV "ขอ" ** {c2 = [] ; c3 = "ให้"} ; --- hay as prep of VP belly_N = mkN (thword "พุง") ; big_A = mkA (thword "ใหญ่") ; bike_N = mkN (thword "จักร" "ยาน") "คัน" ; @@ -105,7 +105,7 @@ lin father_N2 = mkN2 (personN (thword "พ่อ")) poss ; fear_N = mkN (thword "ความ" "กลัว") ; fear_V2 = mkV2 "กลัว"; - fear_VS = mkVS (regV "กลัว") ; + fear_VS = mkVS (mkV "กลัว") ; feather_N = mkN (thword "ขน" "นก") ; fight_V2 = mkV2 (thword "สู้") ; find_V2 = mkV2 "หา" ; @@ -151,7 +151,7 @@ lin hill_N = placeN (thword "เนิน" "เขา") ; hit_V2 = mkV2 (thword "ตี") ; hold_V2 = mkV2 (thword "รั้ง") ; - hope_VS = mkVS (regV "หวัง") ; + hope_VS = mkVS (mkV "หวัง") ; horn_N = mkN (thword "เขา") ; horse_N = mkN "ม้า" " ตัว" ; hot_A = mkA "ร้อน" ; @@ -168,8 +168,8 @@ lin king_N = mkN (thword "พระ" "รา" "ชา") (thword "พระ" "องด์") ; knee_N = mkN (thword "เข่า") ; know_V2 = mkV2 "รู้" ; ----? - know_VQ = lin VQ (regV "รู้") ; - know_VS = lin VS (regV "รู้") ; + know_VQ = lin VQ (mkV "รู้") ; + know_VS = lin VS (mkV "รู้") ; lake_N = mkN (thword "ทะ" "เล" "สาบ") ; ----? lamp_N = mkN (thword "โคม" "ไฟ") ; ----? language_N = mkN (thword "ภา" "ษา") ; ----? @@ -214,7 +214,7 @@ lin old_A = mkA (thword "แก่") ; open_V2 = mkV2 (mkV "เปิด") ; other_A = mkA "อื่น" ; - paint_V2A = mkV2A (regV "ทา") [] "สี" ; + paint_V2A = mkV2A (mkV "ทา") [] "สี" ; paper_N = mkN (thword "กระ" "ดาษ") ; ----? paris_PN = ss "ปารีส" ; peace_N = mkN (thword "สัน" "ติ" "ภาพ"); ----? @@ -255,7 +255,7 @@ lin run_V = mkV "วิ่ง" ; salt_N = mkN (thword "เกลือ") ; sand_N = mkN (thword "ทราย") ; - say_VS = mkVS (regV "พูด") ; + say_VS = mkVS (mkV "พูด") ; school_N = placeN (thword "โรง" "เรียน") ; ---- science_N = mkN "science" ; ----? scratch_V2 = mkV2 (thword "เกา") ; @@ -351,7 +351,7 @@ lin wing_N = mkN (thword "ปิก") ; wipe_V2 = mkV2 (thword "เช็ด") ; woman_N = personN (thword "หญิง") ; - wonder_VQ = mkVQ (regV (thword "ประ" "หลาด" "ใจ")) ; ---- + wonder_VQ = mkVQ (mkV (thword "ประ" "หลาด" "ใจ")) ; ---- wood_N = mkN "ไม้" ; ----? worm_N = animalN (thword "หนอน") ; write_V2 = mkV2 "เขียน" ; diff --git a/src/turkish/ParadigmsTur.gf b/src/turkish/ParadigmsTur.gf index bca8d9d6..67d6821e 100644 --- a/src/turkish/ParadigmsTur.gf +++ b/src/turkish/ParadigmsTur.gf @@ -55,10 +55,10 @@ resource ParadigmsTur = open mkV2V : V -> V2V = \verb -> lin V2V (verb ** {c = noPrep}) ; mkV2S : V -> V2S = \verb -> lin V2S (verb ** {c = noPrep}) ; - mkVA : V -> VA = \verb -> verb ; - mkVV : V -> VV = \verb -> verb ; - mkVS : V -> VS = \verb -> verb ; - mkVQ : V -> VQ = \verb -> verb ; + mkVA : V -> VA = \verb -> lin VA verb ; + mkVV : V -> VV = \verb -> lin VV verb ; + mkVS : V -> VS = \verb -> lin VS verb ; + mkVQ : V -> VQ = \verb -> lin VQ verb ; -- make a regular verb -- supply infinitive, softened infinitive, future infinitive forms and diff --git a/src/ukrainian/ParadigmsUkr.gf b/src/ukrainian/ParadigmsUkr.gf index 3c075b1b..309d82a0 100644 --- a/src/ukrainian/ParadigmsUkr.gf +++ b/src/ukrainian/ParadigmsUkr.gf @@ -1244,13 +1244,13 @@ oper } ; mkN2 = overload { - mkN2 : N -> N2 = \n -> n ** {c2 = noPrep} ; - mkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p} ; + mkN2 : N -> N2 = \n -> lin N2 (n ** {c2 = noPrep}) ; + mkN2 : N -> Prep -> N2 = \n,p -> lin N2 (n ** {c2 = p}) ; } ; mkN3 = overload { - mkN3 : N -> N3 = \n -> n ** {c2 = noPrep; c3 = noPrep} ; - mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> n ** {c2 = p1; c3 = p2} ; + mkN3 : N -> N3 = \n -> lin N3 (n ** {c2 = noPrep; c3 = noPrep}) ; + mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> lin N3 (n ** {c2 = p1; c3 = p2}) ; } ; mkV = overload { @@ -1258,39 +1258,39 @@ oper mkV : Str -> Str -> V = reg2V -- Active;Imperf;Pres;P1;Sg imperative1 } ; - mkVV : V -> VV = \v -> v ; - mkVS : V -> VS = \v -> v ; - mkVQ : V -> VQ = \v -> v ; - mkVA : V -> VA = \v -> v ; + mkVV : V -> VV = \v -> lin VV v ; + mkVS : V -> VS = \v -> lin VS v ; + mkVQ : V -> VQ = \v -> lin VQ v ; + mkVA : V -> VA = \v -> lin VA v ; mkV2 = overload { - mkV2 : V -> V2 = \v -> v ** {c2 = noPrep} ; - mkV2 : V -> Prep -> V2 = \v,p -> v ** {c2 = p} ; + mkV2 : V -> V2 = \v -> lin V2 (v ** {c2 = noPrep}) ; + mkV2 : V -> Prep -> V2 = \v,p -> lin V2 (v ** {c2 = p}) ; } ; mkV3 = overload { - mkV3 : V -> V3 = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV3 : V -> V3 = \v -> lin V3 (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> lin V3 (v ** {c2 = p1; c3 = p2}) ; } ; mkV2A = overload { - mkV2A : V -> V2A = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2A : V -> V2A = \v -> lin V2A (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2A : V -> Prep -> Prep -> V2A = \v,p1,p2 -> lin V2A (v ** {c2 = p1; c3 = p2}) ; } ; mkV2S = overload { - mkV2S : V -> V2S = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2S : V -> V2S = \v -> lin V2S (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2S : V -> Prep -> Prep -> V2S = \v,p1,p2 -> lin V2S (v ** {c2 = p1; c3 = p2}) ; } ; mkV2Q = overload { - mkV2Q : V -> V2Q = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2Q : V -> V2Q = \v -> lin V2Q (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2Q : V -> Prep -> Prep -> V2Q = \v,p1,p2 -> lin V2Q (v ** {c2 = p1; c3 = p2}) ; } ; mkV2V = overload { - mkV2V : V -> V2V = \v -> v ** {c2 = noPrep; c3 = noPrep} ; - mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> v ** {c2 = p1; c3 = p2} ; + mkV2V : V -> V2V = \v -> lin V2V (v ** {c2 = noPrep; c3 = noPrep}) ; + mkV2V : V -> Prep -> Prep -> V2V = \v,p1,p2 -> lin V2V (v ** {c2 = p1; c3 = p2}) ; } ; mkA = overload { @@ -1299,8 +1299,8 @@ oper } ; mkA2 = overload { - mkA2 : A -> A2 = \a -> a ** {c2 = noPrep} ; - mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p} ; + mkA2 : A -> A2 = \a -> lin A2 (a ** {c2 = noPrep}) ; + mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c2 = p}) ; } ; mkAdv : Str -> Adv = \s -> lin Adv {s=s} ; diff --git a/src/urdu/ParadigmsUrd.gf b/src/urdu/ParadigmsUrd.gf index 79c653f5..54d1aaa8 100644 --- a/src/urdu/ParadigmsUrd.gf +++ b/src/urdu/ParadigmsUrd.gf @@ -83,7 +83,7 @@ oper -- compound Adjectives mkCompoundA : Str -> Str -> A ; -- e.g dra hwa - mkCompoundA s1 s2 = compoundAdj s1 s2 ; + mkCompoundA s1 s2 = lin A (compoundAdj s1 s2) ; --2 Verbs @@ -144,7 +144,7 @@ mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; -- mkQuant : Pron -> Quant = \p -> {s = \\_,_,c => p.s!c ;a = p.a ; lock_Quant = <>}; -- mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant = mkQuantifier; -- } ; - mkIQuant : Str -> IQuant = \s -> makeIQuant s ; + mkIQuant : Str -> IQuant = \s -> lin IQuant (makeIQuant s) ; --2 Conjunctions @@ -166,7 +166,7 @@ mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; -- mkV0 : V -> V0 ; mkVS : V -> VS; -- e.g drna - mkVS v = v ; + mkVS v = lin VS v ; -- mkV2S : V -> Prep -> V2S ; mkVV : V -> VV = -- e.g cahna \v -> lin VV (v ** {isAux = False}); @@ -181,7 +181,7 @@ mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; -- mkVA : V -> VA ; -- mkV2A : V -> Prep -> V2A ; mkVQ : V -> VQ ; -- e.g janna - mkVQ v = v ; + mkVQ v = lin VQ v ; -- mkV2Q : V -> Prep -> V2Q ; -- -- mkAS : A -> AS ; From 06f3602e00dbbcb701f3c423018c02e2682a1ef9 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 14 Nov 2025 14:32:30 +0100 Subject: [PATCH 088/169] fix compilation with the old type checker --- src/estonian/ExtendEst.gf | 4 ++-- src/swahili/ParadigmsSwa.gf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/estonian/ExtendEst.gf b/src/estonian/ExtendEst.gf index 08712dc2..96740879 100644 --- a/src/estonian/ExtendEst.gf +++ b/src/estonian/ExtendEst.gf @@ -353,7 +353,7 @@ concrete ExtendEst of Extend = -- : VPSlash -> AP ; -- täna leitud PastPartAP vp = { - s = \\_,_ => vp2adv (lin VP vp) ; + s = \\_,_ => vp2adv True (PastPart Pass) ; infl = Invariable } ; @@ -366,7 +366,7 @@ concrete ExtendEst of Extend = -- : VPSlash -> NP -> AP -- hobisukeldujate poolt leitud (süvaveepomm) PastPartAgentAP vp np = { s = \\_,_ => appCompl True Pos by8agent_Prep np - ++ vp2adv (lin VP vp) ; + ++ vp2adv True (PastPart Pass) ; infl = Invariable } ; diff --git a/src/swahili/ParadigmsSwa.gf b/src/swahili/ParadigmsSwa.gf index 5e485381..193fdb9a 100644 --- a/src/swahili/ParadigmsSwa.gf +++ b/src/swahili/ParadigmsSwa.gf @@ -388,7 +388,7 @@ mkN2 = overload { } ; - regV=\v -> lin V (MorphoSwa.regV v) ; + regV : Str -> V = \v -> lin V (MorphoSwa.regV v) ; mkV = overload { mkV : Str -> V = \v ->lin V(regV v) ; From a73b6ad6edcc519dc2d691a25329f05f93a26d11 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 16 Nov 2025 08:52:14 +0100 Subject: [PATCH 089/169] fixes to make the WordNet compile --- src/basque/LexiconEus.gf | 12 ++++++------ src/basque/ParadigmsEus.gf | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/basque/LexiconEus.gf b/src/basque/LexiconEus.gf index 1fc3555e..143f49a9 100644 --- a/src/basque/LexiconEus.gf +++ b/src/basque/LexiconEus.gf @@ -196,7 +196,7 @@ lin jump_V = mkV "jauzi" egin_V ; --Apertium lin kill_V2 = mkV2 "hil" ; --Apertium lin king_N = mkN "errege" animate ; --Apertium lin knee_N = mkN "belaun" ; --Apertium -lin know_V2 = lin V2 jakin_V2 ; -- synthetic verb +lin know_V2 = jakin_V2 ; -- synthetic verb lin know_VQ = lin VQ jakin_V2 ; -- synthetic verb lin know_VS = ukanV "uste" ; @@ -426,11 +426,11 @@ oper egin_V : V = mkV "egin" ; -- Some synthetic verbs - etorri_V : R.Verb = R.syntVerbDa "etorri" R.Etorri ; + etorri_V : V = lin V (R.syntVerbDa "etorri" R.Etorri) ; - ibili_V : R.Verb = R.syntVerbDa "ibili" R.Ibili ; + ibili_V : V = lin V (R.syntVerbDa "ibili" R.Ibili) ; - jakin_V2 : R.Verb = R.syntVerbDu "jakin" R.Jakin ; + jakin_V2 : V2 = lin V2 (R.syntVerbDu "jakin" R.Jakin) ; - joan_V : R.Verb = R.syntVerbDa "joan" R.Joan ; -} \ No newline at end of file + joan_V : V = lin V (R.syntVerbDa "joan" R.Joan) ; +} diff --git a/src/basque/ParadigmsEus.gf b/src/basque/ParadigmsEus.gf index 5836fee1..4c04a8e9 100644 --- a/src/basque/ParadigmsEus.gf +++ b/src/basque/ParadigmsEus.gf @@ -116,15 +116,15 @@ oper -- Verbs with non-inflecting participle -- These are just Verb, use izanV or egonV for intransitive and ukanV for transitive. - izanV : Str -> Verb = \bizi -> - mkVerbDa bizi ** { prc = \\_ => bizi } ; -- Non-inflecting participle, auxtype is Da (nor): e.g. "bizi naiz", "beldur naiz" + izanV : Str -> V = \bizi -> + lin V (mkVerbDa bizi ** { prc = \\_ => bizi }) ; -- Non-inflecting participle, auxtype is Da (nor): e.g. "bizi naiz", "beldur naiz" - egonV : Str -> Verb = \zain -> - mkVerbDaEgon zain ** { prc = \\_ => zain } ; -- Non-inflecting participle, auxtype is Da (nor), but with egon: e.g. "zain nago" + egonV : Str -> V = \zain -> + lin V (mkVerbDaEgon zain ** { prc = \\_ => zain }) ; -- Non-inflecting participle, auxtype is Da (nor), but with egon: e.g. "zain nago" - ukanV : Str -> Verb = \maite -> - mkVerbDu maite ** { prc = \\_ => maite } ; -- Non-inflecting participle, auxtype is Du (nor-nork): e.g, "maite zaitut" + ukanV : Str -> V = \maite -> + lin V (mkVerbDu maite ** { prc = \\_ => maite }) ; -- Non-inflecting participle, auxtype is Du (nor-nork): e.g, "maite zaitut" --2 Structural categories From 5e6ee94baae062879b1851bb0accb055c0a23496 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 16 Nov 2025 13:22:01 +0100 Subject: [PATCH 090/169] added TPastSimple --- src/korean/ExtendKor.gf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/korean/ExtendKor.gf b/src/korean/ExtendKor.gf index 9e318518..da807854 100644 --- a/src/korean/ExtendKor.gf +++ b/src/korean/ExtendKor.gf @@ -3,10 +3,11 @@ concrete ExtendKor of Extend = CatKor -- ** ExtendFunctor - [ApposNP] -- with (Grammar=GrammarKor) - ** open Prelude, ResKor, NounKor, Coordination in { + ** open Prelude, ResKor, NounKor, Coordination, TenseX in { lin -- : NP -> NP -> NP ApposNP np1 np2 = np1 ** {s = \\nf => np1.s ! nf ++ np2.s ! nf} ; + TPastSimple = TPast ; } ; From f715e393cb9c3b7cb3991b30e254f5ec4024f0b1 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 17 Nov 2025 14:01:14 +0100 Subject: [PATCH 091/169] fix the lock field in mkPrep --- src/latin/ParadigmsLat.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/latin/ParadigmsLat.gf b/src/latin/ParadigmsLat.gf index 42620669..97c0fa6d 100644 --- a/src/latin/ParadigmsLat.gf +++ b/src/latin/ParadigmsLat.gf @@ -124,7 +124,7 @@ oper mkConj : Str -> Coordinator -> Conjunction = \s,c -> mkConjunction [] s [] Sg c ; } ; - mkPrep : Str -> Case -> Preposition = mkPreposition ; + mkPrep : Str -> Case -> Prep = \s,c -> lin Prep (mkPreposition s c) ; mkPron = mkPronoun ; From 115ad31e2d86f38600d56142c7ffae77fc8e719e Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 27 Nov 2025 09:11:24 +0100 Subject: [PATCH 092/169] added lincat CN --- src/macedonian/CatMkd.gf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index cc59f448..79b81116 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -3,6 +3,7 @@ concrete CatMkd of Cat = CommonX ** open ResMkd, Prelude in { lincat N = Noun ; lincat N2 = Noun ** {c2 : Compl} ; lincat N3 = Noun ** {c2,c3 : Compl} ; +lincat CN = {s: Species => Number => Str; count_form: Str; vocative: Number => Str; g: Gender} ; lincat V, VA, VV, VS, VQ = Verb ; lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ; lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ; From 73fa89103b86b3fdce6df98455062f2a04b46eae Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 8 Jan 2026 08:44:26 +0100 Subject: [PATCH 093/169] remove repeated record fields --- src/czech/ResCze.gf | 2 -- src/finnish/StructuralFin.gf | 4 ++-- src/romanian/ResRon.gf | 2 +- src/rukiga/StructuralCgg.gf | 8 ++++---- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/czech/ResCze.gf b/src/czech/ResCze.gf index 8e6558cc..4e009982 100644 --- a/src/czech/ResCze.gf +++ b/src/czech/ResCze.gf @@ -726,7 +726,6 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> { Ag _ Pl P1 => jarniAdjForms "naše" ** { msnom = "náš" ; - msins = "naším" ; fsgen,mpnom = "naši" ; fsins = "naší" ; pdat, msins = "našim" ; @@ -735,7 +734,6 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> { } ; Ag _ Pl P2 => jarniAdjForms "vaše" ** { msnom = "váš" ; - msins = "vaším" ; fsgen,mpnom = "vaši" ; fsins = "vaší" ; pdat, msins = "vašim" ; diff --git a/src/finnish/StructuralFin.gf b/src/finnish/StructuralFin.gf index 6b2ad0e7..c1829583 100644 --- a/src/finnish/StructuralFin.gf +++ b/src/finnish/StructuralFin.gf @@ -89,13 +89,13 @@ concrete StructuralFin of Structural = CatFin ** } ; somePl_Det = heavyDet { s1 = jokuPron ! Pl ; - s2 = \\_ => [] ; isNum,isPoss = False ; isNeg = False ; isDef = True ; + s2 = \\_ => [] ; isNum,isPoss = False ; isDef = True ; n = Pl ; isNeg = False } ; something_NP = { s = \\c => jokinPron ! Sg ! npform2case Sg c ; a = agrP3 Sg ; - isPron = False ; isNeg = False ; isNeg = False + isPron = False ; isNeg = False } ; somewhere_Adv = ssp "ADV" "jossain" ; that_Quant = heavyQuant { diff --git a/src/romanian/ResRon.gf b/src/romanian/ResRon.gf index 6497092e..9c236bd4 100644 --- a/src/romanian/ResRon.gf +++ b/src/romanian/ResRon.gf @@ -260,7 +260,7 @@ useVerb : Verb -> VerbPhrase =\verb -> nrClit = verb.nrClit; isFemSg = False ; pReflClit = verb.pReflClit ; neg = table {Pos => ""; Neg => "nu"} ; - clAcc = RNoAg ; nrClit = verb.nrClit; + clAcc = RNoAg ; clDat = RNoAg ; comp = \\a => [] ; ext = \\p => [] ; diff --git a/src/rukiga/StructuralCgg.gf b/src/rukiga/StructuralCgg.gf index 1ae12767..b25f1d8e 100644 --- a/src/rukiga/StructuralCgg.gf +++ b/src/rukiga/StructuralCgg.gf @@ -257,15 +257,15 @@ lin want_VV = {s = "yend"; pres="da"; perf = "zire"; isPresBlank = False; - isPerfBlank = False; isRegular = True; p = []; isRefl = False; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth}; + isPerfBlank = False; isRegular = True; p = []; isRefl = False; morphs=mkVerbMorphs; inf=[]; whenUsed = VVBoth}; can8know_VV = {s = "baas"; pres="a"; perf = "ize"; isPresBlank = False; - isPerfBlank = False; isRegular = True; p = []; isRefl = False; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};--: VV ; -- can (capacity) + isPerfBlank = False; isRegular = True; p = []; isRefl = False; morphs=mkVerbMorphs; inf=[]; whenUsed = VVBoth};--: VV ; -- can (capacity) can_VV = {s = "baas"; pres="a"; perf = "ize"; isPresBlank = False; - isPerfBlank = False; isRegular = True; p = []; isRefl = False; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};--: VV ; -- can (possibility) + isPerfBlank = False; isRegular = True; p = []; isRefl = False; morphs=mkVerbMorphs; inf=[]; whenUsed = VVBoth};--: VV ; -- can (possibility) -- must_VV used especially in the perfective mood: see dictionary entry shemerera on Pg 501 of Mpairwe -- must has no passive form must_VV = {s = "shemere"; pres="ra"; perf = "ire"; isPresBlank = False; - isPerfBlank = False; isRegular = False; p = []; isRefl = False; morphs=mkVerbMorphs; isRegular=False; inf=[]; whenUsed = VVPerf}; --VV + isPerfBlank = False; p = []; isRefl = False; morphs=mkVerbMorphs; isRegular=False; inf=[]; whenUsed = VVPerf}; --VV everybody_NP = {s = \\_=>"buri muntu" ; agr=AgP3 Sg MU_BA}; everything_NP = {s = \\_=>"buri kintu" ; agr=AgP3 Sg KI_BI}; somebody_NP = {s = \\_=>"somebody:omuntu omwe" ; agr=AgP3 Sg MU_BA}; --: NP ; From dceb5252a25591016292427d0f315c2845cd241c Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 8 Jan 2026 09:03:26 +0100 Subject: [PATCH 094/169] remove the experimental AnaphPron --- src/abstract/Extend.gf | 3 --- src/bulgarian/ExtendBul.gf | 12 ------------ src/english/ExtendEng.gf | 14 -------------- src/spanish/ExtendSpa.gf | 4 +--- 4 files changed, 1 insertion(+), 32 deletions(-) diff --git a/src/abstract/Extend.gf b/src/abstract/Extend.gf index 892ad7ff..686cc61c 100644 --- a/src/abstract/Extend.gf +++ b/src/abstract/Extend.gf @@ -299,9 +299,6 @@ fun fun CardCNCard : Card -> CN -> Card ; -- three million, four lakh, six dozen etc -fun - AnaphPron : NP -> Pron ; - fun TPastSimple : Tense ; diff --git a/src/bulgarian/ExtendBul.gf b/src/bulgarian/ExtendBul.gf index 808be483..6873348f 100644 --- a/src/bulgarian/ExtendBul.gf +++ b/src/bulgarian/ExtendBul.gf @@ -316,18 +316,6 @@ lin UseComp_estar = UseComp ; lin ProDrop pro = pro ; -lin AnaphPron np = - case of { - => i_Pron ; - => youSg_Pron ; - => he_Pron ; - => she_Pron ; - => it_Pron ; - => we_Pron ; - => youPl_Pron ; - => they_Pron - } ; - lin TPastSimple = {s = []} ** {t = VPastSimple} ; --# notpresent } diff --git a/src/english/ExtendEng.gf b/src/english/ExtendEng.gf index d8252c36..033b60c9 100644 --- a/src/english/ExtendEng.gf +++ b/src/english/ExtendEng.gf @@ -500,18 +500,4 @@ lin CardCNCard card cn = lin theyFem_Pron = mkPron "they" "them" "their" "theirs" plural P3 feminine ; lin theyNeutr_Pron = mkPron "they" "them" "their" "theirs" plural P3 nonhuman ; -lin AnaphPron np = - case np.a of { - AgP1 Sg => i_Pron ; - AgP1 Pl => we_Pron ; - AgP2 Sg => youSg_Pron ; - AgP2 Pl => youPl_Pron ; - AgP3Sg Masc => he_Pron ; - AgP3Sg Fem => she_Pron ; - AgP3Sg Neutr => it_Pron ; - AgP3Pl Masc => they_Pron ; - AgP3Pl Fem => theyFem_Pron ; - AgP3Pl Neutr => theyNeutr_Pron - } ; - } diff --git a/src/spanish/ExtendSpa.gf b/src/spanish/ExtendSpa.gf index 12069287..7c9e1e5a 100644 --- a/src/spanish/ExtendSpa.gf +++ b/src/spanish/ExtendSpa.gf @@ -125,9 +125,7 @@ oper comp = \\a => vps.comp ! a ++ (let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) ++ agent ; } ; -lin AnaphPron np = agr2pron ! np.a ; - - ExistsNP np = +lin ExistsNP np = mkClause [] True False np.a (insertComplement (\\_ => (np.s ! Nom).ton) (predV (mkV "existir"))) ; From 090a6ea33d0ec3d47e7172be928e1c6402bb974c Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 17 Feb 2026 18:07:55 +0100 Subject: [PATCH 095/169] started DocumentationSwa.gf --- src/swahili/DocumentationSwa.gf | 45 +++++++++++++++++++++++++++++++++ src/swahili/LangSwa.gf | 1 + 2 files changed, 46 insertions(+) create mode 100755 src/swahili/DocumentationSwa.gf diff --git a/src/swahili/DocumentationSwa.gf b/src/swahili/DocumentationSwa.gf new file mode 100755 index 00000000..a0ffc748 --- /dev/null +++ b/src/swahili/DocumentationSwa.gf @@ -0,0 +1,45 @@ +--# -path=.:../abstract:../common +concrete DocumentationSwa of Documentation = CatSwa ** open + ResSwa,ParamX,Prelude, + HTML in { + +lincat + Inflection = {t : Str; s1,s2 : Str} ; + Definition = {s : Str} ; + Document = {s : Str} ; + Tag = {s : Str} ; + +lin InflectionN,InflectionN2,InflectionN3 = \x -> { + t="n" ; + s1=heading1 ("Noun (class" ++ + case x.g of { + G1 => "I" ; + G2 => "II" ; + G3 => "III" ; + G4 => "IV" ; + G5 => "V" ; + G6 => "VI" ; + G7 => "VII" ; + G8 => "VIII" ; + G9 => "IX" ; + G10=> "X" ; + G11=> "XI" ; + G12=> "XII" ; + G13=> "XIII" + } ++ BIND ++ ")") ; + s2=frameTable ( + tr (th "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Nom" ++ td (x.s ! Sg ! Nom) ++ td (x.s ! Pl ! Nom)) ++ + tr (th "Loc" ++ td (x.s ! Sg ! Loc) ++ td (x.s ! Pl ! Loc))) + } ; + +lin + NoDefinition t = {s=t.s}; + MkDefinition t d = {s="

Definition:"++t.s++d.s++"

"}; + MkDefinitionEx t d e = {s="

Definition:"++t.s++d.s++"

Example:"++e.s++"

"}; + +lin + MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ paragraph e.s} ; + MkTag i = {s = i.t} ; + +} diff --git a/src/swahili/LangSwa.gf b/src/swahili/LangSwa.gf index def8c6d4..7821b987 100644 --- a/src/swahili/LangSwa.gf +++ b/src/swahili/LangSwa.gf @@ -4,5 +4,6 @@ concrete LangSwa of Lang = GrammarSwa, LexiconSwa -- ,ConstructionSwa + ,DocumentationSwa --# notpresent ** { } ; From e9ecb1a8d67356aab22678f7e22526e9f1eb62ac Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 18 Feb 2026 09:00:26 +0100 Subject: [PATCH 096/169] fix copula --- src/scots/ExtendSco.gf | 22 +++++++++++++++++++++- src/scots/IdiomSco.gf | 29 ++++++++++++++++++++++++++++- src/scots/QuestionSco.gf | 6 +++++- src/scots/ResSco.gf | 29 ++++++++++++++++++++++++++++- src/scots/VerbSco.gf | 6 +++++- 5 files changed, 87 insertions(+), 5 deletions(-) diff --git a/src/scots/ExtendSco.gf b/src/scots/ExtendSco.gf index f14d4508..9a704b64 100644 --- a/src/scots/ExtendSco.gf +++ b/src/scots/ExtendSco.gf @@ -1,4 +1,24 @@ --# -path=.:../common:../abstract -concrete ExtendSco of Extend = ExtendEng ** { +concrete ExtendSco of Extend = ExtendEng-[passVPSlash,PassVPSlash,PassAgentVPSlash,ProgrVPSlash] ** open ResSco in { + +oper + passVPSlash : VPSlash -> Str -> ResEng.VP = + \vps,ag -> + let + be = predAux auxBe ; + ppt = vps.ptp + in be ** { + p = [] ; + ad = \\_ => [] ; + s2 = \\a => vps.ad ! a ++ ppt ++ vps.p ++ vps.s2 ! a ++ ag ++ vps.c2 ; ---- place of agent + isSimple = False ; + ext = vps.ext + } ; + +lin PassVPSlash vps = passVPSlash (lin VPSlash vps) [] ; + PassAgentVPSlash vps np = passVPSlash (lin VPSlash vps) ("by" ++ np.s ! NPAcc) ; + ProgrVPSlash vp = insertObjc (\\a => vp.ad ! a ++ vp.prp ++ vp.p ++ vp.s2 ! a) + (predAux auxBe ** {c2 = vp.c2; gapInMiddle = vp.gapInMiddle; missingAdv = vp.missingAdv}); + } diff --git a/src/scots/IdiomSco.gf b/src/scots/IdiomSco.gf index 3fc95353..bad132b3 100644 --- a/src/scots/IdiomSco.gf +++ b/src/scots/IdiomSco.gf @@ -1,2 +1,29 @@ -concrete IdiomSco of Idiom = IdiomEng ** { +concrete IdiomSco of Idiom = IdiomEng - [CleftNP,CleftAdv,ExistNP,ExistIP,ExistNPAdv,ExistIPAdv,ProgrVP] ** open Prelude, ResSco in { + +lin CleftNP np rs = mkClause "it" (agrP3 Sg) + (insertObj (\\_ => rs.s ! np.a) + (insertObj (\\_ => np.s ! rs.c) (predAux auxBe))) ; + + CleftAdv ad s = mkClause "it" (agrP3 Sg) + (insertObj (\\_ => conjThat ++ s.s) + (insertObj (\\_ => ad.s) (predAux auxBe))) ; + + ExistNP np = + mkClause "there" (agrP3 (fromAgr np.a).n) + (insertObj (\\_ => np.s ! NPAcc) (predAux auxBe)) ; + + ExistIP ip = + mkQuestion (ss (ip.s ! npNom)) + (mkClause "there" (agrP3 ip.n) (predAux auxBe)) ; + + ExistNPAdv np adv = + mkClause "there" (agrP3 (fromAgr np.a).n) + (insertObj (\\_ => np.s ! NPAcc ++ adv.s) (predAux auxBe)) ; + + ExistIPAdv ip adv = + mkQuestion (ss (ip.s ! npNom)) + (mkClause "there" (agrP3 ip.n) (insertObj (\\_ => adv.s) (predAux auxBe))) ; + + ProgrVP vp = insertObj (\\a => vp.ad ! a ++ vp.prp ++ vp.p ++ vp.s2 ! a) (predAux auxBe) ; + } diff --git a/src/scots/QuestionSco.gf b/src/scots/QuestionSco.gf index e936f175..bac4b6cb 100644 --- a/src/scots/QuestionSco.gf +++ b/src/scots/QuestionSco.gf @@ -1,2 +1,6 @@ -concrete QuestionSco of Question = QuestionEng ** { +concrete QuestionSco of Question = QuestionEng-[QuestIComp] ** open ResSco in { + +lin QuestIComp icomp np = + mkQuestion icomp (mkClause (np.s ! npNom) np.a (predAux auxBe)) ; + } diff --git a/src/scots/ResSco.gf b/src/scots/ResSco.gf index 8c2241b8..7e4d8c48 100644 --- a/src/scots/ResSco.gf +++ b/src/scots/ResSco.gf @@ -1,2 +1,29 @@ -resource ResSco = ResEng ** { +resource ResSco = ResEng - [auxBe,posneg] ** { + +oper + auxBe : Aux = { + pres = \\b,a => case of { + => "am" ; + => "amna" ; + _ => agrVerb (posneg b "is") (posneg b "are") a + } ; + contr = \\b,a => case of { + => cBind "m" ; + => cBind "m not" ; --- am not I + _ => agrVerb (posneg b (cBind "s")) (posneg b (cBind "re")) a + } ; + past = \\b,a => case a of { --# notpresent + AgP1 Sg | AgP3Sg _ => posneg b "wis" ; --# notpresent + _ => posneg b "wir" --# notpresent + } ; --# notpresent + inf = "be" ; + ppart = "been" ; + prpart = "bein" + } ; + + posneg : Polarity -> Str -> Str = \p,s -> case p of { + Pos => s ; + Neg => s + "na" + } ; + } diff --git a/src/scots/VerbSco.gf b/src/scots/VerbSco.gf index af1d28f6..b02a77e0 100644 --- a/src/scots/VerbSco.gf +++ b/src/scots/VerbSco.gf @@ -1,2 +1,6 @@ -concrete VerbSco of Verb = VerbEng ** { +concrete VerbSco of Verb = VerbEng-[UseComp,UseCopula,PassV2] ** open ResSco in { + +lin UseComp comp = insertObj comp.s (predAux auxBe) ; + UseCopula = predAux auxBe ; + } From 066133bbae8575ee281f7e11069c34a98c628df6 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 18 Feb 2026 09:06:06 +0100 Subject: [PATCH 097/169] fix compilation --- src/scots/ExtendSco.gf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scots/ExtendSco.gf b/src/scots/ExtendSco.gf index 9a704b64..8436659a 100644 --- a/src/scots/ExtendSco.gf +++ b/src/scots/ExtendSco.gf @@ -1,9 +1,9 @@ --# -path=.:../common:../abstract -concrete ExtendSco of Extend = ExtendEng-[passVPSlash,PassVPSlash,PassAgentVPSlash,ProgrVPSlash] ** open ResSco in { +concrete ExtendSco of Extend = ExtendEng-[passVPSlash,PassVPSlash,PassAgentVPSlash,ProgrVPSlash] ** open Prelude, ResSco in { oper - passVPSlash : VPSlash -> Str -> ResEng.VP = + passVPSlash : VPSlash -> Str -> ResSco.VP = \vps,ag -> let be = predAux auxBe ; From dbe6eba30a1e686f2b3824f74c0d6fd99b0cacb6 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 18 Feb 2026 09:08:19 +0100 Subject: [PATCH 098/169] added PassV2 --- src/scots/VerbSco.gf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scots/VerbSco.gf b/src/scots/VerbSco.gf index b02a77e0..23ffda0f 100644 --- a/src/scots/VerbSco.gf +++ b/src/scots/VerbSco.gf @@ -2,5 +2,6 @@ concrete VerbSco of Verb = VerbEng-[UseComp,UseCopula,PassV2] ** open ResSco in lin UseComp comp = insertObj comp.s (predAux auxBe) ; UseCopula = predAux auxBe ; + PassV2 v = insertObj (\\_ => v.s ! VPPart ++ v.p) (predAux auxBe) ; } From ec4bc75a64dc23130fb3dd109ea241a992786061 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 18 Feb 2026 15:37:16 +0100 Subject: [PATCH 099/169] added irregular Scots verbs --- src/scots/AllSco.gf | 1 + src/scots/AllScoAbs.gf | 1 + src/scots/IrregSco.gf | 53 ++++++++++++++++++++++++++++++++++++++++ src/scots/IrregScoAbs.gf | 53 ++++++++++++++++++++++++++++++++++++++++ src/scots/LexiconSco.gf | 18 +++++++------- 5 files changed, 117 insertions(+), 9 deletions(-) create mode 100644 src/scots/IrregSco.gf create mode 100644 src/scots/IrregScoAbs.gf diff --git a/src/scots/AllSco.gf b/src/scots/AllSco.gf index ff87d024..03f2be4f 100644 --- a/src/scots/AllSco.gf +++ b/src/scots/AllSco.gf @@ -2,6 +2,7 @@ concrete AllSco of AllScoAbs = LangSco, + IrregSco - [burn_V, freeze_V], ExtendSco ** {} ; diff --git a/src/scots/AllScoAbs.gf b/src/scots/AllScoAbs.gf index b2d8fd84..2671579c 100644 --- a/src/scots/AllScoAbs.gf +++ b/src/scots/AllScoAbs.gf @@ -2,5 +2,6 @@ abstract AllScoAbs = Lang, + IrregScoAbs - [burn_V, freeze_V], Extend ** {} ; diff --git a/src/scots/IrregSco.gf b/src/scots/IrregSco.gf new file mode 100644 index 00000000..ebc7d679 --- /dev/null +++ b/src/scots/IrregSco.gf @@ -0,0 +1,53 @@ +concrete IrregSco of IrregScoAbs = CatSco ** open ParadigmsSco in { + +lin + acquent_V = mkV "acquent" "acquents" "acquentit" "acquent" "acquentin" ; + awe_V = mkV "awe" "awes" "aucht" "aucht" "awein" ; + beat_V = mkV "beat" "beats" "bate" "bate" "beatin" ; + bear_V = mkV "bear" "bears" "bure" "born" "bearin" ; + begin_V = mkV "begin" "begins" "begoud" "began" "beginin" ; + bend_V = mkV "bend" "bends" "bent" "bent" "bendin" ; + bid_V = mkV "bid" "bids" ("baud" | "bade") "bidden" "bidin" ; + bind_V = mkV "bind" "binds" "band" "bund" "bindin" ; + birrie_V = mkV "birrie" "birries" "birriet" "birriet" "birriein" ; + blaw_V = mkV "blaw" "blaws" "blew" "blawn" "blawin" ; + bluid_V = mkV "bluid" "bluids" "bled" "bled" "bluidin" ; + bide_V = mkV "bide" "bides" "bade" "bidden" "bidin" ; + bou_V = mkV "bou" "bous" "boud" "boud" "bouin" ; + burn_V = mkV "burn" "burns" "brunt" "brunt" "burnin" ; + buy_V = mkV "buy" "buys" "bocht" "bocht" "buyin" ; + byle_V = mkV "byle" "byles" "bylt" "bylt" "bylin" ; + can_V = mkV "can" "cans" "coud" "coud" "canin" ; + cast_V = mkV "cast" "casts" "cuist" "cuisten" "castin" ; + dee_V = mkV "dee" "dees" "dee'd" "dee'd" "deein" ; + ding_V = mkV "ding" "dings" "dang" "dung" "dingin" ; + draw_V = mkV "draw" "draws" "drew" "drawn" "drawin" ; + drink_V = mkV "drink" "drinks" "drank" ("drucken" | "drunken") "drinkin" ; + drive_V = mkV "drive" "drives" "druive" ("druive" | "driv") "drivin" ; + faw_V = mkV "faw" "faws" "fell" "fawn" "fawin" ; + fesh_V = mkV "fesh" "feshs" "fuish" "fuishen" "feshin" ; + find_V = mkV "find" "finds" "fand" "fund" "findin" ; + flee_V = mkV "flee" "flees" "flew" "flewen" "fleein" ; + fling_V = mkV "fling" "flings" "flang" "flung" "flingin" ; + forgit_V = mkV "forgit" "forgits" "forgat" "forgotten" "forgitin" ; + freeze_V = mkV "freeze" "freezes" "fruize" "frozen" "freezein" ; + gae_V = mkV "gae" "gaes" "gaed" ("gane" | "went") "gaein" ; + git_V = mkV "git" "gits" "gat" "gotten" "gitin" ; + greet_V = mkV "greet" "greets" "grat" "grutten" "greetin" ; + hae_V = mkV "hae" "haes" "haed" "haet" "hain" ; + hide_V = mkV "hide" "hides" "hade" "hidden" "hidin" | mkV "hide" "hides" "hod" "hodden" "hidin" ; + hit_V = mkV "hit" "hits" "hat" "hutten" "hitin" ; + lat_V = mkV "lat" "lats" "luit" "lutten" "latin" ; + leap_V = mkV "leap" "leaps" ("lap" | "lape") "luppen" "leapin" ; + mistak_V = mkV "mistak" "mistaks" "misteuk" "mistaen" "mistakin" ; + quit_V = mkV "quit" "quits" "quat" ("quat" | "quitten") "quitin" ; + read_V = mkV "read" "reads" "rade" ("read" | "readen") "readin" ; + rin_V = mkV "rin" "rins" "ran" "run" "rinin" ; + ride_V = mkV "ride" "rides" "rade" "ridden" "ridein" ; + shall_V = mkV "shall" "shalls" "shoud" "shoud" "shallin" ; + sweir_V = mkV "sweir" "sweirs" "swuire" "sworn" "sweirin" ; + tak_V = mkV "tak" "taks" "teuk" "taen" "takin" ; + thresh_V = mkV "thresh" "threshs" "thruish" "thruishen" "threshin" ; + write_V = mkV "write" "writes" "wrat" "written" "writein" ; + +} diff --git a/src/scots/IrregScoAbs.gf b/src/scots/IrregScoAbs.gf new file mode 100644 index 00000000..37ae0759 --- /dev/null +++ b/src/scots/IrregScoAbs.gf @@ -0,0 +1,53 @@ +abstract IrregScoAbs = Cat ** { + +fun + acquent_V : V ; + awe_V : V ; + beat_V : V ; + bear_V : V ; + begin_V : V ; + bend_V : V ; + bid_V : V ; + bind_V : V ; + birrie_V : V ; + blaw_V : V ; + bluid_V : V ; + bide_V : V ; + bou_V : V ; + burn_V : V ; + buy_V : V ; + byle_V : V ; + can_V : V ; + cast_V : V ; + dee_V : V ; + ding_V : V ; + draw_V : V ; + drink_V : V ; + drive_V : V ; + faw_V : V ; + fesh_V : V ; + find_V : V ; + flee_V : V ; + fling_V : V ; + forgit_V : V ; + freeze_V : V ; + gae_V : V ; + git_V : V ; + greet_V : V ; + hae_V : V ; + hide_V : V ; + hit_V : V ; + lat_V : V ; + leap_V : V ; + mistak_V : V ; + quit_V : V ; + read_V : V ; + rin_V : V ; + ride_V : V ; + shall_V : V ; + sweir_V : V ; + tak_V : V ; + thresh_V : V ; + write_V : V ; + +} diff --git a/src/scots/LexiconSco.gf b/src/scots/LexiconSco.gf index e6d6aee0..18650dbc 100644 --- a/src/scots/LexiconSco.gf +++ b/src/scots/LexiconSco.gf @@ -1,7 +1,7 @@ --# -path=.:prelude concrete LexiconSco of Lexicon = CatSco ** - open ParadigmsSco, Prelude in { + open ParadigmsSco, IrregSco, Prelude in { flags optimize=values ; @@ -39,7 +39,7 @@ lin brother_N2 = mkN2 (mkN masculine (mkN "brother")) (mkPrep "of") ; brown_A = regADeg "brown" ; butter_N = regN "butter" ; - buy_V2 = dirV2 (irregV "buy" "bought" "bought") ; + buy_V2 = dirV2 IrregSco.buy_V ; camera_N = regN "camera" ; cap_N = regN "cap" ; car_N = regN "car" ; @@ -67,7 +67,7 @@ lin doctor_N = mkN human (regN "doctor") ; dog_N = regN "dog" ; door_N = regN "door" ; - drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ; + drink_V2 = mkV2 IrregSco.drink_V ; easy_A2V = mkA2V (regA "easy") forP ; eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ; empty_A = regADeg "empty" ; @@ -75,7 +75,7 @@ lin factory_N = regN "factory" ; father_N2 = mkN2 (mkN masculine (mkN "father")) (mkPrep "of") ; fear_VS = mkVS (regV "fear") ; - find_V2 = dirV2 (irregV "find" "found" "found") ; + find_V2 = dirV2 IrregSco.find_V ; fish_N = mk2N "fish" "fish" ; floor_N = regN "floor" ; forget_V2 = dirV2 (irregDuplV "forget" "forgot" "forgotten") ; @@ -146,7 +146,7 @@ lin queen_N = mkN feminine (regN "queen") ; radio_N = regN "radio" ; rain_V0 = mkV0 (regV "rain") ; - read_V2 = dirV2 (irregV "read" "read" "read") ; + read_V2 = dirV2 IrregSco.read_V ; red_A = duplADeg "red" ; religion_N = regN "religion" ; restaurant_N = regN "restaurant" ; @@ -213,7 +213,7 @@ lin woman_N = mkN feminine (mk2N "woman" "women") ; wonder_VQ = mkVQ (mkV "wonder" "wondered") ; wood_N = regN "wood" ; - write_V2 = dirV2 (irregV "write" "wrote" "written") ; + write_V2 = dirV2 IrregSco.write_V ; yellow_A = mkA "yellow" ; young_A = regADeg "young" ; @@ -306,15 +306,15 @@ lin wing_N = regN "wing" ; worm_N = regN "worm" ; year_N = regN "year" ; --- blow_V = IrregEng.blow_V ; +-- blow_V = IrregSco.blow_V ; breathe_V = dirV2 (regV "breathe") ; --- burn_V = IrregEng.burn_V ; + burn_V = IrregSco.burn_V ; -- dig_V = IrregEng.dig_V ; -- fall_V = IrregEng.fall_V ; float_V = regV "float" ; flow_V = regV "flow" ; -- fly_V = IrregEng.fly_V ; --- freeze_V = IrregEng.freeze_V ; + freeze_V = IrregSco.freeze_V ; -- give_V3 = mkV3 give_V noPrep noPrep ; laugh_V = regV "laugh" ; -- lie_V = IrregEng.lie_V ; From 8e780d626368a352ff4acb237849bfe8b8049a57 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 24 Feb 2026 08:54:13 +0100 Subject: [PATCH 100/169] use mair/maist for comparison --- src/scots/AdjectiveSco.gf | 12 +++++++++++- src/scots/DocumentationSco.gf | 17 ++++++++++++++++- src/scots/NounSco.gf | 5 ++++- src/scots/ResSco.gf | 11 ++++++++++- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/scots/AdjectiveSco.gf b/src/scots/AdjectiveSco.gf index 308931f0..0283117f 100644 --- a/src/scots/AdjectiveSco.gf +++ b/src/scots/AdjectiveSco.gf @@ -1,2 +1,12 @@ -concrete AdjectiveSco of Adjective = AdjectiveEng ** { +concrete AdjectiveSco of Adjective = AdjectiveEng - [ComparA,UseComparA] ** open Prelude, ResSco in { + +lin ComparA a np = { + s = \\_ => getCompar Nom a ++ "than" ++ np.s ! npNom ; + isPre = False + } ; + UseComparA a = { + s = \\_ => getCompar Nom a ; + isPre = a.isPre + } ; + } diff --git a/src/scots/DocumentationSco.gf b/src/scots/DocumentationSco.gf index 587d67e6..6f0b1438 100644 --- a/src/scots/DocumentationSco.gf +++ b/src/scots/DocumentationSco.gf @@ -1,3 +1,18 @@ --# -path=.:../abstract:../common -concrete DocumentationSco of Documentation = DocumentationEng ** { +concrete DocumentationSco of Documentation = DocumentationEng - [InflectionA, InflectionA2] ** open ResSco, HTML in { + +lin + InflectionA, InflectionA2 = \adj -> { + t = "a" ; + s1 = heading1 "Adjective" ; + s2 = frameTable ( + tr (th "" ++ th "nom" ++ th "gen") ++ + tr (th "posit" ++ td (adj.s ! AAdj Posit Nom) ++ td (adj.s ! AAdj Posit Gen)) ++ + tr (th "compar" ++ td (getCompar Nom adj) ++ td (getCompar Gen adj)) ++ + tr (th "superl" ++ td (getSuperl Nom adj) ++ td (getSuperl Gen adj)) + ) ++ + heading1 "Adverb" ++ + paragraph (adj.s ! AAdv) + } ; + } diff --git a/src/scots/NounSco.gf b/src/scots/NounSco.gf index 30c8fc50..34555309 100644 --- a/src/scots/NounSco.gf +++ b/src/scots/NounSco.gf @@ -1,4 +1,4 @@ -concrete NounSco of Noun = NounEng - [IndefArt] ** open Prelude, ResSco in { +concrete NounSco of Noun = NounEng - [IndefArt, OrdSuperl, OrdNumeralSuperl] ** open Prelude, ResSco in { lin IndefArt = { s = \\hasCard,n => case of { @@ -13,4 +13,7 @@ lin IndefArt = { isDef = False } ; + OrdSuperl a = {s = \\c => getSuperl c a} ; + + OrdNumeralSuperl n a = {s = \\c => n.s ! True ! NOrd ! Nom ++ getSuperl c a} ; } diff --git a/src/scots/ResSco.gf b/src/scots/ResSco.gf index 7e4d8c48..be21c22a 100644 --- a/src/scots/ResSco.gf +++ b/src/scots/ResSco.gf @@ -1,6 +1,15 @@ -resource ResSco = ResEng - [auxBe,posneg] ** { +resource ResSco = ResEng - [getCompar,getSuperl,auxBe,posneg] ** { oper + getCompar : Case -> Adjective -> Str = \c,a -> case a.isMost of { + True => "mair" ++ a.s ! AAdj Posit c ; + False => a.s ! AAdj Compar c + } ; + getSuperl : Case -> Adjective -> Str = \c,a -> case a.isMost of { + True => "maist" ++ a.s ! AAdj Posit c ; + False => a.s ! AAdj Superl c + } ; + auxBe : Aux = { pres = \\b,a => case of { => "am" ; From 761597ad8c64eb6c5a3f5d9864f0ede5fb51daf2 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 3 Mar 2026 14:34:52 +0100 Subject: [PATCH 101/169] move NumeralX.inc to ParamX since it is used in many places --- src/albanian/NumeralSqi.gf | 6 ------ src/amharic/NumeralAmh.gf | 5 ----- src/ancient_greek/ResGrc.gf | 2 +- src/bulgarian/NumeralBul.gf | 6 ------ src/catalan/NumeralCat.gf | 6 ------ src/common/ParamX.gf | 6 ++++++ src/english/NumeralEng.gf | 6 ------ src/french/NumeralFre.gf | 6 ------ src/interlingua/NumeralIna.gf | 6 ------ src/italian/NumeralIta.gf | 6 ------ src/japanese/NumeralJpn.gf | 6 ------ src/japanese/ResJpn.gf | 4 +--- src/latin/CatLat.gf | 2 +- src/latin/MorphoLat.gf | 2 +- src/latin/NumeralLat.gf | 2 +- src/latin/ResLat.gf | 2 +- src/maltese/NumeralMlt.gf | 5 ----- src/persian/NumeralPes.gf | 6 ------ src/portuguese/NumeralPor.gf | 6 ------ src/rukiga/NumeralCgg.gf | 6 ------ src/russian/NumeralRus.gf | 8 +------- src/scots/NumeralSco.gf | 6 ------ src/spanish/NumeralSpa.gf | 6 ------ src/telugu/NumeralTel.gf | 6 ------ src/turkish/NumeralTur.gf | 6 ------ 25 files changed, 13 insertions(+), 115 deletions(-) diff --git a/src/albanian/NumeralSqi.gf b/src/albanian/NumeralSqi.gf index 13c06c20..20457b40 100644 --- a/src/albanian/NumeralSqi.gf +++ b/src/albanian/NumeralSqi.gf @@ -84,10 +84,4 @@ oper _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - } diff --git a/src/amharic/NumeralAmh.gf b/src/amharic/NumeralAmh.gf index 421227a2..c9c41cf2 100644 --- a/src/amharic/NumeralAmh.gf +++ b/src/amharic/NumeralAmh.gf @@ -109,11 +109,6 @@ lin pot3plus n m = { _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; ------------------ :) what a releif mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o ; diff --git a/src/ancient_greek/ResGrc.gf b/src/ancient_greek/ResGrc.gf index 5e22b3c2..11078570 100644 --- a/src/ancient_greek/ResGrc.gf +++ b/src/ancient_greek/ResGrc.gf @@ -18,7 +18,7 @@ -- Author: Hans Leiß, LMU Munich, CIS -resource ResGrc = ParamX - [Number,Sg,Pl,ImpForm,numImp,Tense,ImpF] +resource ResGrc = ParamX - [Number,Sg,Pl,ImpForm,numImp,Tense,ImpF,inc,DTail] ** open Prelude, PhonoGrc, Predef in { flags optimize = noexpand ; -- optimize=all is impossible with addAccent diff --git a/src/bulgarian/NumeralBul.gf b/src/bulgarian/NumeralBul.gf index 4a4fb4e2..20228705 100644 --- a/src/bulgarian/NumeralBul.gf +++ b/src/bulgarian/NumeralBul.gf @@ -200,12 +200,6 @@ lin pot5decimal d = { _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c (c+"ма") o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ти") ; diff --git a/src/catalan/NumeralCat.gf b/src/catalan/NumeralCat.gf index d1bc08be..5b561b0a 100644 --- a/src/catalan/NumeralCat.gf +++ b/src/catalan/NumeralCat.gf @@ -179,12 +179,6 @@ param _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - oper mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + ":o") ; diff --git a/src/common/ParamX.gf b/src/common/ParamX.gf index 20cd9eba..b99439c1 100644 --- a/src/common/ParamX.gf +++ b/src/common/ParamX.gf @@ -64,5 +64,11 @@ resource ParamX = open Prelude in { param DTail = T1 | T2 | T3 ; + oper + inc : DTail -> DTail = \t -> case t of { + T1 => T2 ; + T2 => T3 ; + T3 => T1 + } ; } diff --git a/src/english/NumeralEng.gf b/src/english/NumeralEng.gf index e71e80bd..9820faab 100644 --- a/src/english/NumeralEng.gf +++ b/src/english/NumeralEng.gf @@ -134,12 +134,6 @@ lin PosDecimal d = d ** {hasDot=False} ; _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "th") ; diff --git a/src/french/NumeralFre.gf b/src/french/NumeralFre.gf index 6ad455d3..d086af23 100644 --- a/src/french/NumeralFre.gf +++ b/src/french/NumeralFre.gf @@ -192,12 +192,6 @@ oper hyphen = BIND ++ "-" ++ BIND ; _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - oper mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ème") ; diff --git a/src/interlingua/NumeralIna.gf b/src/interlingua/NumeralIna.gf index c486598e..bfc54a67 100644 --- a/src/interlingua/NumeralIna.gf +++ b/src/interlingua/NumeralIna.gf @@ -86,12 +86,6 @@ concrete NumeralIna of Numeral = CatIna [Numeral,Digits,Decimal] ** open ResIna, _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "e") ; diff --git a/src/italian/NumeralIta.gf b/src/italian/NumeralIta.gf index db458899..ec675f80 100644 --- a/src/italian/NumeralIta.gf +++ b/src/italian/NumeralIta.gf @@ -159,12 +159,6 @@ param Pred = pred | indip ; _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - oper mkDig : Str -> TDigit = \c -> mk2Dig c Pl ; diff --git a/src/japanese/NumeralJpn.gf b/src/japanese/NumeralJpn.gf index 32c873a6..a0a8262a 100644 --- a/src/japanese/NumeralJpn.gf +++ b/src/japanese/NumeralJpn.gf @@ -224,10 +224,4 @@ flags coding = utf8 ; T3 => "," ; _ => [] } ; - - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; } diff --git a/src/japanese/ResJpn.gf b/src/japanese/ResJpn.gf index 5af987fb..b7f206f3 100644 --- a/src/japanese/ResJpn.gf +++ b/src/japanese/ResJpn.gf @@ -1,9 +1,8 @@ -resource ResJpn = open Prelude in { +resource ResJpn = ParamX [Number,Sg,Pl,DTail,T1,T2,T3,inc] ** open Prelude in { flags coding = utf8 ; param - Number = Sg | Pl ; Style = Plain | Resp ; Animateness = Anim | Inanim ; Mood = Ind | Con ; @@ -15,7 +14,6 @@ param Particle = Wa | Ga ; Anteriority = Simul | Anter ; NumeralType = EndZero | EndNotZero | SingleDigit ; - DTail = T1 | T2 | T3 ; ConjType = And | Or | Both | IfConj ; SubjType = That | If | OtherSubj ; VocType = VocPres | Please | VocAbs ; diff --git a/src/latin/CatLat.gf b/src/latin/CatLat.gf index 9c8436ea..9afb005a 100644 --- a/src/latin/CatLat.gf +++ b/src/latin/CatLat.gf @@ -1,4 +1,4 @@ -concrete CatLat of Cat = CommonX-[Adv] ** open ResLat, ParamX, Prelude in { +concrete CatLat of Cat = CommonX-[Adv] ** open ResLat, Prelude in { flags optimize=all_subs ; diff --git a/src/latin/MorphoLat.gf b/src/latin/MorphoLat.gf index d3d502a8..51579fc1 100644 --- a/src/latin/MorphoLat.gf +++ b/src/latin/MorphoLat.gf @@ -8,7 +8,7 @@ -- syntax. To build a lexicon, it is better to use $ParadigmsLat$, which -- gives a higher-level access to this module. -resource MorphoLat = ParamX, ResLat ** open Prelude, Predef in { +resource MorphoLat = ResLat ** open Prelude, Predef in { -- -- flags optimize=all ; -- diff --git a/src/latin/NumeralLat.gf b/src/latin/NumeralLat.gf index cb25237a..6c62f531 100644 --- a/src/latin/NumeralLat.gf +++ b/src/latin/NumeralLat.gf @@ -1,4 +1,4 @@ -concrete NumeralLat of Numeral = CatLat, ParamX[Number] ** open ParadigmsLat, Prelude, ResLat, Predef in { +concrete NumeralLat of Numeral = CatLat ** open ParadigmsLat, Prelude, ResLat, Predef in { lincat Digit = TDigit ; Sub10 = TNumeral ; diff --git a/src/latin/ResLat.gf b/src/latin/ResLat.gf index 67d55879..b5dcfb65 100644 --- a/src/latin/ResLat.gf +++ b/src/latin/ResLat.gf @@ -2,7 +2,7 @@ --1 Latin auxiliary operations. -resource ResLat = ParamX ** open Prelude, Predef, (C=CommonX) in { +resource ResLat = ParamX - [DTail,T1,T2,T3,inc] ** open Prelude, Predef, (C=CommonX) in { param Case = Nom | Acc | Gen | Dat | Abl | Voc ; diff --git a/src/maltese/NumeralMlt.gf b/src/maltese/NumeralMlt.gf index 313f3a4d..52dead12 100644 --- a/src/maltese/NumeralMlt.gf +++ b/src/maltese/NumeralMlt.gf @@ -388,11 +388,6 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits,Decimal] ** open Prelude T3 => BIND++","++BIND ; _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; lin -- Dig diff --git a/src/persian/NumeralPes.gf b/src/persian/NumeralPes.gf index 1305364f..1a31d9a7 100644 --- a/src/persian/NumeralPes.gf +++ b/src/persian/NumeralPes.gf @@ -105,12 +105,6 @@ lin pot3plus n m = { _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "م") ; diff --git a/src/portuguese/NumeralPor.gf b/src/portuguese/NumeralPor.gf index 91e0abd3..71e5e3f7 100644 --- a/src/portuguese/NumeralPor.gf +++ b/src/portuguese/NumeralPor.gf @@ -228,12 +228,6 @@ concrete NumeralPor of Numeral = CatPor [Numeral,Digits,Decimal] ** _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - oper mk4Dig : Str -> Str -> Str -> Number -> TDigit = \c,o,a,n -> { s = table { diff --git a/src/rukiga/NumeralCgg.gf b/src/rukiga/NumeralCgg.gf index be0e1961..20e3c3f4 100644 --- a/src/rukiga/NumeralCgg.gf +++ b/src/rukiga/NumeralCgg.gf @@ -116,12 +116,6 @@ lin pot3plus n m = let _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - }; - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c c; diff --git a/src/russian/NumeralRus.gf b/src/russian/NumeralRus.gf index 93f2bd6f..6cbf4f4c 100644 --- a/src/russian/NumeralRus.gf +++ b/src/russian/NumeralRus.gf @@ -455,12 +455,6 @@ lincat _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - oper mk3Dig : Str -> Str -> NumSize -> TDigit = \c,o,size -> mk4Dig c o Pl size ; @@ -476,4 +470,4 @@ lincat s : Str ; size : NumSize } ; -} \ No newline at end of file +} diff --git a/src/scots/NumeralSco.gf b/src/scots/NumeralSco.gf index 4e8a325a..bb78ebec 100644 --- a/src/scots/NumeralSco.gf +++ b/src/scots/NumeralSco.gf @@ -134,12 +134,6 @@ lin PosDecimal d = d ** {hasDot=False} ; _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "th") ; diff --git a/src/spanish/NumeralSpa.gf b/src/spanish/NumeralSpa.gf index fbdb1ad2..1822fcef 100644 --- a/src/spanish/NumeralSpa.gf +++ b/src/spanish/NumeralSpa.gf @@ -153,12 +153,6 @@ param _ => BIND } ; - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; - oper mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + ":o") ; diff --git a/src/telugu/NumeralTel.gf b/src/telugu/NumeralTel.gf index 21510fa6..75a40369 100644 --- a/src/telugu/NumeralTel.gf +++ b/src/telugu/NumeralTel.gf @@ -73,12 +73,6 @@ ---- _ => BIND ---- } ; ---- ----- inc : DTail -> DTail = \t -> case t of { ----- T1 => T2 ; ----- T2 => T3 ; ----- T3 => T1 ----- } ; ----- ---- mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; ---- mkDig : Str -> TDigit = \c -> mk2Dig c (c + "th") ; ---- diff --git a/src/turkish/NumeralTur.gf b/src/turkish/NumeralTur.gf index 5f833aae..b16bef6d 100644 --- a/src/turkish/NumeralTur.gf +++ b/src/turkish/NumeralTur.gf @@ -92,10 +92,4 @@ oper T3 => BIND++","++BIND ; _ => BIND } ; - - inc : DTail -> DTail = \t -> case t of { - T1 => T2 ; - T2 => T3 ; - T3 => T1 - } ; } From 53571672e3b637a263c5e42faa484b0ea44a7951 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 3 Mar 2026 14:59:07 +0100 Subject: [PATCH 102/169] started numerals in Macedonian --- src/macedonian/CatMkd.gf | 2 ++ src/macedonian/GrammarMkd.gf | 1 + src/macedonian/NumeralMkd.gf | 58 ++++++++++++++++++++++++++++++++++++ src/macedonian/ResMkd.gf | 2 +- 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/macedonian/NumeralMkd.gf diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 79b81116..7c902195 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -11,6 +11,8 @@ lincat A = Adj ; lincat A2 = Adj ** {c2 : Compl} ; lincat Pron = Pron ; lincat Prep = Compl ; +lincat Decimal = {s : Str; n : Number; hasDot : Bool} ; +lincat Digits = {s : Str; n : Number; tail : DTail} ; linref N,N2,N3 = \n -> n.s ! Indef ! Sg ; linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 204a2130..d6fdcad6 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,4 +1,5 @@ concrete GrammarMkd of Grammar = + NumeralMkd, PhraseMkd, TextX, StructuralMkd, diff --git a/src/macedonian/NumeralMkd.gf b/src/macedonian/NumeralMkd.gf new file mode 100644 index 00000000..7f5b034c --- /dev/null +++ b/src/macedonian/NumeralMkd.gf @@ -0,0 +1,58 @@ +concrete NumeralMkd of Numeral = CatMkd [Numeral,Digits,Decimal] ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin D_0 = mkDig "0" Pl ; + lin D_1 = mkDig "1" Sg ; + lin D_2 = mkDig "2" Pl ; + lin D_3 = mkDig "3" Pl ; + lin D_4 = mkDig "4" Pl ; + lin D_5 = mkDig "5" Pl ; + lin D_6 = mkDig "6" Pl ; + lin D_7 = mkDig "7" Pl ; + lin D_8 = mkDig "8" Pl ; + lin D_9 = mkDig "9" Pl ; + lincat Dig = {s : Str; n : Number} ; + lincat Digit = {s : Str; teen : Str; ten : Str; hundred : Str} ; + lin IDig d = d ** {tail = T1} ; + lin IFrac ds d = {s = case ds.hasDot of { + True => ds.s; + False => ds.s ++ BIND ++ "," + } ++ BIND ++ d.s; + n = Pl; hasDot = True} ; + lin IIDig d ds = {s = d.s + ++ case ds.tail of { + T3 => BIND ++ "." ++ BIND; + _ => BIND + } ++ ds.s; + n = Pl; tail = inc ds.tail} ; + lin NegDecimal ds = {s = "-" ++ BIND ++ ds.s; n = Pl; + hasDot = False} ; + lin PosDecimal ds = ds ** {hasDot = False} ; + lincat Sub10 = {s : Str; hundred : Str; n : Number} ; + lincat Sub100 = {s : Str; n : Number} ; + oper mkDig : Str -> Number -> {s : Str; n : Number} + = \s,n -> {s = s; n = n} ; + oper mkDigit : Str -> Str -> Str -> Str -> {s : Str; teen : Str; + ten : Str; hundred : Str} + = \s,teen,ten,hundred -> {s = s; teen = teen; ten = ten; + hundred = hundred} ; + lin n2 = mkDigit "два" "дванаесет" "дваесет" "двесто" ; + lin n3 = mkDigit "три" "тринаесет" "триесет" "тристо" ; + lin n4 = mkDigit "четири" "четиринаесет" "четириесет" "четиристо" ; + lin n5 = mkDigit "пет" "петнаесет" "педесет" "петсто" ; + lin n6 = mkDigit "шест" "шеснаесет" "шеесет" "шестсто" ; + lin n7 = mkDigit "седум" "седумнаесет" "седумдесет" "седумсто" ; + lin n8 = mkDigit "осум" "осумнаесет" "осумдесет" "осумсто" ; + lin n9 = mkDigit "девет" "деветнаесет" "деведесет" "деветсто" ; + lin pot0 n = {s = n.s; hundred = n.hundred; n = Pl} ; + lin pot01 = {s = "еден"; hundred = "еднасто"; n = Sg} ; + lin pot0as1 n = n ; + lin pot1 n = {s = n.ten; n = Pl} ; + lin pot110 = {s = "десет"; n = Pl} ; + lin pot111 = {s = "единаесет"; n = Pl} ; + lin pot1as2 n = n ; + lin pot2 n = {s = n.hundred} ; + lin pot2as3 n = n ; + lin pot3as4 n = n ; + lin pot4as5 n = n ; +} \ No newline at end of file diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 7a965e3b..cbe0828d 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -1,4 +1,4 @@ -resource ResMkd = open Prelude in { +resource ResMkd = ParamX [DTail,T1,T2,T3,inc] ** open Prelude in { oper Compl = {s : Str} ; From bd41b3ccb7ab692ce6e553a517e031bf1f571a49 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 6 Mar 2026 13:37:22 +0100 Subject: [PATCH 103/169] Imperative -> imperative --- src/macedonian/DocumentationMkd.gf | 4 +- src/macedonian/MorphoMkd.gf | 196 ++++++++++++++--------------- src/macedonian/ParadigmsMkd.gf | 6 +- src/macedonian/ResMkd.gf | 4 +- 4 files changed, 105 insertions(+), 105 deletions(-) diff --git a/src/macedonian/DocumentationMkd.gf b/src/macedonian/DocumentationMkd.gf index b08f0f81..da47298c 100644 --- a/src/macedonian/DocumentationMkd.gf +++ b/src/macedonian/DocumentationMkd.gf @@ -117,7 +117,7 @@ lin heading4 ("Минато несвршено време (имперфект)") ++ finite (v.imperfect ! Imperfective) ++ heading3 ("Повелително наклонение") ++ - imperative (v.Imperative ! Imperfective) ++ + imperative (v.imperative ! Imperfective) ++ heading3 ("Партицип") ++ adjForms (v.participle.aorist ! Imperfective) ++ tag "br" ++ @@ -131,7 +131,7 @@ lin heading4 ("Минато несвршено време (имперфект)") ++ finite (v.imperfect ! Perfective) ++ heading3 ("Повелително наклонение") ++ - imperative (v.Imperative ! Perfective) ++ + imperative (v.imperative ! Perfective) ++ heading3 ("Партицип") ++ adjForms (v.participle.aorist ! Perfective) ++ heading1 ("Именка") ++ diff --git a/src/macedonian/MorphoMkd.gf b/src/macedonian/MorphoMkd.gf index d6f1ae6f..59fab7a0 100644 --- a/src/macedonian/MorphoMkd.gf +++ b/src/macedonian/MorphoMkd.gf @@ -6852,7 +6852,7 @@ mkV001 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -6919,7 +6919,7 @@ mkV002 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -6987,7 +6987,7 @@ mkV003 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7057,7 +7057,7 @@ mkV004 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7127,7 +7127,7 @@ mkV005 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7197,7 +7197,7 @@ mkV006 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7267,7 +7267,7 @@ mkV007 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7337,7 +7337,7 @@ mkV008 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; --guessed Pl => base_1+"ете" --guessed @@ -7406,7 +7406,7 @@ mkV009 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -7474,7 +7474,7 @@ mkV010 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7544,7 +7544,7 @@ mkV011 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -7614,7 +7614,7 @@ mkV012 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -7683,7 +7683,7 @@ mkV013 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -7751,7 +7751,7 @@ mkV014 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7821,7 +7821,7 @@ mkV015 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -7891,7 +7891,7 @@ mkV016 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -7960,7 +7960,7 @@ mkV017 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -8028,7 +8028,7 @@ mkV018 base = P3 => base_1+"деа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -8098,7 +8098,7 @@ mkV019 base = P3 => base_1+"зеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"зи" ; Pl => base_1+"зете" @@ -8168,7 +8168,7 @@ mkV020 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -8238,7 +8238,7 @@ mkV021 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -8308,7 +8308,7 @@ mkV022 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -8378,7 +8378,7 @@ mkV023 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -8448,7 +8448,7 @@ mkV024 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -8518,7 +8518,7 @@ mkV025 base = P3 => base_1+"сеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"си" ; Pl => base_1+"сете" @@ -8588,7 +8588,7 @@ mkV026 base = P3 => base_1+"деа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ди" ; Pl => base_1+"дете" @@ -8658,7 +8658,7 @@ mkV027 base = P3 => base_1+"теа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ти" ; Pl => base_1+"тете" @@ -8728,7 +8728,7 @@ mkV028 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -8798,7 +8798,7 @@ mkV029 base = P3 => base_1+"чеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"чи" ; Pl => base_1+"чете" @@ -8868,7 +8868,7 @@ mkV030 base = P3 => base_1+"чееа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"чеи" ; Pl => base_1+"чеете" @@ -8938,7 +8938,7 @@ mkV031 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -9008,7 +9008,7 @@ mkV032 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -9078,7 +9078,7 @@ mkV033 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -9148,7 +9148,7 @@ mkV034 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -9218,7 +9218,7 @@ mkV035 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -9288,7 +9288,7 @@ mkV036 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -9358,7 +9358,7 @@ mkV037 base = P3 => base_1+"е"+base_2+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"е"+base_2+"и" ; Pl => base_1+"е"+base_2+"ете" @@ -9428,7 +9428,7 @@ mkV038 base = P3 => base_1+"зеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"зи" ; Pl => base_1+"зете" @@ -9498,7 +9498,7 @@ mkV039 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -9568,7 +9568,7 @@ mkV040 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -9638,7 +9638,7 @@ mkV041 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -9708,7 +9708,7 @@ mkV042 base = P3 => base_1+"о"+base_2+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"о"+base_2+"и" ; Pl => base_1+"о"+base_2+"ете" @@ -9778,7 +9778,7 @@ mkV043 base = P3 => base_1+"еја" --guessed } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; --guessed Pl => base_1+"јте" --guessed @@ -9847,7 +9847,7 @@ mkV044 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -9915,7 +9915,7 @@ mkV045 base = P3 => base_1+"деа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ди" ; Pl => base_1+"дете" @@ -9985,7 +9985,7 @@ mkV046 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -10055,7 +10055,7 @@ mkV047 base = P3 => base_1+"еа" --guessed } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" --guessed @@ -10125,7 +10125,7 @@ mkV048 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -10195,7 +10195,7 @@ mkV049 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -10265,7 +10265,7 @@ mkV050 base = P3 => base_1+base_2+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+base_2+"ј" ; Pl => base_1+base_2+"јте" @@ -10334,7 +10334,7 @@ mkV051 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -10402,7 +10402,7 @@ mkV052 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -10472,7 +10472,7 @@ mkV053 base = P3 => base_1+"еа" --guessed } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; --guessed Pl => base_1+"ете" --guessed @@ -10542,7 +10542,7 @@ mkV054 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -10611,7 +10611,7 @@ mkV055 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -10679,7 +10679,7 @@ mkV056 base = P3 => base_1+"јдеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"јди" ; Pl => base_1+"јдете" @@ -10749,7 +10749,7 @@ mkV057 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -10819,7 +10819,7 @@ mkV058 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -10889,7 +10889,7 @@ mkV059 base = P3 => base_1+"меа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ми" ; Pl => base_1+"мете" @@ -10959,7 +10959,7 @@ mkV060 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -11029,7 +11029,7 @@ mkV061 base = P3 => base_1+"еја" --guessed } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; --guessed Pl => base_1+"јте" --guessed @@ -11099,7 +11099,7 @@ mkV062 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -11169,7 +11169,7 @@ mkV063 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -11239,7 +11239,7 @@ mkV064 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -11309,7 +11309,7 @@ mkV065 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -11379,7 +11379,7 @@ mkV066 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -11449,7 +11449,7 @@ mkV067 base = P3 => base_1+"те"+base_2+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"те"+base_2+"и" ; Pl => base_1+"те"+base_2+"ете" @@ -11519,7 +11519,7 @@ mkV068 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -11589,7 +11589,7 @@ mkV069 base = P3 => base_1+"јдеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"јди" ; Pl => base_1+"јдете" @@ -11659,7 +11659,7 @@ mkV070 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -11729,7 +11729,7 @@ mkV071 base = P3 => base_1+"чеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"чи" ; Pl => base_1+"чете" @@ -11799,7 +11799,7 @@ mkV072 base = P3 => base_1+"чеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"чи" ; Pl => base_1+"чете" @@ -11869,7 +11869,7 @@ mkV073 base = P3 => base_1+"иеја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"иј" ; Pl => base_1+"ијте" @@ -11939,7 +11939,7 @@ mkV074 base = P3 => base_1+"иеја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"иј" ; Pl => base_1+"ијте" @@ -12009,7 +12009,7 @@ mkV075 base = P3 => nonExist } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => nonExist @@ -12079,7 +12079,7 @@ mkV076 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -12149,7 +12149,7 @@ mkV077 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -12219,7 +12219,7 @@ mkV078 base = P3 => base_1+"иеја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"иј" ; Pl => base_1+"ијте" @@ -12289,7 +12289,7 @@ mkV079 base = P3 => base_1+base_2+"леа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+base_2+"ли" ; Pl => base_1+base_2+"лете" @@ -12359,7 +12359,7 @@ mkV080 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -12429,7 +12429,7 @@ mkV081 base = P3 => nonExist } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => nonExist @@ -12499,7 +12499,7 @@ mkV082 base = P3 => base_1+"жеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"жи" ; Pl => base_1+"жете" @@ -12569,7 +12569,7 @@ mkV083 base = P3 => base_1+"еја" --guessed } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; --guessed Pl => base_1+"јте" --guessed @@ -12639,7 +12639,7 @@ mkV084 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -12709,7 +12709,7 @@ mkV085 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -12779,7 +12779,7 @@ mkV086 base = P3 => base_1+"жеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"жи" ; Pl => base_1+"жете" @@ -12849,7 +12849,7 @@ mkV087 base = P3 => base_1+"деа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ди" ; Pl => base_1+"дете" @@ -12919,7 +12919,7 @@ mkV088 base = P3 => base_1+"чеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"чи" ; Pl => base_1+"чете" @@ -12989,7 +12989,7 @@ mkV089 base = P3 => base_1+base_2+"фи"+base_3+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+base_2+"фи"+base_3+"ј" ; Pl => base_1+base_2+"фи"+base_3+"јте" @@ -13058,7 +13058,7 @@ mkV090 base_1 = P3 => base_1+"а" --guessed } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => nonExist @@ -13125,7 +13125,7 @@ mkV091 base_1 = P3 => base_1+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => nonExist @@ -13193,7 +13193,7 @@ mkV092 base = P3 => base_1+"теа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ти" ; Pl => base_1+"тете" @@ -13263,7 +13263,7 @@ mkV093 base = P3 => "и"+base_1+"теа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => "и"+base_1+"ти" ; Pl => "и"+base_1+"тете" @@ -13333,7 +13333,7 @@ mkV094 base = P3 => base_1+"еа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и" ; Pl => base_1+"ете" @@ -13403,7 +13403,7 @@ mkV097 base = P3 => base_1+"жеа" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"жи" ; Pl => base_1+"жете" @@ -13473,7 +13473,7 @@ mkV098 base = P3 => base_1+"и"+base_2+"а" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"и"+base_2+"ј" ; Pl => base_1+"и"+base_2+"јте" @@ -13543,7 +13543,7 @@ mkV099 base = P3 => base_1+"еја" } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => base_1+"јте" @@ -13612,7 +13612,7 @@ mkV101 base_1 = P3 => nonExist } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => base_1+"ј" ; Pl => nonExist diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index 053a84bf..dd54e077 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1063,9 +1063,9 @@ dualV : V -> V -> V = \impf,perf -> lin V Imperfective => impf.imperfect ! Imperfective ; Perfective => perf.imperfect ! Perfective } ; - Imperative = table { - Imperfective => impf.Imperative ! Imperfective ; - Perfective => perf.Imperative ! Perfective + imperative = table { + Imperfective => impf.imperative ! Imperfective ; + Perfective => perf.imperative ! Perfective } ; participle = { aorist = table { Imperfective => impf.participle.aorist ! Imperfective ; diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index cbe0828d..cce2ad05 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -42,7 +42,7 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun = param Aspect = Imperfective | Perfective ; param Person = P1 | P3 | P2 ; param GenNum = GSg Gender | GPl ; -oper Verb = {present: Aspect => Number => Person => Str; aorist: Number => Person => Str; imperfect: Aspect => Number => Person => Str; Imperative: Aspect => Number => Str; participle: {aorist: Aspect => GenNum => Str; imperfect: GenNum => Str; perfect: Aspect => Str; adjectival: Aspect => Str; adverbial: Str}; noun_from_verb: Str; isRefl: Bool} ; -- 8174 +oper Verb = {present: Aspect => Number => Person => Str; aorist: Number => Person => Str; imperfect: Aspect => Number => Person => Str; imperative: Aspect => Number => Str; participle: {aorist: Aspect => GenNum => Str; imperfect: GenNum => Str; perfect: Aspect => Str; adjectival: Aspect => Str; adverbial: Str}; noun_from_verb: Str; isRefl: Bool} ; -- 8174 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32 -> { present = \\_ => @@ -83,7 +83,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : P3 => f18 } } ; - Imperative = \\_ => + imperative = \\_ => table { Sg => f19 ; Pl => f20 From 62c5030be182fdb1289dd472a28027fc5718dcde Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 6 Mar 2026 14:30:29 +0100 Subject: [PATCH 104/169] fix compilation --- src/macedonian/NumeralMkd.gf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/macedonian/NumeralMkd.gf b/src/macedonian/NumeralMkd.gf index 7f5b034c..e8056a9a 100644 --- a/src/macedonian/NumeralMkd.gf +++ b/src/macedonian/NumeralMkd.gf @@ -1,6 +1,5 @@ concrete NumeralMkd of Numeral = CatMkd [Numeral,Digits,Decimal] ** open Prelude,ResMkd in { - flags - coding = "UTF-8" ; + lin D_0 = mkDig "0" Pl ; lin D_1 = mkDig "1" Sg ; lin D_2 = mkDig "2" Pl ; @@ -55,4 +54,4 @@ concrete NumeralMkd of Numeral = CatMkd [Numeral,Digits,Decimal] ** open Prelude lin pot2as3 n = n ; lin pot3as4 n = n ; lin pot4as5 n = n ; -} \ No newline at end of file +} From 0cd3450e080dc3427a2c15208b37f32f7b949203 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 13 Mar 2026 10:58:41 +0100 Subject: [PATCH 105/169] update the paradigms --- src/macedonian/LexiconMkd.gf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/macedonian/LexiconMkd.gf b/src/macedonian/LexiconMkd.gf index a2a78a8d..eaf015a4 100644 --- a/src/macedonian/LexiconMkd.gf +++ b/src/macedonian/LexiconMkd.gf @@ -3,9 +3,9 @@ concrete LexiconMkd of Lexicon = CatMkd ** lin airplane_N = mkN001 "авион" ; - apple_N = mkN013 "јаболко" ; + apple_N = mkN012 "јаболко" ; bad_A = mkA004 "лош" ; - good_A = mkA005 "добар" ; - die_V = mkV001 "умира" ; + good_A = mkA021 "добар" ; + die_V = dualV (mkV002 "умира") (mkV021 "умре") ; } From ce2f785f9264570f10635cd170b3d27efc8f3280 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 19 Mar 2026 15:25:04 +0100 Subject: [PATCH 106/169] autogenerate parts of the syntax --- src/macedonian/AdjectiveMkd.gf | 5 ++++ src/macedonian/CatMkd.gf | 23 +++++++++++++++++ src/macedonian/GrammarMkd.gf | 12 +++------ src/macedonian/NounMkd.gf | 46 ++++++++++++++++++++++++++++++++++ src/macedonian/SentenceMkd.gf | 12 +++++++++ src/macedonian/VerbMkd.gf | 12 +++++++++ 6 files changed, 102 insertions(+), 8 deletions(-) create mode 100644 src/macedonian/AdjectiveMkd.gf create mode 100644 src/macedonian/NounMkd.gf create mode 100644 src/macedonian/SentenceMkd.gf create mode 100644 src/macedonian/VerbMkd.gf diff --git a/src/macedonian/AdjectiveMkd.gf b/src/macedonian/AdjectiveMkd.gf new file mode 100644 index 00000000..c500d9ad --- /dev/null +++ b/src/macedonian/AdjectiveMkd.gf @@ -0,0 +1,5 @@ +concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin PositA a = a ** {isPre = True} ; +} \ No newline at end of file diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 7c902195..90ef43bb 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -23,4 +23,27 @@ linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = } ; linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; +lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; +lincat NP = {s : Str; vocative: Str; n : Number; p : Person; g : Gender} ; +lincat Num = {s : Str; n : Number} ; +lincat Quant = {s : Str; sp : Species} ; +lincat Det = {s : Str; n : Number; sp : Species} ; + +lincat VP = {present : Aspect => Number => Person => Str; + aorist : Number => Person => Str; + imperfect : Aspect => Number => Person => Str; + imperative : Aspect => Number => Str; + participle : {aorist : Aspect => GenNum => Str; perfect : Aspect => Str}} ; +lincat VPSlash = {present : Aspect => Number => Person => Str; + aorist : Number => Person => Str; + imperfect : Aspect => Number => Person => Str; + imperative : Aspect => Number => Str; + participle : {aorist : Aspect => GenNum => Str; + imperfect : GenNum => Str; perfect : Aspect => Str; + adjectival : Aspect => Str; adverbial : Str}; + noun_from_verb : Str; isRefl : Bool; c2 : Compl} ; +lincat Cl = {present : Aspect => Str; + aorist : Str; + participle : {aorist : Aspect => Str; perfect : Aspect => Str}} ; + } diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index d6fdcad6..24bb3ef6 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,8 +1,4 @@ -concrete GrammarMkd of Grammar = - NumeralMkd, - PhraseMkd, - TextX, - StructuralMkd, - TenseX ** { - -} ; +concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,TextX,StructuralMkd,TenseX ** { + flags + coding = "UTF-8" ; +} \ No newline at end of file diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf new file mode 100644 index 00000000..af78a48b --- /dev/null +++ b/src/macedonian/NounMkd.gf @@ -0,0 +1,46 @@ +concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin AdjCN ap cn = { + s = case ap.isPre of { + True => \\s,n => ap.s ! s + ! case n of { + Sg => GSg cn.g; + Pl => GPl + } ++ + cn.s ! Indef ! n; + False => \\s,n => cn.s ! s ! n ++ + ap.s ! Indef + ! case n of { + Sg => GSg cn.g; + Pl => GPl + } + }; + vocative = \\n => ap.s ! Indef + ! case n of { + Sg => GSg cn.g; + Pl => GPl + } ++ + cn.vocative ! n; + count_form = ap.s ! Indef ! GPl ++ cn.count_form; g = cn.g} ; + lin AdvCN cn adv = { + s = \\s,n => cn.s ! s ! n ++ adv.s; + count_form = cn.count_form ++ adv.s; + vocative = \\n => cn.vocative ! n ++ adv.s; + g = cn.g + } ; + lin DefArt = {s = []; sp = Def Unspecified} ; + lin DetCN det cn = { + s = det.s ++ cn.s ! det.sp ! det.n; + vocative = det.s ++ cn.vocative ! det.n; + n = det.n; + p = P3; + g = cn.g + } ; + lin DetQuant det num = {s = det.s ++ num.s; n = num.n; + sp = det.sp} ; + lin IndefArt = {s = []; sp = Indef} ; + lin NumPl = {s = []; n = Pl} ; + lin NumSg = {s = []; n = Sg} ; + lin UseN s = s ; +} diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf new file mode 100644 index 00000000..ddd13e06 --- /dev/null +++ b/src/macedonian/SentenceMkd.gf @@ -0,0 +1,12 @@ +concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin PredVP np vp = {present = \\a => np.s ++ vp.present ! a ! np.n ! np.p ; + aorist = np.s ++ vp.aorist ! np.n ! np.p ; + participle = {aorist = \\a => np.s ++ vp.participle.aorist ! a ! + case np.n of { + Sg => GSg np.g; + Pl => GPl + }; + perfect = \\a => np.s ++ vp.participle.perfect ! a}} ; +} diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf new file mode 100644 index 00000000..90a82b84 --- /dev/null +++ b/src/macedonian/VerbMkd.gf @@ -0,0 +1,12 @@ +concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin ComplSlash vps np = {present = \\a,n,p => vps.present ! a ! n + ! p + ++ np.s; + aorist = \\n,p => vps.aorist ! n ! p ++ np.s; + imperfect = \\a,n,p => vps.imperfect ! a ! n ! p ++ np.s; + imperative = \\a,n => vps.imperative ! a ! n ++ np.s; + participle = {aorist = \\a,gn => vps.participle.aorist ! a ! gn ++ np.s; + perfect = \\a => vps.participle.perfect ! a ++ np.s}} ; +} From 76cbf0b75b231df7ebca492a18cba1ea3f945b6d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 19 Mar 2026 15:27:53 +0100 Subject: [PATCH 107/169] remove the utf-8 flags --- src/macedonian/AdjectiveMkd.gf | 5 ++--- src/macedonian/GrammarMkd.gf | 4 +--- src/macedonian/NounMkd.gf | 2 -- src/macedonian/SentenceMkd.gf | 3 +-- src/macedonian/VerbMkd.gf | 3 +-- 5 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/macedonian/AdjectiveMkd.gf b/src/macedonian/AdjectiveMkd.gf index c500d9ad..681d21b0 100644 --- a/src/macedonian/AdjectiveMkd.gf +++ b/src/macedonian/AdjectiveMkd.gf @@ -1,5 +1,4 @@ concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in { - flags - coding = "UTF-8" ; + lin PositA a = a ** {isPre = True} ; -} \ No newline at end of file +} diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 24bb3ef6..799812e4 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,4 +1,2 @@ concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,TextX,StructuralMkd,TenseX ** { - flags - coding = "UTF-8" ; -} \ No newline at end of file +} diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index af78a48b..6031dfcb 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -1,6 +1,4 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { - flags - coding = "UTF-8" ; lin AdjCN ap cn = { s = case ap.isPre of { True => \\s,n => ap.s ! s diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index ddd13e06..ab5134f0 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -1,6 +1,5 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { - flags - coding = "UTF-8" ; + lin PredVP np vp = {present = \\a => np.s ++ vp.present ! a ! np.n ! np.p ; aorist = np.s ++ vp.aorist ! np.n ! np.p ; participle = {aorist = \\a => np.s ++ vp.participle.aorist ! a ! diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index 90a82b84..e1d08c96 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -1,6 +1,5 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { - flags - coding = "UTF-8" ; + lin ComplSlash vps np = {present = \\a,n,p => vps.present ! a ! n ! p ++ np.s; From cc1168634b7f25d5980ad1d1f6bd7831c6130bab Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 19 Mar 2026 15:34:57 +0100 Subject: [PATCH 108/169] added VocNP --- src/macedonian/PhraseMkd.gf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/macedonian/PhraseMkd.gf b/src/macedonian/PhraseMkd.gf index f77c4b05..5a2fa023 100644 --- a/src/macedonian/PhraseMkd.gf +++ b/src/macedonian/PhraseMkd.gf @@ -9,5 +9,6 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in { NoPConj = {s = []} ; NoVoc = {s = []} ; + VocNP np = {s = SOFT_BIND++"," ++ np.vocative} ; } From e8005bf0711fab11a35c21f891d398f090fef003 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 19 Mar 2026 17:20:10 +0100 Subject: [PATCH 109/169] added SlashV2a --- src/macedonian/VerbMkd.gf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index e1d08c96..de97758e 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -8,4 +8,6 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { imperative = \\a,n => vps.imperative ! a ! n ++ np.s; participle = {aorist = \\a,gn => vps.participle.aorist ! a ! gn ++ np.s; perfect = \\a => vps.participle.perfect ! a ++ np.s}} ; + lin SlashV2a v = v ; + } From eeca67e787cba73c736fad1f82eee3317c161ed9 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 19 Mar 2026 17:45:00 +0100 Subject: [PATCH 110/169] add AdverbMkd --- src/macedonian/GrammarMkd.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 799812e4..3975b064 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,2 +1,2 @@ -concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,TextX,StructuralMkd,TenseX ** { +concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdverbMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,TextX,StructuralMkd,TenseX ** { } From c8a4c28a51abffdbc643eff12503e91880675c0e Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 19 Mar 2026 17:48:52 +0100 Subject: [PATCH 111/169] added AdverbMkd --- src/macedonian/AdverbMkd.gf | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/macedonian/AdverbMkd.gf diff --git a/src/macedonian/AdverbMkd.gf b/src/macedonian/AdverbMkd.gf new file mode 100644 index 00000000..d1afe24d --- /dev/null +++ b/src/macedonian/AdverbMkd.gf @@ -0,0 +1,5 @@ +concrete AdverbMkd of Adverb = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin PrepNP p np = {s = p.s ++ np.s} ; +} \ No newline at end of file From 9d18d316c55431b462bf44b8d1dd60fd2e0c698b Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 19 Mar 2026 17:49:58 +0100 Subject: [PATCH 112/169] remove the flags --- src/macedonian/AdverbMkd.gf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/macedonian/AdverbMkd.gf b/src/macedonian/AdverbMkd.gf index d1afe24d..6c7d5c67 100644 --- a/src/macedonian/AdverbMkd.gf +++ b/src/macedonian/AdverbMkd.gf @@ -1,5 +1,3 @@ concrete AdverbMkd of Adverb = CatMkd ** open Prelude,ResMkd in { - flags - coding = "UTF-8" ; lin PrepNP p np = {s = p.s ++ np.s} ; -} \ No newline at end of file +} From 1d7b717866157319a8ffd2d2579c9dccf576ef24 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 20 Mar 2026 08:04:26 +0100 Subject: [PATCH 113/169] added inherent parameters for pronouns --- src/macedonian/MorphoMkd.gf | 8 +++++--- src/macedonian/ResMkd.gf | 2 +- src/macedonian/StructuralMkd.gf | 20 ++++++++++---------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/macedonian/MorphoMkd.gf b/src/macedonian/MorphoMkd.gf index 59fab7a0..c1bb9b81 100644 --- a/src/macedonian/MorphoMkd.gf +++ b/src/macedonian/MorphoMkd.gf @@ -15376,8 +15376,8 @@ mkAdv base_1 = { s = base_1 } ; -mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Pron = - \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15 -> +mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> GenNum -> Person -> Pron = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,g,p -> { s = table { RSubj => f1 ; RObj Acc => f2 ; @@ -15404,7 +15404,9 @@ mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Pron = GPl => f14 } } ; - poss_clitic = f15 + poss_clitic = f15 ; + g = g ; + p = p ; } ; } diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index cce2ad05..797e57ef 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -153,7 +153,7 @@ oper mkAdv : Str -> Adv = param Case = Acc | Dat ; param Role = RSubj | RObj Case | RPrep ; -oper Pron = {s : Role => Str; clitic : Case => Str} ; +oper Pron = {s : Role => Str; clitic : Case => Str; g : GenNum; p : Person} ; genNum : Gender -> Number -> GenNum = \g,n -> case n of { diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf index a51c1498..0db5d8da 100644 --- a/src/macedonian/StructuralMkd.gf +++ b/src/macedonian/StructuralMkd.gf @@ -1,13 +1,13 @@ -concrete StructuralMkd of Structural = CatMkd ** open MorphoMkd in { +concrete StructuralMkd of Structural = CatMkd ** open ResMkd,MorphoMkd in { -lin i_Pron = mkPron "јас" "мене" "ме" "мене" "ми" "мене" "мој" "мојот" "моја" "мојата" "мое" "моето" "мои" "моите" "ми" ; -lin youSg_Pron = mkPron "ти" "тебе" "те" "тебе" "ти" "тебе" "твој" "твојот" "твоја" "твојата" "твое" "твоето" "твои" "твоите" "ти" ; -lin he_Pron = mkPron "тој" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" ; -lin she_Pron = mkPron "таа" "неа" "ја" "нејзе" "ѝ" "неа" "нејзин" "нејзиниот" "нејзина" "нејзината" "нејзино" "нејзиното" "нејзини" "нејзините" "ѝ" ; -lin it_Pron = mkPron "тоа" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" ; -lin we_Pron = mkPron "ние" "нас" "нѐ" "нам" "ни" "нас" "наш" "нашиот" "наша" "нашата" "наше" "нашето" "наши" "нашите" "ни" ; -lin youPl_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" ; -lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" ; -lin they_Pron = mkPron "тие" "нив" "ги" "ним" "им" "нив" "нивен" "нивниот" "нивна" "нивната" "нивно" "нивното" "нивни" "нивните" "им" ; +lin i_Pron = mkPron "јас" "мене" "ме" "мене" "ми" "мене" "мој" "мојот" "моја" "мојата" "мое" "моето" "мои" "моите" "ми" (GSg Masc) P1 ; +lin youSg_Pron = mkPron "ти" "тебе" "те" "тебе" "ти" "тебе" "твој" "твојот" "твоја" "твојата" "твое" "твоето" "твои" "твоите" "ти" (GSg Masc) P2 ; +lin he_Pron = mkPron "тој" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" (GSg Masc) P3 ; +lin she_Pron = mkPron "таа" "неа" "ја" "нејзе" "ѝ" "неа" "нејзин" "нејзиниот" "нејзина" "нејзината" "нејзино" "нејзиното" "нејзини" "нејзините" "ѝ" (GSg Masc) P3 ; +lin it_Pron = mkPron "тоа" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" (GSg Masc) P3 ; +lin we_Pron = mkPron "ние" "нас" "нѐ" "нам" "ни" "нас" "наш" "нашиот" "наша" "нашата" "наше" "нашето" "наши" "нашите" "ни" GPl P1 ; +lin youPl_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" GPl P2 ; +lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" (GSg Masc) P2 ; +lin they_Pron = mkPron "тие" "нив" "ги" "ним" "им" "нив" "нивен" "нивниот" "нивна" "нивната" "нивно" "нивното" "нивни" "нивните" "им" GPl P3 ; } From 928889b2aa45bd6e0d6de00a8e2cb803efda57d6 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 20 Mar 2026 08:14:10 +0100 Subject: [PATCH 114/169] change NP to contain GenNum instead of Number and Gender --- src/macedonian/CatMkd.gf | 2 +- src/macedonian/NounMkd.gf | 6 ++++-- src/macedonian/SentenceMkd.gf | 18 ++++++++++-------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 90ef43bb..cc72201a 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -24,7 +24,7 @@ linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; -lincat NP = {s : Str; vocative: Str; n : Number; p : Person; g : Gender} ; +lincat NP = {s : Str; vocative: Str; g : GenNum; p : Person} ; lincat Num = {s : Str; n : Number} ; lincat Quant = {s : Str; sp : Species} ; lincat Det = {s : Str; n : Number; sp : Species} ; diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index 6031dfcb..649f719c 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -31,9 +31,11 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { lin DetCN det cn = { s = det.s ++ cn.s ! det.sp ! det.n; vocative = det.s ++ cn.vocative ! det.n; - n = det.n; + g = case det.n of { + Sg => GSg cn.g; + Pl => GPl + } ; p = P3; - g = cn.g } ; lin DetQuant det num = {s = det.s ++ num.s; n = num.n; sp = det.sp} ; diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index ab5134f0..4a6abca4 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -1,11 +1,13 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { - lin PredVP np vp = {present = \\a => np.s ++ vp.present ! a ! np.n ! np.p ; - aorist = np.s ++ vp.aorist ! np.n ! np.p ; - participle = {aorist = \\a => np.s ++ vp.participle.aorist ! a ! - case np.n of { - Sg => GSg np.g; - Pl => GPl - }; - perfect = \\a => np.s ++ vp.participle.perfect ! a}} ; + lin PredVP np vp = + let n = case np.g of { + GSg _ => Sg ; + GPl => Pl + } + in {present = \\a => np.s ++ vp.present ! a ! n ! np.p ; + aorist = np.s ++ vp.aorist ! n ! np.p ; + participle = {aorist = \\a => np.s ++ vp.participle.aorist ! a ! np.g; + perfect = \\a => np.s ++ vp.participle.perfect ! a}} ; + } From 74848d304ecda6ba07c345554bd08e4e00ee1fb1 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 20 Mar 2026 08:27:46 +0100 Subject: [PATCH 115/169] implement UsePron --- src/macedonian/AdverbMkd.gf | 2 +- src/macedonian/CatMkd.gf | 2 +- src/macedonian/NounMkd.gf | 3 ++- src/macedonian/SentenceMkd.gf | 8 ++++---- src/macedonian/VerbMkd.gf | 12 ++++++------ 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/macedonian/AdverbMkd.gf b/src/macedonian/AdverbMkd.gf index 6c7d5c67..847c703a 100644 --- a/src/macedonian/AdverbMkd.gf +++ b/src/macedonian/AdverbMkd.gf @@ -1,3 +1,3 @@ concrete AdverbMkd of Adverb = CatMkd ** open Prelude,ResMkd in { - lin PrepNP p np = {s = p.s ++ np.s} ; + lin PrepNP p np = {s = p.s ++ np.s ! RPrep} ; } diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index cc72201a..2a88da8c 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -24,7 +24,7 @@ linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; -lincat NP = {s : Str; vocative: Str; g : GenNum; p : Person} ; +lincat NP = {s : Role => Str; vocative: Str; g : GenNum; p : Person} ; lincat Num = {s : Str; n : Number} ; lincat Quant = {s : Str; sp : Species} ; lincat Det = {s : Str; n : Number; sp : Species} ; diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index 649f719c..f79cca6f 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -29,7 +29,7 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { } ; lin DefArt = {s = []; sp = Def Unspecified} ; lin DetCN det cn = { - s = det.s ++ cn.s ! det.sp ! det.n; + s = \\r => det.s ++ cn.s ! det.sp ! det.n; vocative = det.s ++ cn.vocative ! det.n; g = case det.n of { Sg => GSg cn.g; @@ -43,4 +43,5 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { lin NumPl = {s = []; n = Pl} ; lin NumSg = {s = []; n = Sg} ; lin UseN s = s ; + lin UsePron p = p ** {vocative=p.s ! RSubj} ; } diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index 4a6abca4..77129147 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -5,9 +5,9 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { GSg _ => Sg ; GPl => Pl } - in {present = \\a => np.s ++ vp.present ! a ! n ! np.p ; - aorist = np.s ++ vp.aorist ! n ! np.p ; - participle = {aorist = \\a => np.s ++ vp.participle.aorist ! a ! np.g; - perfect = \\a => np.s ++ vp.participle.perfect ! a}} ; + in {present = \\a => np.s ! RSubj ++ vp.present ! a ! n ! np.p ; + aorist = np.s ! RSubj ++ vp.aorist ! n ! np.p ; + participle = {aorist = \\a => np.s ! RSubj ++ vp.participle.aorist ! a ! np.g; + perfect = \\a => np.s ! RSubj ++ vp.participle.perfect ! a}} ; } diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index de97758e..5352a466 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -2,12 +2,12 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { lin ComplSlash vps np = {present = \\a,n,p => vps.present ! a ! n ! p - ++ np.s; - aorist = \\n,p => vps.aorist ! n ! p ++ np.s; - imperfect = \\a,n,p => vps.imperfect ! a ! n ! p ++ np.s; - imperative = \\a,n => vps.imperative ! a ! n ++ np.s; - participle = {aorist = \\a,gn => vps.participle.aorist ! a ! gn ++ np.s; - perfect = \\a => vps.participle.perfect ! a ++ np.s}} ; + ++ np.s ! RObj Acc ; + aorist = \\n,p => vps.aorist ! n ! p ++ np.s ! RObj Acc; + imperfect = \\a,n,p => vps.imperfect ! a ! n ! p ++ np.s ! RObj Acc; + imperative = \\a,n => vps.imperative ! a ! n ++ np.s ! RObj Acc; + participle = {aorist = \\a,gn => vps.participle.aorist ! a ! gn ++ np.s ! RObj Acc; + perfect = \\a => vps.participle.perfect ! a ++ np.s ! RObj Acc}} ; lin SlashV2a v = v ; } From 28be4fb450ce127d25698ba0422d97b1cd75634a Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 1 Apr 2026 15:28:28 +0200 Subject: [PATCH 116/169] add existing modules to GrammarHye --- src/armenian/GrammarHye.gf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/armenian/GrammarHye.gf b/src/armenian/GrammarHye.gf index e3abafd4..7bfc4c54 100644 --- a/src/armenian/GrammarHye.gf +++ b/src/armenian/GrammarHye.gf @@ -1,2 +1,6 @@ -concrete GrammarHye of Grammar = TenseX ** { +concrete GrammarHye of Grammar = + TenseX, + PhraseHye, + NounHye, + AdjectiveHye ** { } \ No newline at end of file From 4c55592af40d0e475358be72022303dab0ee624d Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 1 Apr 2026 15:41:22 +0200 Subject: [PATCH 117/169] =?UTF-8?q?make=20it=20not=20crash=20on=20mkPN=20"?= =?UTF-8?q?J=C3=B3sef=C3=ADna"=20feminine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/icelandic/ParadigmsIce.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/icelandic/ParadigmsIce.gf b/src/icelandic/ParadigmsIce.gf index d888506d..fd3cad68 100644 --- a/src/icelandic/ParadigmsIce.gf +++ b/src/icelandic/ParadigmsIce.gf @@ -810,7 +810,7 @@ resource ParadigmsIce = open regPN : Str -> Gender -> PN = \name,g -> case of { => lin PN {s = caseList name (base + "a") (base + "a") (base + "a") ; g = Masc} ; - => lin PN {s = caseList name (base + "u") (base + "u") (base + "u") ; g = Masc} ; + => lin PN {s = caseList name (base + "u") (base + "u") (base + "u") ; g = g} ; => lin PN {s = caseList name base (base + "i") (base + "s") ; g = Masc} ; => lin PN {s = caseList name name name (name + "s") ; g = Masc} ; => lin PN {s = caseList name name (name + "i") (name + "ar") ; g = Masc} ; From 84e0e2c08ffb1f775da53e4b1b14c4f1307b2657 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 1 Apr 2026 16:21:58 +0200 Subject: [PATCH 118/169] (Jpn) add GN, LN, SN + constructors --- src/japanese/CatJpn.gf | 2 +- src/japanese/ParadigmsJpn.gf | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/japanese/CatJpn.gf b/src/japanese/CatJpn.gf index fa667d1f..5e28fa6e 100644 --- a/src/japanese/CatJpn.gf +++ b/src/japanese/CatJpn.gf @@ -83,6 +83,6 @@ flags coding = utf8 ; -- counter : Str ; counterReplace : Bool ; counterTsu : Bool} ; N2 = Noun ** {prep : Str; object : Style => Str} ; N3 = Noun ** {prep1 : Str; prep2 : Str} ; - PN = PropNoun ; -- {s : Style => Str ; anim : Animateness} ; + PN,LN,GN,SN = PropNoun ; -- {s : Style => Str ; anim : Animateness} ; } diff --git a/src/japanese/ParadigmsJpn.gf b/src/japanese/ParadigmsJpn.gf index 707d8aa0..cbae3384 100644 --- a/src/japanese/ParadigmsJpn.gf +++ b/src/japanese/ParadigmsJpn.gf @@ -50,6 +50,10 @@ oper = \jon,jonsan -> lin PN (personPN jon jonsan) } ; + mkGN : Str -> GN = \s -> lin GN (regPN s); + mkLN : Str -> LN = \s -> lin LN (regPN s); + mkSN : Str -> SN = \s -> lin SN (regPN s); + mkPron = overload { mkPron : (kare : Str) -> (Pron1Sg : Bool) -> (anim : Animacy) -> Pron = \kare,b,a -> lin Pron (regPron kare b a) ; From 1e436d84a1d5a458fb29a42106e4c2943e6c39d3 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 1 Apr 2026 16:26:14 +0200 Subject: [PATCH 119/169] (Ice) handle PNs that consist of multiple words --- src/icelandic/ParadigmsIce.gf | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/icelandic/ParadigmsIce.gf b/src/icelandic/ParadigmsIce.gf index fd3cad68..ad0711d7 100644 --- a/src/icelandic/ParadigmsIce.gf +++ b/src/icelandic/ParadigmsIce.gf @@ -249,11 +249,23 @@ resource ParadigmsIce = open in lin N (nForms2Noun nfs (nForms2Suffix nfs gend) gend) ; mkPN = overload { - -- this should be merged or swithced with N -> Gender - mkPN : Str -> Gender -> PN = - \name,g -> regPN name g ; + mkPN : Str -> Gender -> PN + = \name,g -> case name of { + head + " " + suf => suffixPN (regPN head g) suf ; -- fallback: use explicit constructors for more precision + _ => regPN name g } ; + mkPN : PN -> Str -> PN -- mkPN (mkPN "Annar" ) "í jólum" + = suffixPN ; + mkPN : Str -> PN -> PN -- mkPN "Sameinuðu" (mkPN "þjóðirnar") + = prefixPN + } ; + foreignPN : Str -> PN = \name -> lin PN {s = \\_ => name ; g = Masc} ; + prefixPN : Str -> PN -> PN = \prefix,pn -> pn ** { + s = \\c => prefix ++ pn.s ! c + } ; + suffixPN : PN -> Str -> PN = \pn,suffix -> pn ** { + s = \\c => pn.s ! c ++ suffix } ; oper mkLN : Str -> LN = \s -> lin LN {s=s} ; From e825d9223305ad3066e1ac5b276bcdedd2fcd15a Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 1 Apr 2026 16:27:14 +0200 Subject: [PATCH 120/169] =?UTF-8?q?(Fao)=20add=20particle=20to=20verbs=20e?= =?UTF-8?q?.g.=20"fara=20=C3=BAt"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/faroese/CatFao.gf | 1 + src/faroese/MorphoFao.gf | 336 ++++++++++++++++++++++++------------ src/faroese/ParadigmsFao.gf | 4 +- src/faroese/ResFao.gf | 5 +- 4 files changed, 231 insertions(+), 115 deletions(-) diff --git a/src/faroese/CatFao.gf b/src/faroese/CatFao.gf index 13e0382d..42134aff 100644 --- a/src/faroese/CatFao.gf +++ b/src/faroese/CatFao.gf @@ -16,4 +16,5 @@ lincat S = {s : Str} ; lincat LN,SN,GN,PN = {s : Str} ; +linref V = \v -> v.Nonfinite ++ v.particle ; } diff --git a/src/faroese/MorphoFao.gf b/src/faroese/MorphoFao.gf index 43a24bcc..2b453a38 100644 --- a/src/faroese/MorphoFao.gf +++ b/src/faroese/MorphoFao.gf @@ -8621,7 +8621,8 @@ mkV001 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"aður" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV001" } ; @@ -8653,7 +8654,8 @@ mkV002 base = Participle = table { Pres => "ei"+base_1+"andi" ; Past => "hi"+base_1+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV002" } ; @@ -8685,7 +8687,8 @@ mkV003 base = Participle = table { Pres => "a"+base_1+"andi" ; Past => "i"+base_1+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV003" } ; @@ -8717,7 +8720,8 @@ mkV004 base = Participle = table { Pres => "a"+base_1+"andi" ; Past => "a"+base_1+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV004" } ; @@ -8749,7 +8753,8 @@ mkV005 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV005" } ; @@ -8781,7 +8786,8 @@ mkV006 base = Participle = table { Pres => base_1+"ðandi" ; Past => base_1+"ddur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV006" } ; @@ -8813,7 +8819,8 @@ mkV007 base = Participle = table { Pres => "eigandi" ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV007" } ; @@ -8845,7 +8852,8 @@ mkV008 base = Participle = table { Pres => base_1+"e"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV008" } ; @@ -8877,7 +8885,8 @@ mkV009 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV009" } ; @@ -8909,7 +8918,8 @@ mkV010 base = Participle = table { Pres => base_1+"dandi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV010" } ; @@ -8941,7 +8951,8 @@ mkV011 base = Participle = table { Pres => base_1+"e"+base_2+"jandi" ; Past => base_1+"a"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV011" } ; @@ -8973,7 +8984,8 @@ mkV012 base = Participle = table { Pres => base_1+"i"+base_2+"jandi" ; Past => base_1+"i"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV012" } ; @@ -9005,7 +9017,8 @@ mkV013 base = Participle = table { Pres => base_1+"i"+base_2+"dandi" ; Past => base_1+"u"+base_2+"din" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV013" } ; @@ -9037,7 +9050,8 @@ mkV014 base = Participle = table { Pres => base_1+"í"+base_2+"andi" ; Past => base_1+"i"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV014" } ; @@ -9069,7 +9083,8 @@ mkV015 base = Participle = table { Pres => base_1+"jó"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV015" } ; @@ -9101,7 +9116,8 @@ mkV016 base = Participle = table { Pres => base_1+"gjandi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV016" } ; @@ -9133,7 +9149,8 @@ mkV017 base = Participle = table { Pres => base_1+"e"+base_2+"nandi" ; Past => base_1+"u"+base_2+"nin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV017" } ; @@ -9165,7 +9182,8 @@ mkV018 base = Participle = table { Pres => base_1+"e"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV018" } ; @@ -9197,7 +9215,8 @@ mkV019 base = Participle = table { Pres => base_1+"ó"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV019" } ; @@ -9229,7 +9248,8 @@ mkV020 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV020" } ; @@ -9261,7 +9281,8 @@ mkV021 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV021" } ; @@ -9293,7 +9314,8 @@ mkV022 base = Participle = table { Pres => base_1+"úgvandi" ; Past => base_1+"úgvin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV022" } ; @@ -9325,7 +9347,8 @@ mkV023 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV023" } ; @@ -9357,7 +9380,8 @@ mkV024 base = Participle = table { Pres => base_1+"e"+base_2+base_3+"andi" ; Past => base_1+"o"+base_2+base_3+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV024" } ; @@ -9389,7 +9413,8 @@ mkV025 base = Participle = table { Pres => base_1+"ggjandi" ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV025" } ; @@ -9421,7 +9446,8 @@ mkV026 base = Participle = table { Pres => base_1+"agandi" ; Past => base_1+"igin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV026" } ; @@ -9453,7 +9479,8 @@ mkV027 base = Participle = table { Pres => base_1+"e"+base_2+"kandi" ; Past => base_1+"u"+base_2+"kin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV027" } ; @@ -9485,7 +9512,8 @@ mkV028 base = Participle = table { Pres => base_1+"e"+base_2+"andi" ; Past => base_1+"i"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV028" } ; @@ -9517,7 +9545,8 @@ mkV029 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"aður" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV029" } ; @@ -9549,7 +9578,8 @@ mkV030 base = Participle = table { Pres => "ve"+base_1+"andi" ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV030" } ; @@ -9581,7 +9611,8 @@ mkV031 base = Participle = table { Pres => base_1+"nandi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV031" } ; @@ -9613,7 +9644,8 @@ mkV032 base = Participle = table { Pres => base_1+"a"+base_2+"andi" ; Past => base_1+"a"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV032" } ; @@ -9645,7 +9677,8 @@ mkV033 base = Participle = table { Pres => base_1+"a"+base_2+"andi" ; Past => base_1+"a"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV033" } ; @@ -9677,7 +9710,8 @@ mkV034 base = Participle = table { Pres => nonExist ; Past => base_1+"ingin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV034" } ; @@ -9709,7 +9743,8 @@ mkV035 base = Participle = table { Pres => base_1+"landi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV035" } ; @@ -9741,7 +9776,8 @@ mkV036 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV036" } ; @@ -9773,7 +9809,8 @@ mkV037 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"ur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV037" } ; @@ -9805,7 +9842,8 @@ mkV038 base = Participle = table { Pres => base_1+"e"+base_2+"jandi" ; Past => base_1+"a"+base_2+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV038" } ; @@ -9837,7 +9875,8 @@ mkV039 base = Participle = table { Pres => base_1+"nandi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV039" } ; @@ -9869,7 +9908,8 @@ mkV040 base = Participle = table { Pres => base_1+"ú"+base_2+"vandi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV040" } ; @@ -9901,7 +9941,8 @@ mkV041 base = Participle = table { Pres => base_1+"y"+base_2+"andi" ; Past => base_1+"u"+base_2+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV041" } ; @@ -9933,7 +9974,8 @@ mkV042 base = Participle = table { Pres => base_1+"e"+base_2+"jandi" ; Past => base_1+"a"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV042" } ; @@ -9965,7 +10007,8 @@ mkV043 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"ddur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV043" } ; @@ -9997,7 +10040,8 @@ mkV044 base = Participle = table { Pres => base_1+"ú"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV044" } ; @@ -10029,7 +10073,8 @@ mkV045 base = Participle = table { Pres => base_1+"landi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV045" } ; @@ -10061,7 +10106,8 @@ mkV046 base = Participle = table { Pres => base_1+"a"+base_2+"andi" ; Past => base_1+"a"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV046" } ; @@ -10093,7 +10139,8 @@ mkV047 base = Participle = table { Pres => base_1+"angandi" ; Past => base_1+"ingin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV047" } ; @@ -10125,7 +10172,8 @@ mkV048 base = Participle = table { Pres => base_1+"ja"+base_2+"dandi" ; Past => base_1+"o"+base_2+"din" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV048" } ; @@ -10157,7 +10205,8 @@ mkV049 base = Participle = table { Pres => base_1+"e"+base_2+"andi" ; Past => base_1+"jø"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV049" } ; @@ -10189,7 +10238,8 @@ mkV050 base = Participle = table { Pres => base_1+"jó"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV050" } ; @@ -10221,7 +10271,8 @@ mkV051 base = Participle = table { Pres => base_1+"e"+base_2+"pandi" ; Past => base_1+"o"+base_2+"pin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV051" } ; @@ -10253,7 +10304,8 @@ mkV052 base = Participle = table { Pres => base_1+"y"+base_2+"jandi" ; Past => base_1+"u"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV052" } ; @@ -10285,7 +10337,8 @@ mkV053 base = Participle = table { Pres => base_1+"á"+base_2+"andi" ; Past => base_1+"á"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV053" } ; @@ -10317,7 +10370,8 @@ mkV054 base = Participle = table { Pres => base_1+"a"+base_2+"andi" ; Past => base_1+"i"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV054" } ; @@ -10349,7 +10403,8 @@ mkV055 base = Participle = table { Pres => base_1+"ógvandi" ; Past => base_1+"ógvin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV055" } ; @@ -10381,7 +10436,8 @@ mkV056 base = Participle = table { Pres => base_1+"a"+base_2+"dandi" ; Past => base_1+"i"+base_2+"din" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV056" } ; @@ -10413,7 +10469,8 @@ mkV057 base = Participle = table { Pres => base_1+"angandi" ; Past => base_1+"ingin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV057" } ; @@ -10445,7 +10502,8 @@ mkV058 base = Participle = table { Pres => base_1+"a"+base_2+"andi" ; Past => base_1+"a"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV058" } ; @@ -10477,7 +10535,8 @@ mkV059 base = Participle = table { Pres => base_1+"ei"+base_2+"jandi" ; Past => base_1+"o"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV059" } ; @@ -10509,7 +10568,8 @@ mkV060 base = Participle = table { Pres => base_1+"vø"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV060" } ; @@ -10541,7 +10601,8 @@ mkV061 base = Participle = table { Pres => base_1+"y"+base_2+"gjandi" ; Past => base_1+"u"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV061" } ; @@ -10573,7 +10634,8 @@ mkV062 base = Participle = table { Pres => base_1+"o"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV062" } ; @@ -10605,7 +10667,8 @@ mkV063 base = Participle = table { Pres => base_1+"pandi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV063" } ; @@ -10637,7 +10700,8 @@ mkV064 base = Participle = table { Pres => base_1+"úgvandi" ; Past => base_1+"ovin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV064" } ; @@ -10669,7 +10733,8 @@ mkV065 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV065" } ; @@ -10701,7 +10766,8 @@ mkV066 base = Participle = table { Pres => base_1+"ø"+base_2+"andi" ; Past => base_1+"ø"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV066" } ; @@ -10733,7 +10799,8 @@ mkV067 base = Participle = table { Pres => base_1+"sandi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV067" } ; @@ -10765,7 +10832,8 @@ mkV068 base = Participle = table { Pres => base_1+"andi" ; Past => base_1+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV068" } ; @@ -10797,7 +10865,8 @@ mkV069 base = Participle = table { Pres => base_1+"e"+base_2+"gjandi" ; Past => base_1+"a"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV069" } ; @@ -10829,7 +10898,8 @@ mkV070 base = Participle = table { Pres => base_1+"iggjandi" ; Past => base_1+"igin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV070" } ; @@ -10861,7 +10931,8 @@ mkV071 base = Participle = table { Pres => base_1+"e"+base_2+"andi" ; Past => base_1+"i"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV071" } ; @@ -10893,7 +10964,8 @@ mkV072 base = Participle = table { Pres => base_1+"a"+base_2+"andi" ; Past => base_1+"a"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV072" } ; @@ -10925,7 +10997,8 @@ mkV073 base = Participle = table { Pres => base_1+"á"+base_2+"andi" ; Past => base_1+"á"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV073" } ; @@ -10957,7 +11030,8 @@ mkV074 base = Participle = table { Pres => base_1+"ey"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV074" } ; @@ -10989,7 +11063,8 @@ mkV075 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV075" } ; @@ -11021,7 +11096,8 @@ mkV076 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV076" } ; @@ -11053,7 +11129,8 @@ mkV077 base = Participle = table { Pres => base_1+"jandi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV077" } ; @@ -11085,7 +11162,8 @@ mkV078 base = Participle = table { Pres => base_1+"jandi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV078" } ; @@ -11117,7 +11195,8 @@ mkV079 base = Participle = table { Pres => base_1+"ðandi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV079" } ; @@ -11149,7 +11228,8 @@ mkV080 base = Participle = table { Pres => base_1+"áandi" ; Past => base_1+"áddur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV080" } ; @@ -11181,7 +11261,8 @@ mkV081 base = Participle = table { Pres => base_1+"áðandi" ; Past => base_1+"áðin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV081" } ; @@ -11213,7 +11294,8 @@ mkV082 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV082" } ; @@ -11245,7 +11327,8 @@ mkV083 base = Participle = table { Pres => base_1+"ø"+base_2+"kandi" ; Past => base_1+"o"+base_2+"kin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV083" } ; @@ -11277,7 +11360,8 @@ mkV084 base = Participle = table { Pres => base_1+"íggjandi" ; Past => base_1+"æddur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV084" } ; @@ -11309,7 +11393,8 @@ mkV085 base = Participle = table { Pres => base_1+"kjandi" ; Past => base_1+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV085" } ; @@ -11341,7 +11426,8 @@ mkV086 base = Participle = table { Pres => base_1+"i"+base_2+"andi" ; Past => base_1+"a"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV086" } ; @@ -11373,7 +11459,8 @@ mkV087 base = Participle = table { Pres => base_1+"i"+base_2+"andi" ; Past => base_1+"i"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV087" } ; @@ -11405,7 +11492,8 @@ mkV088 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV088" } ; @@ -11437,7 +11525,8 @@ mkV089 base = Participle = table { Pres => base_1+"ei"+base_2+"jandi" ; Past => base_1+"o"+base_2+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV089" } ; @@ -11469,7 +11558,8 @@ mkV090 base = Participle = table { Pres => base_1+"jandi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV090" } ; @@ -11501,7 +11591,8 @@ mkV091 base = Participle = table { Pres => base_1+"jó"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV091" } ; @@ -11533,7 +11624,8 @@ mkV092 base = Participle = table { Pres => base_1+"áandi" ; Past => base_1+"igin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV092" } ; @@ -11565,7 +11657,8 @@ mkV093 base = Participle = table { Pres => base_1+"y"+base_2+"jandi" ; Past => base_1+"u"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV093" } ; @@ -11597,7 +11690,8 @@ mkV094 base = Participle = table { Pres => base_1+"i"+base_2+"nandi" ; Past => base_1+"u"+base_2+"nin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV094" } ; @@ -11629,7 +11723,8 @@ mkV095 base = Participle = table { Pres => base_1+"andandi" ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV095" } ; @@ -11661,7 +11756,8 @@ mkV096 base = Participle = table { Pres => base_1+"ei"+base_2+"jandi" ; Past => base_1+"o"+base_2+"tur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV096" } ; @@ -11693,7 +11789,8 @@ mkV097 base = Participle = table { Pres => base_1+"ingandi" ; Past => base_1+"ungin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV097" } ; @@ -11725,7 +11822,8 @@ mkV098 base = Participle = table { Pres => base_1+"ja"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV098" } ; @@ -11757,7 +11855,8 @@ mkV099 base = Participle = table { Pres => base_1+"o"+base_2+"andi" ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV099" } ; @@ -11789,7 +11888,8 @@ mkV100 base = Participle = table { Pres => base_1+"í"+base_2+"jandi" ; Past => base_1+"i"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV100" } ; @@ -11821,7 +11921,8 @@ mkV101 base = Participle = table { Pres => base_1+"i"+base_2+"jandi" ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV101" } ; @@ -11853,7 +11954,8 @@ mkV102 base = Participle = table { Pres => base_1+"jandi" ; Past => base_1+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV102" } ; @@ -11885,7 +11987,8 @@ mkV103 base = Participle = table { Pres => base_1+"ø"+base_2+"jandi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV103" } ; @@ -11917,7 +12020,8 @@ mkV104 base = Participle = table { Pres => base_1+"y"+base_2+"jandi" ; Past => base_1+"u"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV104" } ; @@ -11949,7 +12053,8 @@ mkV105 base = Participle = table { Pres => base_1+"i"+base_2+"andi" ; Past => base_1+"a"+base_2+"dur" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV105" } ; @@ -11981,7 +12086,8 @@ mkV106 base = Participle = table { Pres => base_1+"e"+base_2+"fandi" ; Past => base_1+"o"+base_2+"fin" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV106" } ; @@ -12013,7 +12119,8 @@ mkV107 base = Participle = table { Pres => base_1+"a"+base_2+"andi" ; Past => base_1+"a"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV107" } ; @@ -12045,7 +12152,8 @@ mkV108 base = Participle = table { Pres => base_1+"e"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV108" } ; @@ -12077,7 +12185,8 @@ mkV109 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV109" } ; @@ -12109,7 +12218,8 @@ mkV110 base = Participle = table { Pres => "v"+base_1+"rð" ; Past => "v"+base_1+"rð" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV110" } ; @@ -12141,7 +12251,8 @@ mkV111 base = Participle = table { Pres => base_1+"e"+base_2+"andi" ; Past => base_1+"o"+base_2+"in" - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV111" } ; @@ -12173,7 +12284,8 @@ mkV112 base = Participle = table { Pres => nonExist ; Past => nonExist - } + } ; + particle = [] }; _ => error "Can't apply paradigm mkV112" } ; diff --git a/src/faroese/ParadigmsFao.gf b/src/faroese/ParadigmsFao.gf index 90cb2364..1bb0fb14 100644 --- a/src/faroese/ParadigmsFao.gf +++ b/src/faroese/ParadigmsFao.gf @@ -501,7 +501,9 @@ oper mkV = overload { mkV : Str -> V = regV; -- Nonfinite - mkV : Str -> Str -> V = reg2V -- Nonfinite Indicative;Pres;('PSg', P2) + mkV : Str -> Str -> V = reg2V ; -- Nonfinite Indicative;Pres;('PSg', P2) + mkV : V -> Str -> V -- particle verb + = \v,p -> v ** {particle = p} } ; mkVV : V -> VV = \v -> lin VV v ; diff --git a/src/faroese/ResFao.gf b/src/faroese/ResFao.gf index feb23444..aca5c9b2 100644 --- a/src/faroese/ResFao.gf +++ b/src/faroese/ResFao.gf @@ -92,7 +92,7 @@ oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj = param Tense = Past | Pres ; param PersNum = PSg Person | PPl ; param Person = P1 | P3 | P2 ; -oper Verb = {Converb: Str; Imperative_Jussive: Number => Str; Indicative: Tense => PersNum => Str; Nonfinite: Str; Participle: Tense => Str} ; -- 596 +oper Verb = {Converb: Str; Imperative_Jussive: Number => Str; Indicative: Tense => PersNum => Str; Nonfinite: Str; Participle: Tense => Str ; particle : Str} ; -- 596 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14 -> { Converb = f1 ; @@ -118,7 +118,8 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = Participle = table { Pres => f13 ; Past => f14 - } + } ; + particle = [] } ; From f0abf5deffc628515f696fc832d5a72e6bfdd709 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 3 Apr 2026 16:55:51 +0200 Subject: [PATCH 121/169] added compoundV --- src/macedonian/ParadigmsMkd.gf | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index dd54e077..4d41f865 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1086,6 +1086,23 @@ dualV : V -> V -> V = \impf,perf -> lin V isRefl = impf.isRefl } ; +compoundV = overload { + compoundV : V -> Str -> V = \v,s -> lin V { + present = \\a,n,p => v.present ! a ! n ! p ++ s ; + aorist = \\n,p => v.aorist ! n ! p ++ s ; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ s ; + imperative = \\a,n => v.imperative ! a ! n ++ s ; + participle = { aorist = \\a,gn => v.participle.aorist ! a ! gn ++ s ; + imperfect = \\gn => v.participle.imperfect ! gn ++ s ; + perfect = \\a => v.participle.perfect ! a ++ s ; + adjectival = \\a => v.participle.adjectival ! a ++ s ; + adverbial = v.participle.adverbial + } ; + noun_from_verb = v.noun_from_verb ++ s ; + isRefl = v.isRefl + } +} ; + mkV2 = overload { mkV2 : V -> V2 = \v -> lin V2 v ** {c2=noPrep} ; mkV2 : V -> Prep -> V2 = \v,p -> lin V2 v ** {c2=p} ; From deb9d40b7efa93777c5083cec0443269eee25a1d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 4 Apr 2026 11:18:04 +0200 Subject: [PATCH 122/169] placeholders for morphological functions --- src/macedonian/CatMkd.gf | 2 ++ src/macedonian/ParadigmsMkd.gf | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 2a88da8c..5622dd28 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -45,5 +45,7 @@ lincat VPSlash = {present : Aspect => Number => Person => Str; lincat Cl = {present : Aspect => Str; aorist : Str; participle : {aorist : Aspect => Str; perfect : Aspect => Str}} ; +lincat IP = {s : Str} ; +lincat Subj = {s : Str} ; } diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index 4d41f865..57edae21 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1159,4 +1159,19 @@ mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; mkPrep : Str -> Prep = \s -> lin Prep {s=s} ; noPrep : Prep = lin Prep {s=""} ; +mkIP : Str -> IP = \s -> lin IP {s=s} ; +mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; +mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; +mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; +mkMU : Str -> MU = \s -> lin MU {s=s; isPre = False} ; +mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; +mkQuant : Str -> Quant = \s -> lin Quant {s=s; sp=Indef} ; +mkDet : Str -> Det = \s -> lin Det {s=s; n=Sg; sp=Indef} ; +mkConj : Str -> Conj = \s -> lin Conj {s=s} ; +mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; +mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; +mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s; p=""} ; +mkCard : Str -> Card = \s -> lin Card {s=s} ; +mkACard : Str -> ACard = \s -> lin ACard {s=s} ; + } From 621cfd8b43520010fd1a5750ec158d1352803daa Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 5 Apr 2026 11:39:43 +0200 Subject: [PATCH 123/169] support for medial verbs --- src/macedonian/CatMkd.gf | 9 +- src/macedonian/MorphoMkd.gf | 196 ++++++++++++++++----------------- src/macedonian/ParadigmsMkd.gf | 8 +- src/macedonian/ResMkd.gf | 5 +- 4 files changed, 111 insertions(+), 107 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 5622dd28..84393c77 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -17,9 +17,10 @@ lincat Digits = {s : Str; n : Number; tail : DTail} ; linref N,N2,N3 = \n -> n.s ! Indef ! Sg ; linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = \v -> v.present ! Imperfective ! Sg ! P3 ++ - case v.isRefl of { - True => "се" ; - False => [] + case v.vtype of { + VNormal => [] ; + VMedial Acc => "се" ; + VMedial Dat => "си" } ; linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; @@ -41,7 +42,7 @@ lincat VPSlash = {present : Aspect => Number => Person => Str; participle : {aorist : Aspect => GenNum => Str; imperfect : GenNum => Str; perfect : Aspect => Str; adjectival : Aspect => Str; adverbial : Str}; - noun_from_verb : Str; isRefl : Bool; c2 : Compl} ; + noun_from_verb : Str; vtype : VType; c2 : Compl} ; lincat Cl = {present : Aspect => Str; aorist : Str; participle : {aorist : Aspect => Str; perfect : Aspect => Str}} ; diff --git a/src/macedonian/MorphoMkd.gf b/src/macedonian/MorphoMkd.gf index c1bb9b81..7b4db928 100644 --- a/src/macedonian/MorphoMkd.gf +++ b/src/macedonian/MorphoMkd.gf @@ -6875,7 +6875,7 @@ mkV001 base_1 = adverbial = base_1+"јќи" } ; noun_from_verb = base_1+"ње" ; - isRefl = False + vtype = VNormal } ; mkV002 : Str -> V ; @@ -6942,7 +6942,7 @@ mkV002 base_1 = adverbial = base_1+"јќи" } ; noun_from_verb = base_1+"ње" ; - isRefl = False + vtype = VNormal } ; mkV003 : Str -> V ; @@ -7010,7 +7010,7 @@ mkV003 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV003" } ; @@ -7080,7 +7080,7 @@ mkV004 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV004" } ; @@ -7150,7 +7150,7 @@ mkV005 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV005" } ; @@ -7220,7 +7220,7 @@ mkV006 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV006" } ; @@ -7290,7 +7290,7 @@ mkV007 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV007" } ; @@ -7360,7 +7360,7 @@ mkV008 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV008" } ; @@ -7429,7 +7429,7 @@ mkV009 base_1 = adverbial = base_1+"јќи" --guessed } ; noun_from_verb = base_1+"ње" ; --guessed - isRefl = False + vtype = VNormal } ; mkV010 : Str -> V ; @@ -7497,7 +7497,7 @@ mkV010 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV010" } ; @@ -7567,7 +7567,7 @@ mkV011 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV011" } ; @@ -7637,7 +7637,7 @@ mkV012 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV012" } ; @@ -7706,7 +7706,7 @@ mkV013 base_1 = adverbial = base_1+"јќи" } ; noun_from_verb = base_1+"ње" ; - isRefl = False + vtype = VNormal } ; mkV014 : Str -> V ; @@ -7774,7 +7774,7 @@ mkV014 base = adverbial = nonExist } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV014" } ; @@ -7844,7 +7844,7 @@ mkV015 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV015" } ; @@ -7914,7 +7914,7 @@ mkV016 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV016" } ; @@ -7983,7 +7983,7 @@ mkV017 base_1 = adverbial = base_1+"јќи" --guessed } ; noun_from_verb = base_1+"ње" ; --guessed - isRefl = False + vtype = VNormal } ; mkV018 : Str -> V ; @@ -8051,7 +8051,7 @@ mkV018 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV018" } ; @@ -8121,7 +8121,7 @@ mkV019 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV019" } ; @@ -8191,7 +8191,7 @@ mkV020 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV020" } ; @@ -8261,7 +8261,7 @@ mkV021 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV021" } ; @@ -8331,7 +8331,7 @@ mkV022 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV022" } ; @@ -8401,7 +8401,7 @@ mkV023 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV023" } ; @@ -8471,7 +8471,7 @@ mkV024 base = adverbial = nonExist } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV024" } ; @@ -8541,7 +8541,7 @@ mkV025 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV025" } ; @@ -8611,7 +8611,7 @@ mkV026 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV026" } ; @@ -8681,7 +8681,7 @@ mkV027 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV027" } ; @@ -8751,7 +8751,7 @@ mkV028 base = adverbial = nonExist } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV028" } ; @@ -8821,7 +8821,7 @@ mkV029 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV029" } ; @@ -8891,7 +8891,7 @@ mkV030 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV030" } ; @@ -8961,7 +8961,7 @@ mkV031 base = adverbial = nonExist } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV031" } ; @@ -9031,7 +9031,7 @@ mkV032 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV032" } ; @@ -9101,7 +9101,7 @@ mkV033 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV033" } ; @@ -9171,7 +9171,7 @@ mkV034 base = adverbial = nonExist } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV034" } ; @@ -9241,7 +9241,7 @@ mkV035 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV035" } ; @@ -9311,7 +9311,7 @@ mkV036 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV036" } ; @@ -9381,7 +9381,7 @@ mkV037 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV037" } ; @@ -9451,7 +9451,7 @@ mkV038 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV038" } ; @@ -9521,7 +9521,7 @@ mkV039 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV039" } ; @@ -9591,7 +9591,7 @@ mkV040 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV040" } ; @@ -9661,7 +9661,7 @@ mkV041 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV041" } ; @@ -9731,7 +9731,7 @@ mkV042 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV042" } ; @@ -9801,7 +9801,7 @@ mkV043 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV043" } ; @@ -9870,7 +9870,7 @@ mkV044 base_1 = adverbial = base_1+"јќи" } ; noun_from_verb = base_1+"ње" ; - isRefl = False + vtype = VNormal } ; mkV045 : Str -> V ; @@ -9938,7 +9938,7 @@ mkV045 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV045" } ; @@ -10008,7 +10008,7 @@ mkV046 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV046" } ; @@ -10078,7 +10078,7 @@ mkV047 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV047" } ; @@ -10148,7 +10148,7 @@ mkV048 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV048" } ; @@ -10218,7 +10218,7 @@ mkV049 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV049" } ; @@ -10288,7 +10288,7 @@ mkV050 base = adverbial = base_1+"и"+base_2+"јќи" } ; noun_from_verb = base_1+"и"+base_2+"ње" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV050" } ; @@ -10357,7 +10357,7 @@ mkV051 base_1 = adverbial = base_1+"јќи" } ; noun_from_verb = base_1+"ње" ; - isRefl = False + vtype = VNormal } ; mkV052 : Str -> V ; @@ -10425,7 +10425,7 @@ mkV052 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV052" } ; @@ -10495,7 +10495,7 @@ mkV053 base = adverbial = base_1+"ејќи" --guessed } ; noun_from_verb = base_1+"ење" ; --guessed - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV053" } ; @@ -10565,7 +10565,7 @@ mkV054 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV054" } ; @@ -10634,7 +10634,7 @@ mkV055 base_1 = adverbial = nonExist } ; noun_from_verb = base_1+"ње" ; --guessed - isRefl = False + vtype = VNormal } ; mkV056 : Str -> V ; @@ -10702,7 +10702,7 @@ mkV056 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV056" } ; @@ -10772,7 +10772,7 @@ mkV057 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV057" } ; @@ -10842,7 +10842,7 @@ mkV058 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV058" } ; @@ -10912,7 +10912,7 @@ mkV059 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV059" } ; @@ -10982,7 +10982,7 @@ mkV060 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV060" } ; @@ -11052,7 +11052,7 @@ mkV061 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV061" } ; @@ -11122,7 +11122,7 @@ mkV062 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV062" } ; @@ -11192,7 +11192,7 @@ mkV063 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV063" } ; @@ -11262,7 +11262,7 @@ mkV064 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV064" } ; @@ -11332,7 +11332,7 @@ mkV065 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV065" } ; @@ -11402,7 +11402,7 @@ mkV066 base = adverbial = base_1+"ејќи" } ; noun_from_verb = base_1+"ење" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV066" } ; @@ -11472,7 +11472,7 @@ mkV067 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV067" } ; @@ -11542,7 +11542,7 @@ mkV068 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV068" } ; @@ -11612,7 +11612,7 @@ mkV069 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV069" } ; @@ -11682,7 +11682,7 @@ mkV070 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV070" } ; @@ -11752,7 +11752,7 @@ mkV071 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV071" } ; @@ -11822,7 +11822,7 @@ mkV072 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV072" } ; @@ -11892,7 +11892,7 @@ mkV073 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV073" } ; @@ -11962,7 +11962,7 @@ mkV074 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV074" } ; @@ -12032,7 +12032,7 @@ mkV075 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV075" } ; @@ -12102,7 +12102,7 @@ mkV076 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV076" } ; @@ -12172,7 +12172,7 @@ mkV077 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV077" } ; @@ -12242,7 +12242,7 @@ mkV078 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV078" } ; @@ -12312,7 +12312,7 @@ mkV079 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV079" } ; @@ -12382,7 +12382,7 @@ mkV080 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV080" } ; @@ -12452,7 +12452,7 @@ mkV081 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV081" } ; @@ -12522,7 +12522,7 @@ mkV082 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV082" } ; @@ -12592,7 +12592,7 @@ mkV083 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV083" } ; @@ -12662,7 +12662,7 @@ mkV084 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV084" } ; @@ -12732,7 +12732,7 @@ mkV085 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV085" } ; @@ -12802,7 +12802,7 @@ mkV086 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV086" } ; @@ -12872,7 +12872,7 @@ mkV087 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV087" } ; @@ -12942,7 +12942,7 @@ mkV088 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV088" } ; @@ -13012,7 +13012,7 @@ mkV089 base = adverbial = base_1+"фи"+base_2+base_3+"јќи" } ; noun_from_verb = base_1+"фи"+base_2+base_3+"ње" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV089" } ; @@ -13081,7 +13081,7 @@ mkV090 base_1 = adverbial = nonExist } ; noun_from_verb = base_1+"ње" ; - isRefl = False + vtype = VNormal } ; mkV091 : Str -> V ; @@ -13148,7 +13148,7 @@ mkV091 base_1 = adverbial = nonExist } ; noun_from_verb = base_1+"ње" ; - isRefl = False + vtype = VNormal } ; mkV092 : Str -> V ; @@ -13216,7 +13216,7 @@ mkV092 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV092" } ; @@ -13286,7 +13286,7 @@ mkV093 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV093" } ; @@ -13356,7 +13356,7 @@ mkV094 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV094" } ; @@ -13426,7 +13426,7 @@ mkV097 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV097" } ; @@ -13496,7 +13496,7 @@ mkV098 base = adverbial = base_1+base_2+"јќи" } ; noun_from_verb = base_1+base_2+"ње" ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV098" } ; @@ -13566,7 +13566,7 @@ mkV099 base = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal }; _ => error "Can't apply paradigm mkV099" } ; @@ -13635,7 +13635,7 @@ mkV101 base_1 = adverbial = nonExist } ; noun_from_verb = nonExist ; - isRefl = False + vtype = VNormal } ; mkA001 : Str -> A ; diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index 57edae21..224bf14c 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1051,7 +1051,9 @@ mkV = overload { mkV : Str -> Str -> Str -> V = reg3V -- present;Sg;P3 participle;adverbial participle;adjectival } ; -reflV : V -> V = \v -> v ** {isRefl=True} ; +accusative : Case = Acc ; +dative : Case = Dat ; +medialV : V -> Case -> V = \v,c -> v ** {vtype=VMedial c} ; dualV : V -> V -> V = \impf,perf -> lin V { present = table { @@ -1083,7 +1085,7 @@ dualV : V -> V -> V = \impf,perf -> lin V adverbial = impf.participle.adverbial } ; noun_from_verb = impf.noun_from_verb ; - isRefl = impf.isRefl + vtype = impf.vtype } ; compoundV = overload { @@ -1099,7 +1101,7 @@ compoundV = overload { adverbial = v.participle.adverbial } ; noun_from_verb = v.noun_from_verb ++ s ; - isRefl = v.isRefl + vtype = v.vtype } } ; diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 797e57ef..27f41990 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -42,7 +42,8 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun = param Aspect = Imperfective | Perfective ; param Person = P1 | P3 | P2 ; param GenNum = GSg Gender | GPl ; -oper Verb = {present: Aspect => Number => Person => Str; aorist: Number => Person => Str; imperfect: Aspect => Number => Person => Str; imperative: Aspect => Number => Str; participle: {aorist: Aspect => GenNum => Str; imperfect: GenNum => Str; perfect: Aspect => Str; adjectival: Aspect => Str; adverbial: Str}; noun_from_verb: Str; isRefl: Bool} ; -- 8174 +param VType = VNormal | VMedial Case ; +oper Verb = {present: Aspect => Number => Person => Str; aorist: Number => Person => Str; imperfect: Aspect => Number => Person => Str; imperative: Aspect => Number => Str; participle: {aorist: Aspect => GenNum => Str; imperfect: GenNum => Str; perfect: Aspect => Str; adjectival: Aspect => Str; adverbial: Str}; noun_from_verb: Str; vtype: VType} ; -- 8174 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32 -> { present = \\_ => @@ -106,7 +107,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : adverbial = f31 } ; noun_from_verb = f32 ; - isRefl = False + vtype = VNormal } ; From 5cc990d259e11220c12d0bafcd1a5a7b63cd131e Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 9 Apr 2026 14:03:06 +0200 Subject: [PATCH 124/169] added CompoundN --- src/macedonian/AllMkd.gf | 3 ++- src/macedonian/ExtendMkd.gf | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/macedonian/ExtendMkd.gf diff --git a/src/macedonian/AllMkd.gf b/src/macedonian/AllMkd.gf index 30bb6409..c4c091c1 100644 --- a/src/macedonian/AllMkd.gf +++ b/src/macedonian/AllMkd.gf @@ -1,7 +1,8 @@ --# -path=.:../abstract:../common:../prelude:../api concrete AllMkd of AllMkdAbs = - LangMkd + LangMkd, + ExtendMkd ** { } ; diff --git a/src/macedonian/ExtendMkd.gf b/src/macedonian/ExtendMkd.gf new file mode 100644 index 00000000..c7bb2b62 --- /dev/null +++ b/src/macedonian/ExtendMkd.gf @@ -0,0 +1,27 @@ +--# -path=.:../abstract:../common:prelude +concrete ExtendMkd of Extend = CatMkd ** open ResMkd in { + +lin + CompoundN n1 n2 = + let comp : Species => Number => Str + = \\sp,n => case n1.relType of { + Pref => n1.rel ! sp ! genNum n2.g n ++ n2.s ! sp ! n ; + AdjMod => n1.rel ! sp ! genNum n2.g n ++ n2.s ! Indef ! n ; + AdvMod => n2.s ! sp ! n ++ n1.rel ! sp ! genNum n2.g n + } ; + voc : Number => Str + = \\n => ""{-case n1.relType of { + Pref => n1.rel ! Indef ! genNum n2.g n ++ n2.vocative ! n ; + AdjMod => n1.rel ! Indef ! genNum n2.g n ++ n2.vocative ! n ; + AdvMod => n2.vocative ! n ++ n1.rel ! Indef ! genNum n2.g n + }-} + in { + s = comp ; + count_form = comp ! Indef ! Pl ; + vocative = voc ; + rel = \\sp,n => "на" ++ comp ! sp ! Sg ; relType = AdvMod ; + g = n2.g + } ; + +} + From 1c3bb0f6ebd724bfa9de2d715295852e14e36e6d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 9 Apr 2026 14:25:26 +0200 Subject: [PATCH 125/169] added relative pronoun --- src/macedonian/CatMkd.gf | 1 + src/macedonian/GrammarMkd.gf | 2 +- src/macedonian/RelativeMkd.gf | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/macedonian/RelativeMkd.gf diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 84393c77..be434f61 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -46,6 +46,7 @@ lincat VPSlash = {present : Aspect => Number => Person => Str; lincat Cl = {present : Aspect => Str; aorist : Str; participle : {aorist : Aspect => Str; perfect : Aspect => Str}} ; +lincat RP = {s : GenNum => Str} ; lincat IP = {s : Str} ; lincat Subj = {s : Str} ; diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 3975b064..1d39e8df 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,2 +1,2 @@ -concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdverbMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,TextX,StructuralMkd,TenseX ** { +concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdverbMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextX,StructuralMkd,TenseX ** { } diff --git a/src/macedonian/RelativeMkd.gf b/src/macedonian/RelativeMkd.gf new file mode 100644 index 00000000..0482ea35 --- /dev/null +++ b/src/macedonian/RelativeMkd.gf @@ -0,0 +1,9 @@ +concrete RelativeMkd of Relative = CatMkd ** open Prelude,ResMkd in { + lin IdRP = {s = table { + GSg Masc => "кој" ; + GSg Fem => "која" ; + GSg Neuter => "кое" ; + GPl => "кои" + } + } ; +} From 8808ce108bcb4c2c4591fcf732bdae05c836733d Mon Sep 17 00:00:00 2001 From: EkaterinaVoloshina Date: Fri, 10 Apr 2026 15:12:02 +0200 Subject: [PATCH 126/169] changed fields --- src/armenian/CatHye.gf | 179 +++++++- src/kazakh/CatKaz.gf | 182 +++++++- src/kazakh/DocumentationKaz.gf | 196 ++++----- src/kazakh/MorphoKaz.gf | 756 ++++++++++++++++----------------- src/kazakh/ResKaz.gf | 16 +- 5 files changed, 816 insertions(+), 513 deletions(-) diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf index 374f2817..e7aa3ef4 100644 --- a/src/armenian/CatHye.gf +++ b/src/armenian/CatHye.gf @@ -1,16 +1,163 @@ -concrete CatHye of Cat = CommonX ** open ResHye in { - -lincat V = Verb ; -lincat VV,VS,VQ,VA = Verb ; -lincat V2 = Verb ** {c2 : Compl} ; -lincat V3,V2A,V2S,V2Q,V2V = Verb ** {c2,c3 : Compl} ; -lincat N = Noun ; -lincat N2 = Noun ** {c2 : Compl} ; -lincat N3 = Noun ** {c2,c3 : Compl} ; -lincat CN = Noun ; -lincat A = Adj ; -lincat A2 = Adj ** {c2 : Compl} ; -lincat AP = Adj ; -lincat Prep = Compl ; - -} +concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { + flags + coding = "UTF-8" ; + lincat A = {s : Case => Number => Str; def_dat : Number => Str; + def_nom : Number => Str; poss1 : Case => Number => Str; + poss2 : Case => Number => Str} ; + lincat A2 = {s : Case => Number => Str; def_dat : Number => Str; + def_nom : Number => Str; poss1 : Case => Number => Str; + poss2 : Case => Number => Str; c2 : {s : Str; c : Case}} ; + lincat ACard = {s : Str} ; + lincat AP = {} ; + lincat CN = {s : Case => Number => Str; def_dat : Number => Str; + def_nom : Number => Str; poss1 : Case => Number => Str; + poss2 : Case => Number => Str} ; + lincat Card = {s : Str} ; + lincat Cl = {s : Str} ; + lincat ClSlash = {s : Str} ; + lincat Comp = {s : Str} ; + lincat Conj = {s : Str} ; + lincat DAP = {s : Str} ; + lincat Decimal = {s : Str} ; + lincat Det = {s : Str; n : Number} ; + lincat Digits = {s : Str} ; + lincat GN = {s : Str} ; + lincat IComp = {s : Str} ; + lincat IDet = {s : Str} ; + lincat IP = {s : Str} ; + lincat IQuant = {s : Str} ; + lincat Imp = {s : Str} ; + lincat LN = {s : Str} ; + lincat N = {s : Case => Number => Str; def_dat : Number => Str; + def_nom : Number => Str; poss1 : Case => Number => Str; + poss2 : Case => Number => Str} ; + lincat N2 = {s : Case => Number => Str; def_dat : Number => Str; + def_nom : Number => Str; poss1 : Case => Number => Str; + poss2 : Case => Number => Str; c2 : {s : Str; c : Case}} ; + lincat N3 = {s : Case => Number => Str; def_dat : Number => Str; + def_nom : Number => Str; poss1 : Case => Number => Str; + poss2 : Case => Number => Str; c2 : {s : Str; c : Case}; + c3 : {s : Str; c : Case}} ; + lincat NP = {s : Case => Number => Str; def_dat : Number => Str; + def_nom : Number => Str; poss1 : Case => Number => Str; + poss2 : Case => Number => Str} ; + lincat Num = {s : Str; n : Number} ; + lincat Numeral = {s : Str} ; + lincat Ord = {s : Str} ; + lincat PN = {s : Str} ; + lincat Predet = {s : Str} ; + lincat Prep = {s : Str; c : Case; lock_Prep : {}; isPre : Bool} ; + lincat Pron = {s : Str} ; + lincat QCl = {s : Str} ; + lincat QS = {s : Str} ; + lincat Quant = {s : Str} ; + lincat RCl = {s : Str} ; + lincat RP = {s : Str} ; + lincat RS = {s : Str} ; + lincat S = {s : Str} ; + lincat SN = {s : Str} ; + lincat SSlash = {s : Str} ; + lincat Subj = {s : Str} ; + lincat V = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str} ; + lincat V2 = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str; + c2 : {s : Str; c : Case}} ; + lincat V2A = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str; + c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; + lincat V2Q = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str; + c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; + lincat V2S = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str; + c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; + lincat V2V = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str; + c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; + lincat V3 = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str; + c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; + lincat VA = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str} ; + lincat VP = {s : Case => Number => Str; + conditional : Aspect => Person => Number => Case => Number => Str; + converb : {Imperfective : Case => Number => Str; + FutCon1 : Case => Number => Str; FutCon2 : Case => Number => Str; + Negative : Case => Number => Str; + Perfective : Case => Number => Str; + Simultaneous : Case => Number => Str}; + imperative : Number => Number => Str; + passive : Case => Number => Str; + past : Person => Number => Case => Number => Str; + participle : PartType => Case => Number => Str; + subjunctive : Aspect => Person => Number => Case => Number => Str} ; + lincat VPSlash = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str; lock_V : {}} ; + lincat VQ = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str} ; + lincat VS = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str} ; + lincat VV = {s : Str; causative : Str; + conditional : Aspect => Person => Number => Str; + converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; + Negative : Str; Perfective : Str; Simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str} ; +} \ No newline at end of file diff --git a/src/kazakh/CatKaz.gf b/src/kazakh/CatKaz.gf index aa9f2ac2..63722ccf 100644 --- a/src/kazakh/CatKaz.gf +++ b/src/kazakh/CatKaz.gf @@ -1,13 +1,169 @@ -concrete CatKaz of Cat = CommonX ** open ResKaz in { - -lincat N = Noun ; -lincat N2 = Noun ** {c2 : Compl} ; -lincat N3 = Noun ** {c2,c3 : Compl} ; -lincat V, VA, VV, VS, VQ = Verb ; -lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ; -lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ; -lincat A = {s : Str} ; -lincat A2 = A ** {c2 : Compl} ; -lincat Prep = Compl ; - -} +concrete CatKaz of Cat = CommonX ** open Prelude,ResKaz in { + flags + coding = "UTF-8" ; + lincat A = {s : Str} ; + lincat A2 = {s : Str; lock_A : {}; c2 : {s : Str}} ; + lincat ACard = {s : Str} ; + lincat AP = {s : Str} ; + lincat CN = {s : Case => Str} ; + lincat Card = {s : Str} ; + lincat Cl = {infinitive : Case => Str} ; + lincat ClSlash = {s : Str} ; + lincat Comp = {s : Str} ; + lincat Conj = {s : Str} ; + lincat DAP = {s : Str} ; + lincat Decimal = {s : Str} ; + lincat Det = {s : Str; n : Number} ; + lincat Digits = {s : Str} ; + lincat GN = {s : Str} ; + lincat IComp = {s : Str} ; + lincat IDet = {s : Str} ; + lincat IP = {s : Str} ; + lincat IQuant = {s : Str} ; + lincat Imp = {s : Str} ; + lincat LN = {s : Str} ; + lincat N = {s : Case => Number => Str; + poss : Number => Person => Number => Str} ; + lincat N2 = {s : Case => Number => Str; + poss : Number => Person => Number => Str; c2 : {s : Str}} ; + lincat N3 = {s : Case => Number => Str; + poss : Number => Person => Number => Str; c2 : {s : Str}; + c3 : {s : Str}} ; + lincat NP = {s : Case => Str} ; + lincat Num = {s : Str; n : Number} ; + lincat Numeral = {s : Str} ; + lincat Ord = {s : Str} ; + lincat PN = {s : Str} ; + lincat Predet = {s : Str} ; + lincat Prep = {s : Str} ; + lincat Pron = {s : Str} ; + lincat QCl = {s : Str} ; + lincat QS = {s : Str} ; + lincat Quant = {s : Str} ; + lincat RCl = {s : Str} ; + lincat RP = {s : Str} ; + lincat RS = {s : Str} ; + lincat S = {s : Str} ; + lincat SN = {s : Str} ; + lincat SSlash = {s : Str} ; + lincat Subj = {s : Str} ; + lincat V = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str} ; + lincat V2 = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str; c2 : {s : Str}} ; + lincat V2A = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str; c2 : {s : Str}; + c3 : {s : Str}} ; + lincat V2Q = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str; c2 : {s : Str}} ; + lincat V2S = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str; c2 : {s : Str}} ; + lincat V2V = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str; c2 : {s : Str}; + c3 : {s : Str}} ; + lincat V3 = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str; c2 : {s : Str}; + c3 : {s : Str}} ; + lincat VA = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str} ; + lincat VP = {infinitive : Case => Str; + indicative : {fut : Case => Str; + pres : {progressive : Polarity => Case => Str; + noAspect : Polarity => Case => Str}; + past : {perfect : Polarity => Case => Str; + progressive : Polarity => Case => Str; + noAspect : Polarity => Case => Str}}; + subjunctive : Person => Case => Str} ; + lincat VPSlash = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str} ; + lincat VQ = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str} ; + lincat VS = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str} ; + lincat VV = {infinitive : Str; + indicative : {fut : Str; + pres : {progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}; + past : {perfect : Polarity => Person => Number => Str; + progressive : Polarity => Person => Number => Str; + noAspect : Polarity => Person => Number => Str}}; + imperative : Polarity => Formality => Number => Str; + subjunctive : Person => Number => Str} ; +} \ No newline at end of file diff --git a/src/kazakh/DocumentationKaz.gf b/src/kazakh/DocumentationKaz.gf index 7b71bcfd..f1a7ef84 100644 --- a/src/kazakh/DocumentationKaz.gf +++ b/src/kazakh/DocumentationKaz.gf @@ -34,118 +34,118 @@ lin InflectionV, InflectionV2, InflectionV3, InflectionV2V, InflectionV2S, InflectionVQ, InflectionVA = \x -> { t="v" ; s1="" ; - s2=heading2 "Infinitive" ++ paragraph (x.Infinitive) ++ - -- tr (th "Indicative" ++ th "Fut" ++ td (x.Indicative.Fut)) ++ + s2=heading2 "Infinitive" ++ paragraph (x.infinitive) ++ + -- tr (th "Indicative" ++ th "Fut" ++ td (x.indicative.Fut)) ++ heading2 "Present"++ frameTable ( - tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P3 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P3 ! Pl))) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P3 ! Pl))) ++ heading2 "Present Progressive"++ frameTable ( - tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P1 ! Sg))++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P3 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P3 ! Pl))) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P1 ! Sg))++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P3 ! Pl))) ++ heading2 "Past" ++ frameTable ( - tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P3 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P3 ! Pl))) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P3 ! Pl))) ++ heading2 "Past Perfect" ++ frameTable ( - tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P3 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P3 ! Pl))) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P3 ! Pl))) ++ heading2 "Past Progressive" ++ frameTable ( - tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P3 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P3 ! Pl))) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P3 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P3 ! Pl))) ++ heading2 "Imperative" ++ frameTable ( - tr (intagAttr "th" "rowspan=\"4\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Pos ! Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Imperative_Jussive ! Pos ! Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Pos ! Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Imperative_Jussive ! Pos ! Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"4\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Neg ! Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Imperative_Jussive ! Neg ! Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Neg ! Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Imperative_Jussive ! Neg ! Formal ! Pl))) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.imperative ! Pos ! Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! Pos ! Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.imperative ! Pos ! Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! Pos ! Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"4\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.imperative ! Neg ! Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! Neg ! Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.imperative ! Neg ! Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! Neg ! Formal ! Pl))) ++ heading2 "Subjunctive" ++ frameTable ( - tr (intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Subjunctive ! P1 ! Sg)) ++ - tr (th "Pl" ++ td (x.Subjunctive ! P1 ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Subjunctive ! P2 Informal ! Sg)) ++ - tr (th "Pl" ++ td (x.Subjunctive ! P2 Informal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Subjunctive ! P2 Formal ! Sg)) ++ - tr (th "Pl" ++ td (x.Subjunctive ! P2 Formal ! Pl)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Subjunctive ! P3 ! Sg)) ++ - tr (th "Pl" ++ td (x.Subjunctive ! P3 ! Pl))) ; + tr (intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.subjunctive ! P1 ! Sg)) ++ + tr (th "Pl" ++ td (x.subjunctive ! P1 ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.subjunctive ! P2 Informal ! Sg)) ++ + tr (th "Pl" ++ td (x.subjunctive ! P2 Informal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.subjunctive ! P2 Formal ! Sg)) ++ + tr (th "Pl" ++ td (x.subjunctive ! P2 Formal ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.subjunctive ! P3 ! Sg)) ++ + tr (th "Pl" ++ td (x.subjunctive ! P3 ! Pl))) ; s3=[] } ; diff --git a/src/kazakh/MorphoKaz.gf b/src/kazakh/MorphoKaz.gf index 93860f95..7099ef8d 100644 --- a/src/kazakh/MorphoKaz.gf +++ b/src/kazakh/MorphoKaz.gf @@ -5669,9 +5669,9 @@ mkV001 : Str -> V ; mkV001 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып oтыpмын" ; @@ -5748,7 +5748,7 @@ mkV001 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"қaнмын" ; @@ -5786,7 +5786,7 @@ mkV001 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -5864,7 +5864,7 @@ mkV001 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -5886,7 +5886,7 @@ mkV001 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -5912,9 +5912,9 @@ mkV002 : Str -> V ; mkV002 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п тұpмын" ; @@ -5991,7 +5991,7 @@ mkV002 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -6029,7 +6029,7 @@ mkV002 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтынмын" ; @@ -6107,7 +6107,7 @@ mkV002 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -6129,7 +6129,7 @@ mkV002 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмын" ; Pl => base_1+"pмыз" @@ -6155,9 +6155,9 @@ mkV003 : Str -> V ; mkV003 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып жaтыpмын" ; @@ -6234,7 +6234,7 @@ mkV003 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -6272,7 +6272,7 @@ mkV003 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -6350,7 +6350,7 @@ mkV003 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -6372,7 +6372,7 @@ mkV003 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -6398,9 +6398,9 @@ mkV004 : Str -> V ; mkV004 base = case base of { base_1+"лу" => lin V - { Infinitive = base_1+"лу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"лу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"лып тұpмын" ; @@ -6477,7 +6477,7 @@ mkV004 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "шыд"+base_1+"ғaнмын" ; @@ -6515,7 +6515,7 @@ mkV004 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"лaтынмын" ; @@ -6593,7 +6593,7 @@ mkV004 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"л" ; @@ -6615,7 +6615,7 @@ mkV004 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"лapмын" ; Pl => base_1+"лapмыз" @@ -6641,9 +6641,9 @@ mkV005 : Str -> V ; mkV005 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып тұpмын" ; @@ -6720,7 +6720,7 @@ mkV005 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"қaнмын" ; @@ -6758,7 +6758,7 @@ mkV005 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -6836,7 +6836,7 @@ mkV005 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -6858,7 +6858,7 @@ mkV005 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -6884,9 +6884,9 @@ mkV006 : Str -> V ; mkV006 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п жaтыpмын" ; @@ -6963,7 +6963,7 @@ mkV006 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -7001,7 +7001,7 @@ mkV006 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтынмын" ; @@ -7079,7 +7079,7 @@ mkV006 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -7101,7 +7101,7 @@ mkV006 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмын" ; Pl => base_1+"pмыз" @@ -7127,9 +7127,9 @@ mkV007 : Str -> V ; mkV007 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп жaтыpмын" ; @@ -7206,7 +7206,7 @@ mkV007 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"кeнмiн" ; @@ -7244,7 +7244,7 @@ mkV007 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -7322,7 +7322,7 @@ mkV007 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -7344,7 +7344,7 @@ mkV007 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -7370,9 +7370,9 @@ mkV008 : Str -> V ; mkV008 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп тұpмын" ; @@ -7449,7 +7449,7 @@ mkV008 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"iгeнмiн" ; @@ -7487,7 +7487,7 @@ mkV008 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -7565,7 +7565,7 @@ mkV008 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -7587,7 +7587,7 @@ mkV008 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"ipмiн" ; Pl => base_1+"ipмiз" @@ -7613,9 +7613,9 @@ mkV009 : Str -> V ; mkV009 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п тұpмын" ; @@ -7692,7 +7692,7 @@ mkV009 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -7730,7 +7730,7 @@ mkV009 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтiнмiн" ; @@ -7808,7 +7808,7 @@ mkV009 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -7830,7 +7830,7 @@ mkV009 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмiн" ; Pl => base_1+"pмiз" @@ -7856,9 +7856,9 @@ mkV010 : Str -> V ; mkV010 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп тұpмын" ; @@ -7935,7 +7935,7 @@ mkV010 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"кeнмiн" ; @@ -7973,7 +7973,7 @@ mkV010 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -8051,7 +8051,7 @@ mkV010 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -8073,7 +8073,7 @@ mkV010 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -8099,9 +8099,9 @@ mkV011 : Str -> V ; mkV011 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п жүpмiн" ; @@ -8178,7 +8178,7 @@ mkV011 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -8216,7 +8216,7 @@ mkV011 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтынмын" ; @@ -8294,7 +8294,7 @@ mkV011 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -8316,7 +8316,7 @@ mkV011 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмын" ; Pl => base_1+"pмыз" @@ -8342,9 +8342,9 @@ mkV012 : Str -> V ; mkV012 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып oтыpмын" ; @@ -8421,7 +8421,7 @@ mkV012 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ығaнмын" ; @@ -8459,7 +8459,7 @@ mkV012 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -8537,7 +8537,7 @@ mkV012 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -8559,7 +8559,7 @@ mkV012 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -8585,9 +8585,9 @@ mkV013 : Str -> V ; mkV013 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"мын" ; @@ -8664,7 +8664,7 @@ mkV013 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -8702,7 +8702,7 @@ mkV013 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -8780,7 +8780,7 @@ mkV013 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -8802,7 +8802,7 @@ mkV013 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -8828,9 +8828,9 @@ mkV014 : Str -> V ; mkV014 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"aмын" ; @@ -8907,7 +8907,7 @@ mkV014 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -8945,7 +8945,7 @@ mkV014 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -9023,7 +9023,7 @@ mkV014 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -9045,7 +9045,7 @@ mkV014 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -9071,9 +9071,9 @@ mkV015 : Str -> V ; mkV015 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"a жaтыpмын" ; @@ -9150,7 +9150,7 @@ mkV015 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -9188,7 +9188,7 @@ mkV015 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -9266,7 +9266,7 @@ mkV015 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -9288,7 +9288,7 @@ mkV015 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -9314,9 +9314,9 @@ mkV016 : Str -> V ; mkV016 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп тұpмын" ; @@ -9393,7 +9393,7 @@ mkV016 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -9431,7 +9431,7 @@ mkV016 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -9509,7 +9509,7 @@ mkV016 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -9531,7 +9531,7 @@ mkV016 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -9557,9 +9557,9 @@ mkV017 : Str -> V ; mkV017 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып тұpмын" ; @@ -9636,7 +9636,7 @@ mkV017 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -9674,7 +9674,7 @@ mkV017 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -9752,7 +9752,7 @@ mkV017 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -9774,7 +9774,7 @@ mkV017 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -9800,9 +9800,9 @@ mkV018 : Str -> V ; mkV018 base = case base of { base_1+"ып"+base_2@?+"қ"+base_3@?+"лу" => lin V - { Infinitive = base_1+"ып"+base_2+"қ"+base_3+"лу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"ып"+base_2+"қ"+base_3+"лу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"a"+base_2+"ж"+base_3+"тыpмын" ; @@ -9879,7 +9879,7 @@ mkV018 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ып"+base_2+"қ"+base_3+"лғaнмын" ; @@ -9917,7 +9917,7 @@ mkV018 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"ып"+base_2+"қ"+base_3+"лaтынмын" ; @@ -9995,7 +9995,7 @@ mkV018 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"ып"+base_2+"қ"+base_3+"л" ; @@ -10017,7 +10017,7 @@ mkV018 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"ып"+base_2+"қ"+base_3+"лapмын" ; Pl => base_1+"ып"+base_2+"қ"+base_3+"лapмыз" @@ -10043,9 +10043,9 @@ mkV019 : Str -> V ; mkV019 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п жүpмiн" ; @@ -10122,7 +10122,7 @@ mkV019 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -10160,7 +10160,7 @@ mkV019 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтiнмiн" ; @@ -10238,7 +10238,7 @@ mkV019 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -10260,7 +10260,7 @@ mkV019 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмiн" ; Pl => base_1+"pмiз" @@ -10286,9 +10286,9 @@ mkV020 : Str -> V ; mkV020 base = case base of { base_1+"бу" => lin V - { Infinitive = base_1+"бу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"бу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып oтыpмын" ; @@ -10365,7 +10365,7 @@ mkV020 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"пқaнмын" ; @@ -10403,7 +10403,7 @@ mkV020 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"бaтынмын" ; @@ -10481,7 +10481,7 @@ mkV020 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"б" ; @@ -10503,7 +10503,7 @@ mkV020 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"бapмын" ; Pl => base_1+"бapмыз" @@ -10529,9 +10529,9 @@ mkV021 : Str -> V ; mkV021 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып жaтыpмын" ; @@ -10608,7 +10608,7 @@ mkV021 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -10646,7 +10646,7 @@ mkV021 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -10724,7 +10724,7 @@ mkV021 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -10746,7 +10746,7 @@ mkV021 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -10772,9 +10772,9 @@ mkV022 : Str -> V ; mkV022 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ыpмын" ; @@ -10851,7 +10851,7 @@ mkV022 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"қaнмын" ; @@ -10889,7 +10889,7 @@ mkV022 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -10967,7 +10967,7 @@ mkV022 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -10989,7 +10989,7 @@ mkV022 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -11015,9 +11015,9 @@ mkV023 : Str -> V ; mkV023 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп жaтыpмын" ; @@ -11094,7 +11094,7 @@ mkV023 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -11132,7 +11132,7 @@ mkV023 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -11210,7 +11210,7 @@ mkV023 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -11232,7 +11232,7 @@ mkV023 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -11258,9 +11258,9 @@ mkV024 : Str -> V ; mkV024 base = case base of { "жұ"+base_1+"у" => lin V - { Infinitive = "жұ"+base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "жұ"+base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "жұ"+base_1+"ып жaтыpмын" ; @@ -11337,7 +11337,7 @@ mkV024 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "қыды"+base_1+"ғaнмын" ; @@ -11375,7 +11375,7 @@ mkV024 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "жұ"+base_1+"aтынмын" ; @@ -11453,7 +11453,7 @@ mkV024 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "жұ"+base_1 ; @@ -11475,7 +11475,7 @@ mkV024 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "жұ"+base_1+"apмын" ; Pl => "жұ"+base_1+"apмыз" @@ -11501,9 +11501,9 @@ mkV025 : Str -> V ; mkV025 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п oтыpмын" ; @@ -11580,7 +11580,7 @@ mkV025 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -11618,7 +11618,7 @@ mkV025 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтiнмiн" ; @@ -11696,7 +11696,7 @@ mkV025 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -11718,7 +11718,7 @@ mkV025 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмiн" ; Pl => base_1+"pмiз" @@ -11744,9 +11744,9 @@ mkV026 : Str -> V ; mkV026 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п oтыpмын" ; @@ -11823,7 +11823,7 @@ mkV026 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -11861,7 +11861,7 @@ mkV026 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтынмын" ; @@ -11939,7 +11939,7 @@ mkV026 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -11961,7 +11961,7 @@ mkV026 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмын" ; Pl => base_1+"pмыз" @@ -11987,9 +11987,9 @@ mkV027 : Str -> V ; mkV027 base = case base of { base_1+"ю" => lin V - { Infinitive = base_1+"ю" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"ю" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п тұpмын" ; @@ -12066,7 +12066,7 @@ mkV027 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -12104,7 +12104,7 @@ mkV027 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"ятынмын" ; @@ -12182,7 +12182,7 @@ mkV027 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -12204,7 +12204,7 @@ mkV027 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"яpмын" ; Pl => base_1+"яpмыз" @@ -12230,9 +12230,9 @@ mkV028 : Str -> V ; mkV028 base = case base of { "кepeк "+base_1+"у" => lin V - { Infinitive = "кepeк "+base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "кepeк "+base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "кepeк "+base_1+"iп жaтыpмын" ; @@ -12309,7 +12309,7 @@ mkV028 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "кepeк "+base_1+"кeнмiн" ; @@ -12347,7 +12347,7 @@ mkV028 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "кepeк "+base_1+"eтiнмiн" ; @@ -12425,7 +12425,7 @@ mkV028 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "кepeк "+base_1 ; @@ -12447,7 +12447,7 @@ mkV028 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "қaж"+base_1+" бoлapмын" ; Pl => "қaж"+base_1+" бoлapмыз" @@ -12473,9 +12473,9 @@ mkV029 : Str -> V ; mkV029 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"e жaтыpмын" ; @@ -12552,7 +12552,7 @@ mkV029 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -12590,7 +12590,7 @@ mkV029 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -12668,7 +12668,7 @@ mkV029 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -12690,7 +12690,7 @@ mkV029 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -12716,9 +12716,9 @@ mkV030 : Str -> V ; mkV030 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп жaтыpмын" ; @@ -12795,7 +12795,7 @@ mkV030 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"кeнмiн" ; @@ -12833,7 +12833,7 @@ mkV030 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -12911,7 +12911,7 @@ mkV030 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -12933,7 +12933,7 @@ mkV030 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -12959,9 +12959,9 @@ mkV031 : Str -> V ; mkV031 base = case base of { "қaж"+base_1+" бoлу" => lin V - { Infinitive = "қaж"+base_1+" бoлу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "қaж"+base_1+" бoлу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "қaж"+base_1+" бoлып тұpмын" ; @@ -13038,7 +13038,7 @@ mkV031 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "қaж"+base_1+" бoлғaнмын" ; @@ -13076,7 +13076,7 @@ mkV031 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "қaж"+base_1+" бoлaтынмын" ; @@ -13154,7 +13154,7 @@ mkV031 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "қaж"+base_1+" бoл" ; @@ -13176,7 +13176,7 @@ mkV031 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "кepeк "+base_1+"epмiн" ; Pl => "кepeк "+base_1+"epмiз" @@ -13202,9 +13202,9 @@ mkV032 : Str -> V ; mkV032 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п жaтыpмын" ; @@ -13281,7 +13281,7 @@ mkV032 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -13319,7 +13319,7 @@ mkV032 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтынмын" ; @@ -13397,7 +13397,7 @@ mkV032 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -13419,7 +13419,7 @@ mkV032 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмын" ; Pl => base_1+"pмыз" @@ -13445,9 +13445,9 @@ mkV033 : Str -> V ; mkV033 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып тұpмын" ; @@ -13524,7 +13524,7 @@ mkV033 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -13562,7 +13562,7 @@ mkV033 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -13640,7 +13640,7 @@ mkV033 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -13662,7 +13662,7 @@ mkV033 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -13688,9 +13688,9 @@ mkV034 : Str -> V ; mkV034 base = case base of { "қoл"+base_1+base_2@(?+?)+"у" => lin V - { Infinitive = "қoл"+base_1+base_2+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "қoл"+base_1+base_2+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "қoл"+base_1+base_2+"ып жaтыpмын" ; @@ -13767,7 +13767,7 @@ mkV034 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "пaй"+base_1+"aл"+base_2+"ғaнмын" ; @@ -13805,7 +13805,7 @@ mkV034 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "қoл"+base_1+base_2+"aтынмын" ; @@ -13883,7 +13883,7 @@ mkV034 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "қoл"+base_1+base_2 ; @@ -13905,7 +13905,7 @@ mkV034 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "қoл"+base_1+base_2+"apмын" ; Pl => "қoл"+base_1+base_2+"apмыз" @@ -13931,9 +13931,9 @@ mkV035 : Str -> V ; mkV035 base = case base of { base_1+"ю" => lin V - { Infinitive = base_1+"ю" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"ю" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п тұpмын" ; @@ -14010,7 +14010,7 @@ mkV035 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -14048,7 +14048,7 @@ mkV035 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"ятынмын" ; @@ -14126,7 +14126,7 @@ mkV035 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -14148,7 +14148,7 @@ mkV035 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"яpмын" ; Pl => base_1+"яpмыз" @@ -14174,9 +14174,9 @@ mkV036 : Str -> V ; mkV036 base = case base of { "қыды"+base_1+"у" => lin V - { Infinitive = "қыды"+base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "қыды"+base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "қыды"+base_1+"ып жүpмiн" ; @@ -14253,7 +14253,7 @@ mkV036 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "жұ"+base_1+"ғaнмын" ; @@ -14291,7 +14291,7 @@ mkV036 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "қыды"+base_1+"aтынмын" ; @@ -14369,7 +14369,7 @@ mkV036 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "қыды"+base_1 ; @@ -14391,7 +14391,7 @@ mkV036 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "қыды"+base_1+"apмын" ; Pl => "қыды"+base_1+"apмыз" @@ -14417,9 +14417,9 @@ mkV037 : Str -> V ; mkV037 base = case base of { "мaшинaмeн "+base_1+"у" => lin V - { Infinitive = "мaшинaмeн "+base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "мaшинaмeн "+base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"мiн" ; @@ -14496,7 +14496,7 @@ mkV037 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "мaшинaмeн "+base_1+"гeнмiн" ; @@ -14534,7 +14534,7 @@ mkV037 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "мaшинaмeн "+base_1+"eтiнмiн" ; @@ -14612,7 +14612,7 @@ mkV037 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "мaшинaмeн "+base_1 ; @@ -14634,7 +14634,7 @@ mkV037 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "мaшинaмeн "+base_1+"epмiн" ; Pl => "мaшинaмeн "+base_1+"epмiз" @@ -14660,9 +14660,9 @@ mkV038 : Str -> V ; mkV038 base = case base of { "пaй"+base_1+"л"+base_2@(?+?)+"у" => lin V - { Infinitive = "пaй"+base_1+"л"+base_2+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "пaй"+base_1+"л"+base_2+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "пaй"+base_1+"л"+base_2+"ып тұpмын" ; @@ -14739,7 +14739,7 @@ mkV038 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "қoл"+base_1+"нғ"+base_2+"мын" ; @@ -14777,7 +14777,7 @@ mkV038 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "пaй"+base_1+"л"+base_2+"aтынмын" ; @@ -14855,7 +14855,7 @@ mkV038 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "пaй"+base_1+"л"+base_2 ; @@ -14877,7 +14877,7 @@ mkV038 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "пaй"+base_1+"л"+base_2+"apмын" ; Pl => "пaй"+base_1+"л"+base_2+"apмыз" @@ -14903,9 +14903,9 @@ mkV039 : Str -> V ; mkV039 base = case base of { base_1+"iну" => lin V - { Infinitive = base_1+"iну" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"iну" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iнiп тұpмын" ; @@ -14982,7 +14982,7 @@ mkV039 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -15020,7 +15020,7 @@ mkV039 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"iнeтiнмiн" ; @@ -15098,7 +15098,7 @@ mkV039 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"iн" ; @@ -15120,7 +15120,7 @@ mkV039 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -15146,9 +15146,9 @@ mkV040 : Str -> V ; mkV040 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп тұpмын" ; @@ -15225,7 +15225,7 @@ mkV040 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"iнгeнмiн" ; @@ -15263,7 +15263,7 @@ mkV040 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -15341,7 +15341,7 @@ mkV040 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -15363,7 +15363,7 @@ mkV040 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"iнepмiн" ; Pl => base_1+"iнepмiз" @@ -15389,9 +15389,9 @@ mkV041 : Str -> V ; mkV041 base = case base of { base_1+"су" => lin V - { Infinitive = base_1+"су" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"су" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"сiп тұpмын" ; @@ -15468,7 +15468,7 @@ mkV041 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"скeнмiн" ; @@ -15506,7 +15506,7 @@ mkV041 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йтiнмiн" ; @@ -15584,7 +15584,7 @@ mkV041 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"с" ; @@ -15606,7 +15606,7 @@ mkV041 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмiн" ; Pl => base_1+"pмiз" @@ -15632,9 +15632,9 @@ mkV042 : Str -> V ; mkV042 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"п жaтыpмын" ; @@ -15711,7 +15711,7 @@ mkV042 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -15749,7 +15749,7 @@ mkV042 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"сeтiнмiн" ; @@ -15827,7 +15827,7 @@ mkV042 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -15849,7 +15849,7 @@ mkV042 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"сepмiн" ; Pl => base_1+"сepмiз" @@ -15875,9 +15875,9 @@ mkV043 : Str -> V ; mkV043 base = case base of { base_1+"ю" => lin V - { Infinitive = base_1+"ю" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"ю" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"йiп тұpмын" ; @@ -15954,7 +15954,7 @@ mkV043 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"гeнмiн" ; @@ -15992,7 +15992,7 @@ mkV043 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йeтiнмiн" ; @@ -16070,7 +16070,7 @@ mkV043 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -16092,7 +16092,7 @@ mkV043 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"pмiн" ; Pl => base_1+"pмiз" @@ -16118,9 +16118,9 @@ mkV044 : Str -> V ; mkV044 base = case base of { base_1+"бу" => lin V - { Infinitive = base_1+"бу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"бу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып oтыpмын" ; @@ -16197,7 +16197,7 @@ mkV044 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"бқaнмын" ; @@ -16235,7 +16235,7 @@ mkV044 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"бaтынмын" ; @@ -16313,7 +16313,7 @@ mkV044 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"б" ; @@ -16335,7 +16335,7 @@ mkV044 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"бapмын" ; Pl => base_1+"бapмыз" @@ -16361,9 +16361,9 @@ mkV045 : Str -> V ; mkV045 base = case base of { "тeлeфoн "+base_1+"лу" => lin V - { Infinitive = "тeлeфoн "+base_1+"лу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "тeлeфoн "+base_1+"лу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "тeлeфoн "+base_1+"лып тұpмын" ; @@ -16440,7 +16440,7 @@ mkV045 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => "тeлeфoн "+base_1+"лғaнмын" ; @@ -16478,7 +16478,7 @@ mkV045 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"қыpaтынмын" ; @@ -16556,7 +16556,7 @@ mkV045 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "тeлeфoн "+base_1+"л" ; @@ -16578,7 +16578,7 @@ mkV045 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"қыpapмын" ; Pl => base_1+"қыpapмыз" @@ -16604,9 +16604,9 @@ mkV046 : Str -> V ; mkV046 base = case base of { base_1+"ию" => lin V - { Infinitive = base_1+"ию" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"ию" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ип тұpмын" ; @@ -16683,7 +16683,7 @@ mkV046 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"игeнмiн" ; @@ -16721,7 +16721,7 @@ mkV046 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"йeтiнмiн" ; @@ -16799,7 +16799,7 @@ mkV046 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"и" ; @@ -16821,7 +16821,7 @@ mkV046 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"иpмiн" ; Pl => base_1+"иpмiз" @@ -16847,9 +16847,9 @@ mkV047 : Str -> V ; mkV047 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"iп жүpмiн" ; @@ -16926,7 +16926,7 @@ mkV047 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"кeнмiн" ; @@ -16964,7 +16964,7 @@ mkV047 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"eтiнмiн" ; @@ -17042,7 +17042,7 @@ mkV047 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -17064,7 +17064,7 @@ mkV047 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"epмiн" ; Pl => base_1+"epмiз" @@ -17090,9 +17090,9 @@ mkV048 : Str -> V ; mkV048 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"мын" ; @@ -17169,7 +17169,7 @@ mkV048 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ғaнмын" ; @@ -17207,7 +17207,7 @@ mkV048 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -17285,7 +17285,7 @@ mkV048 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -17307,7 +17307,7 @@ mkV048 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -17333,9 +17333,9 @@ mkV049 : Str -> V ; mkV049 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып жaтыpмын" ; @@ -17412,7 +17412,7 @@ mkV049 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"қaнмын" ; @@ -17450,7 +17450,7 @@ mkV049 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -17528,7 +17528,7 @@ mkV049 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -17550,7 +17550,7 @@ mkV049 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -17576,9 +17576,9 @@ mkV050 : Str -> V ; mkV050 base = case base of { base_1+"у" => lin V - { Infinitive = base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ып жaтыpмын" ; @@ -17655,7 +17655,7 @@ mkV050 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"қaнмын" ; @@ -17693,7 +17693,7 @@ mkV050 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"aтынмын" ; @@ -17771,7 +17771,7 @@ mkV050 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1 ; @@ -17793,7 +17793,7 @@ mkV050 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"apмын" ; Pl => base_1+"apмыз" @@ -17819,9 +17819,9 @@ mkV051 : Str -> V ; mkV051 base = case base of { base_1+"у"+base_2@(?+?+?+?+?+?+?+?+?)+"у" => lin V - { Infinitive = base_1+"у"+base_2+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"у"+base_2+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+base_2+"iп жaтыpмын" ; @@ -17898,7 +17898,7 @@ mkV051 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+base_2+"гeнмiн" ; @@ -17936,7 +17936,7 @@ mkV051 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+base_2+"eтiнмiн" ; @@ -18014,7 +18014,7 @@ mkV051 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+base_2 ; @@ -18036,7 +18036,7 @@ mkV051 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+base_2+"epмiн" ; Pl => base_1+base_2+"epмiз" @@ -18062,9 +18062,9 @@ mkV052 : Str -> V ; mkV052 base = case base of { base_1+"қ"+base_2@?+"pу" => lin V - { Infinitive = base_1+"қ"+base_2+"pу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"қ"+base_2+"pу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"қ"+base_2+"pып тұpмын" ; @@ -18141,7 +18141,7 @@ mkV052 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"қ"+base_2+"pғaнмын" ; @@ -18179,7 +18179,7 @@ mkV052 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "тeлeфoн "+base_1+"лaт"+base_2+"нмын" ; @@ -18257,7 +18257,7 @@ mkV052 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"қ"+base_2+"p" ; @@ -18279,7 +18279,7 @@ mkV052 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "тeлeфoн "+base_1+"лapм"+base_2+"н" ; Pl => "тeлeфoн "+base_1+"лapм"+base_2+"з" @@ -18305,9 +18305,9 @@ mkV053 : Str -> V ; mkV053 base = case base of { base_1+"ғу" => lin V - { Infinitive = base_1+"ғу" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = base_1+"ғу" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => base_1+"ғып жaтыpмын" ; @@ -18384,7 +18384,7 @@ mkV053 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"ққaнмын" ; @@ -18422,7 +18422,7 @@ mkV053 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => base_1+"ғaтынмын" ; @@ -18500,7 +18500,7 @@ mkV053 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => base_1+"ғ" ; @@ -18522,7 +18522,7 @@ mkV053 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => base_1+"ғapмын" ; Pl => base_1+"ғapмыз" @@ -18548,9 +18548,9 @@ mkV054 : Str -> V ; mkV054 base = case base of { "шыд"+base_1+"у" => lin V - { Infinitive = "шыд"+base_1+"у" ; - Indicative = { Fut = nonExist ; - Pres = { Progressive = table { + { infinitive = "шыд"+base_1+"у" ; + indicative = { fut = nonExist ; + pres = { progressive = table { Pos => table { P1 => table { Sg => "шыд"+base_1+"п жaтыpмын" ; @@ -18627,7 +18627,7 @@ mkV054 base = } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => base_1+"лғaнмын" ; @@ -18665,7 +18665,7 @@ mkV054 base = } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => "шыд"+base_1+"йтынмын" ; @@ -18743,7 +18743,7 @@ mkV054 base = } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => "шыд"+base_1 ; @@ -18765,7 +18765,7 @@ mkV054 base = } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => "шыд"+base_1+"pмын" ; Pl => "шыд"+base_1+"pмыз" diff --git a/src/kazakh/ResKaz.gf b/src/kazakh/ResKaz.gf index 1f5a0912..1bef15bd 100644 --- a/src/kazakh/ResKaz.gf +++ b/src/kazakh/ResKaz.gf @@ -81,12 +81,12 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str param Polarity = Pos | Neg ; -oper Verb = {Infinitive: Str; Indicative: {Fut: Str; Pres: {Progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}; Past: {Perfect: Polarity => Person => Number => Str; Progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}}; Imperative_Jussive: Polarity => Formality => Number => Str; Subjunctive: Person => Number => Str} ; -- 113 +oper Verb = {infinitive: Str; indicative: {fut: Str; pres: {progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}; past: {perfect: Polarity => Person => Number => Str; progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}}; imperative: Polarity => Formality => Number => Str; subjunctive: Person => Number => Str} ; -- 113 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65,f66,f67,f68,f69,f70,f71,f72,f73,f74,f75,f76,f77,f78,f79,f80,f81,f82,f83,f84,f85,f86,f87,f88,f89,f90,f91,f92,f93,f94,f95,f96,f97,f98 -> - { Infinitive = f1 ; - Indicative = { Fut = f2 ; - Pres = { Progressive = table { + { infinitive = f1 ; + indicative = { fut = f2 ; + pres = { progressive = table { Pos => table { P1 => table { Sg => f3 ; @@ -163,7 +163,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ } } } ; - Past = { Perfect = table { + past = { perfect = table { Pos => table { P1 => table { Sg => f35 ; @@ -201,7 +201,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ } } } ; - Progressive = table { + progressive = table { Pos => table { P1 => table { Sg => f51 ; @@ -279,7 +279,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ } } } ; - Imperative_Jussive = table { + imperative = table { Pos => table { Informal => table { Sg => f83 ; @@ -301,7 +301,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ } } } ; - Subjunctive = table { + subjunctive = table { P1 => table { Sg => f91 ; Pl => f92 From 44acdbd350ee2d36ef91305059bf8c68411ff0a9 Mon Sep 17 00:00:00 2001 From: EkaterinaVoloshina Date: Fri, 10 Apr 2026 15:49:30 +0200 Subject: [PATCH 127/169] fixed fields in armenian --- src/armenian/CatHye.gf | 60 +-- src/armenian/DocumentationHye.gf | 50 +-- src/armenian/MorphoHye.gf | 750 +++++++++++++++---------------- src/armenian/ParadigmsHye.gf | 1 - src/armenian/ResHye.gf | 28 +- 5 files changed, 444 insertions(+), 445 deletions(-) diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf index e7aa3ef4..2da59320 100644 --- a/src/armenian/CatHye.gf +++ b/src/armenian/CatHye.gf @@ -46,7 +46,7 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat Ord = {s : Str} ; lincat PN = {s : Str} ; lincat Predet = {s : Str} ; - lincat Prep = {s : Str; c : Case; lock_Prep : {}; isPre : Bool} ; + lincat Prep = {s : Str; c : Case; lock_Prep : {}} ; lincat Pron = {s : Str} ; lincat QCl = {s : Str} ; lincat QS = {s : Str} ; @@ -60,73 +60,73 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat Subj = {s : Str} ; lincat V = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str} ; lincat V2 = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; c2 : {s : Str; c : Case}} ; lincat V2A = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; lincat V2Q = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; lincat V2S = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; lincat V2V = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; lincat V3 = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; lincat VA = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str} ; lincat VP = {s : Case => Number => Str; conditional : Aspect => Person => Number => Case => Number => Str; - converb : {Imperfective : Case => Number => Str; - FutCon1 : Case => Number => Str; FutCon2 : Case => Number => Str; - Negative : Case => Number => Str; - Perfective : Case => Number => Str; - Simultaneous : Case => Number => Str}; + converb : {imperfective : Case => Number => Str; + futCon1 : Case => Number => Str; FutCon2 : Case => Number => Str; + negative : Case => Number => Str; + perfective : Case => Number => Str; + simultaneous : Case => Number => Str}; imperative : Number => Number => Str; passive : Case => Number => Str; past : Person => Number => Case => Number => Str; @@ -134,29 +134,29 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { subjunctive : Aspect => Person => Number => Case => Number => Str} ; lincat VPSlash = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; lock_V : {}} ; lincat VQ = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str} ; lincat VS = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str} ; lincat VV = {s : Str; causative : Str; conditional : Aspect => Person => Number => Str; - converb : {Imperfective : Str; FutCon1 : Str; FutCon2 : Str; - Negative : Str; Perfective : Str; Simultaneous : Str}; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str} ; diff --git a/src/armenian/DocumentationHye.gf b/src/armenian/DocumentationHye.gf index 855aeda7..7fb787cd 100644 --- a/src/armenian/DocumentationHye.gf +++ b/src/armenian/DocumentationHye.gf @@ -15,50 +15,50 @@ lin paragraph (x.s) ++ heading1 "Converb" ++ frameTable ( - tr (th "Imperfective" ++ td (x.Converb.Imperfective)) ++ - tr (th "Simultaneous" ++ td (x.Converb.Simultaneous)) ++ - tr (th "Perfective" ++ td (x.Converb.Perfective)) ++ - tr (th "Futute I" ++ td (x.Converb.FutCon1)) ++ - tr (th "Futute II" ++ td (x.Converb.FutCon2)) ++ - tr (th "Connegative" ++ td (x.Converb.Negative))) ++ + tr (th "Imperfective" ++ td (x.converb.imperfective)) ++ + tr (th "Simultaneous" ++ td (x.converb.simultaneous)) ++ + tr (th "Perfective" ++ td (x.converb.perfective)) ++ + tr (th "Futute I" ++ td (x.converb.futCon1)) ++ + tr (th "Futute II" ++ td (x.converb.futCon2)) ++ + tr (th "Connegative" ++ td (x.converb.negative))) ++ heading1 "Passive" ++ - paragraph x.Passive ++ + paragraph x.passive ++ heading1 "Participle" ++ frameTable ( - tr (th "Resultative" ++ td (x.Participle ! Resultative)) ++ - tr (th "Subject" ++ td (x.Participle ! Subject))) ++ + tr (th "Resultative" ++ td (x.participle ! Resultative)) ++ + tr (th "Subject" ++ td (x.participle ! Subject))) ++ heading1 "Past" ++ frameTable ( tr (th "" ++ th "Sg" ++ th "Pl") ++ - tr (th "P1" ++ td (x.Past ! P1 ! Sg) ++ td (x.Past ! P1 ! Pl)) ++ - tr (th "P2" ++ td (x.Past ! P2 ! Sg) ++ td (x.Past ! P2 ! Pl)) ++ - tr (th "P3" ++ td (x.Past ! P3 ! Sg) ++ td (x.Past ! P3 ! Pl))) ++ + tr (th "P1" ++ td (x.past ! P1 ! Sg) ++ td (x.past ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.past ! P2 ! Sg) ++ td (x.past ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.past ! P3 ! Sg) ++ td (x.past ! P3 ! Pl))) ++ heading1 "Subjunctive" ++ frameTable ( tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++ tr (intagAttr "th" "rowspan=\"3\"" "Perfect" ++ - th "P1" ++ td (x.Subjunctive ! Perfect ! P1 ! Sg) ++ td (x.Subjunctive ! Perfect ! P1 ! Pl)) ++ - tr (th "P2" ++ td (x.Subjunctive ! Perfect ! P2 ! Sg) ++ td (x.Subjunctive ! Perfect ! P2 ! Pl)) ++ - tr (th "P3" ++ td (x.Subjunctive ! Perfect ! P3 ! Sg) ++ td (x.Subjunctive ! Perfect ! P3 ! Pl)) ++ + th "P1" ++ td (x.subjunctive ! Perfect ! P1 ! Sg) ++ td (x.subjunctive ! Perfect ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.subjunctive ! Perfect ! P2 ! Sg) ++ td (x.subjunctive ! Perfect ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.subjunctive ! Perfect ! P3 ! Sg) ++ td (x.subjunctive ! Perfect ! P3 ! Pl)) ++ tr (intagAttr "th" "rowspan=\"3\"" "Non_Past" ++ - th "P1" ++ td (x.Subjunctive ! Non_Past ! P1 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P1 ! Pl)) ++ - tr (th "P2" ++ td (x.Subjunctive ! Non_Past ! P2 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P2 ! Pl)) ++ - tr (th "P3" ++ td (x.Subjunctive ! Non_Past ! P3 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P3 ! Pl))) ++ + th "P1" ++ td (x.subjunctive ! Non_Past ! P1 ! Sg) ++ td (x.subjunctive ! Non_Past ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.subjunctive ! Non_Past ! P2 ! Sg) ++ td (x.subjunctive ! Non_Past ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.subjunctive ! Non_Past ! P3 ! Sg) ++ td (x.subjunctive ! Non_Past ! P3 ! Pl))) ++ heading1 "Conditional" ++ frameTable ( tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++ tr (intagAttr "th" "rowspan=\"3\"" "Perfect" ++ - th "P1" ++ td (x.Conditional ! Perfect ! P1 ! Sg) ++ td (x.Conditional ! Perfect ! P1 ! Pl)) ++ - tr (th "P2" ++ td (x.Conditional ! Perfect ! P2 ! Sg) ++ td (x.Conditional ! Perfect ! P2 ! Pl)) ++ - tr (th "P3" ++ td (x.Conditional ! Perfect ! P3 ! Sg) ++ td (x.Conditional ! Perfect ! P3 ! Pl)) ++ + th "P1" ++ td (x.conditional ! Perfect ! P1 ! Sg) ++ td (x.conditional ! Perfect ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.conditional ! Perfect ! P2 ! Sg) ++ td (x.conditional ! Perfect ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.conditional ! Perfect ! P3 ! Sg) ++ td (x.conditional ! Perfect ! P3 ! Pl)) ++ tr (intagAttr "th" "rowspan=\"4\"" "Non_Past" ++ - th "P1" ++ td (x.Conditional ! Non_Past ! P1 ! Sg) ++ td (x.Conditional ! Non_Past ! P1 ! Pl)) ++ - tr (th "P2" ++ td (x.Conditional ! Non_Past ! P2 ! Sg) ++ td (x.Conditional ! Non_Past ! P2 ! Pl)) ++ - tr (th "P3" ++ td (x.Conditional ! Non_Past ! P3 ! Sg) ++ td (x.Conditional ! Non_Past ! P3 ! Pl))) ++ + th "P1" ++ td (x.conditional ! Non_Past ! P1 ! Sg) ++ td (x.conditional ! Non_Past ! P1 ! Pl)) ++ + tr (th "P2" ++ td (x.conditional ! Non_Past ! P2 ! Sg) ++ td (x.conditional ! Non_Past ! P2 ! Pl)) ++ + tr (th "P3" ++ td (x.conditional ! Non_Past ! P3 ! Sg) ++ td (x.conditional ! Non_Past ! P3 ! Pl))) ++ heading1 "Imperative" ++ frameTable ( tr (th "Sg" ++ th "Pl") ++ - tr (td (x.Imperative_Jussive ! Sg) ++ td (x.Imperative_Jussive ! Pl))) ; + tr (td (x.imperative ! Sg) ++ td (x.imperative ! Pl))) ; s3=[] } ; lin diff --git a/src/armenian/MorphoHye.gf b/src/armenian/MorphoHye.gf index 747de9dc..c5679a23 100644 --- a/src/armenian/MorphoHye.gf +++ b/src/armenian/MorphoHye.gf @@ -7,8 +7,8 @@ mkV001 base = case base of { base_1+"ել" => lin V { s = base_1+"ել" ; - Causative = base_1+"եցնել" ; - Conditional = table { + causative = base_1+"եցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"եի" ; @@ -23,7 +23,7 @@ mkV001 base = Pl => "կ"+base_1+"եին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"եմ" ; Pl => "կ"+base_1+"ենք" @@ -38,19 +38,19 @@ mkV001 base = } } } ; - Converb = { Imperfective = base_1+"ում" ; - FutCon1 = base_1+"ելու" ; - FutCon2 = base_1+"ելիք" ; - Negative = base_1+"ի" ; - Perfective = base_1+"ել" ; - Simultaneous = base_1+"ելիս" + converb = { imperfective = base_1+"ում" ; + futCon1 =base_1+"ելու" ; + futCon2 = base_1+"ելիք" ; + negative = base_1+"ի" ; + perfective = base_1+"ել" ; + simultaneous = base_1+"ելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ի՛ր" ; Pl => base_1+"ե՛ք" } ; - Passive = base_1+"վել" ; - Past = table { + passive = base_1+"վել" ; + past = table { P1 => table { Sg => base_1+"եցի" ; Pl => base_1+"եցինք" @@ -64,11 +64,11 @@ mkV001 base = Pl => base_1+"եցին" } } ; - Participle = table { + participle = table { Resultative => base_1+"ած" ; Subject => base_1+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"եի" ; @@ -83,7 +83,7 @@ mkV001 base = Pl => base_1+"եին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"եմ" ; Pl => base_1+"ենք" @@ -107,8 +107,8 @@ mkV002 base = case base of { base_1+"ալ" => lin V { s = base_1+"ալ" ; - Causative = base_1+"ացնել" ; - Conditional = table { + causative = base_1+"ացնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"այի" ; @@ -123,7 +123,7 @@ mkV002 base = Pl => "կ"+base_1+"ային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"ամ" ; Pl => "կ"+base_1+"անք" @@ -138,19 +138,19 @@ mkV002 base = } } } ; - Converb = { Imperfective = base_1+"ում" ; - FutCon1 = base_1+"ալու" ; - FutCon2 = base_1+"ալիք" ; - Negative = base_1+"ա" ; - Perfective = base_1+"ացել" ; - Simultaneous = base_1+"ալիս" + converb = { imperfective = base_1+"ում" ; + futCon1 =base_1+"ալու" ; + futCon2 = base_1+"ալիք" ; + negative = base_1+"ա" ; + perfective = base_1+"ացել" ; + simultaneous = base_1+"ալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ա՛" ; Pl => base_1+"ացե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"ացի" ; Pl => base_1+"ացինք" @@ -164,11 +164,11 @@ mkV002 base = Pl => base_1+"ացին" } } ; - Participle = table { + participle = table { Resultative => base_1+"ացած" ; Subject => base_1+"ացող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"այի" ; @@ -183,7 +183,7 @@ mkV002 base = Pl => base_1+"ային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"ամ" ; Pl => base_1+"անք" @@ -207,8 +207,8 @@ mkV003 base = case base of { base_1+"նել" => lin V { s = base_1+"նել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"նեի" ; @@ -223,7 +223,7 @@ mkV003 base = Pl => "կ"+base_1+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"նեմ" ; Pl => "կ"+base_1+"նենք" @@ -238,19 +238,19 @@ mkV003 base = } } } ; - Converb = { Imperfective = base_1+"նում" ; - FutCon1 = base_1+"նելու" ; - FutCon2 = base_1+"նելիք" ; - Negative = base_1+"նի" ; - Perfective = base_1+"րել" ; - Simultaneous = base_1+"նելիս" + converb = { imperfective = base_1+"նում" ; + futCon1 =base_1+"նելու" ; + futCon2 = base_1+"նելիք" ; + negative = base_1+"նի" ; + perfective = base_1+"րել" ; + simultaneous = base_1+"նելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"րո՛ւ" ; Pl => base_1+"րե՛ք" } ; - Passive = base_1+"վել" ; - Past = table { + passive = base_1+"վել" ; + past = table { P1 => table { Sg => base_1+"րի" ; Pl => base_1+"րինք" @@ -264,11 +264,11 @@ mkV003 base = Pl => base_1+"րին" } } ; - Participle = table { + participle = table { Resultative => base_1+"րած" ; Subject => base_1+"նող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"նեի" ; @@ -283,7 +283,7 @@ mkV003 base = Pl => base_1+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"նեմ" ; Pl => base_1+"նենք" @@ -307,8 +307,8 @@ mkV004 base = case base of { base_1+"նալ" => lin V { s = base_1+"նալ" ; - Causative = base_1+"ցնել" ; - Conditional = table { + causative = base_1+"ցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"նայի" ; @@ -323,7 +323,7 @@ mkV004 base = Pl => "կ"+base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"նամ" ; Pl => "կ"+base_1+"նանք" @@ -338,19 +338,19 @@ mkV004 base = } } } ; - Converb = { Imperfective = base_1+"նում" ; - FutCon1 = base_1+"նալու" ; - FutCon2 = base_1+"նալիք" ; - Negative = base_1+"նա" ; - Perfective = base_1+"ցել" ; - Simultaneous = base_1+"նալիս" + converb = { imperfective = base_1+"նում" ; + futCon1 =base_1+"նալու" ; + futCon2 = base_1+"նալիք" ; + negative = base_1+"նա" ; + perfective = base_1+"ցել" ; + simultaneous = base_1+"նալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ցի՛ր" ; Pl => base_1+"ցե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"ցա" ; Pl => base_1+"ցանք" @@ -364,11 +364,11 @@ mkV004 base = Pl => base_1+"ցան" } } ; - Participle = table { + participle = table { Resultative => base_1+"ցած" ; Subject => base_1+"ցող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"նայի" ; @@ -383,7 +383,7 @@ mkV004 base = Pl => base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"նամ" ; Pl => base_1+"նանք" @@ -407,8 +407,8 @@ mkV005 base = case base of { base_1+"ռնալ" => lin V { s = base_1+"ռնալ" ; - Causative = base_1+"րձնել" ; - Conditional = table { + causative = base_1+"րձնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"ռնայի" ; @@ -423,7 +423,7 @@ mkV005 base = Pl => "կ"+base_1+"ռնային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"ռնամ" ; Pl => "կ"+base_1+"ռնանք" @@ -438,19 +438,19 @@ mkV005 base = } } } ; - Converb = { Imperfective = base_1+"ռնում" ; - FutCon1 = base_1+"ռնալու" ; - FutCon2 = base_1+"ռնալիք" ; - Negative = base_1+"ռնա" ; - Perfective = base_1+"րձել" ; - Simultaneous = base_1+"ռնալիս" + converb = { imperfective = base_1+"ռնում" ; + futCon1 =base_1+"ռնալու" ; + futCon2 = base_1+"ռնալիք" ; + negative = base_1+"ռնա" ; + perfective = base_1+"րձել" ; + simultaneous = base_1+"ռնալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"րձի՛ր" ; Pl => base_1+"րձե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"րձեցի" ; Pl => base_1+"րձեցինք" @@ -464,11 +464,11 @@ mkV005 base = Pl => base_1+"րձեցին" } } ; - Participle = table { + participle = table { Resultative => base_1+"րձած" ; Subject => base_1+"րձող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"ռնայի" ; @@ -483,7 +483,7 @@ mkV005 base = Pl => base_1+"ռնային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"ռնամ" ; Pl => base_1+"ռնանք" @@ -507,8 +507,8 @@ mkV006 base = case base of { "երթալ" => lin V { s = "երթալ" ; - Causative = "գնացնել" ; - Conditional = table { + causative = "գնացնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կերթայի" ; @@ -523,7 +523,7 @@ mkV006 base = Pl => "կերթային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կերթամ" ; Pl => "կերթանք" @@ -538,19 +538,19 @@ mkV006 base = } } } ; - Converb = { Imperfective = "երթում" ; - FutCon1 = "երթալու" ; - FutCon2 = "երթալիք" ; - Negative = "երթա" ; - Perfective = "գնացել" ; - Simultaneous = "երթալիս" + converb = { imperfective = "երթում" ; + futCon1 ="երթալու" ; + futCon2 = "երթալիք" ; + negative = "երթա" ; + perfective = "գնացել" ; + simultaneous = "երթալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => "երթա՛" ; Pl => "գնացե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => "գնացի" ; Pl => "գնացինք" @@ -564,11 +564,11 @@ mkV006 base = Pl => "գնացին" } } ; - Participle = table { + participle = table { Resultative => "գնացած" ; Subject => "գնացող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => "երթայի" ; @@ -583,7 +583,7 @@ mkV006 base = Pl => "երթային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "երթամ" ; Pl => "երթանք" @@ -607,8 +607,8 @@ mkV007 base = case base of { "էթալ" => lin V { s = "էթալ" ; - Causative = "գնացնել" ; - Conditional = table { + causative = "գնացնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կէթայի" ; @@ -623,7 +623,7 @@ mkV007 base = Pl => "կէթային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կէթամ" ; Pl => "կէթանք" @@ -638,19 +638,19 @@ mkV007 base = } } } ; - Converb = { Imperfective = "էթում" ; - FutCon1 = "էթալու" ; - FutCon2 = "էթալիք" ; - Negative = "էթա" ; - Perfective = "գնացել" ; - Simultaneous = "էթալիս" + converb = { imperfective = "էթում" ; + futCon1 ="էթալու" ; + futCon2 = "էթալիք" ; + negative = "էթա" ; + perfective = "գնացել" ; + simultaneous = "էթալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => "էթա՛" ; Pl => "գնացե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => "գնացի" ; Pl => "գնացինք" @@ -664,11 +664,11 @@ mkV007 base = Pl => "գնացին" } } ; - Participle = table { + participle = table { Resultative => "գնացած" ; Subject => "գնացող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => "էթայի" ; @@ -683,7 +683,7 @@ mkV007 base = Pl => "էթային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "էթամ" ; Pl => "էթանք" @@ -707,8 +707,8 @@ mkV008 base = case base of { base_1+"նել" => lin V { s = base_1+"նել" ; - Causative = base_1+"ցնել" ; - Conditional = table { + causative = base_1+"ցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"նեի" ; @@ -723,7 +723,7 @@ mkV008 base = Pl => "կ"+base_1+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"նեմ" ; Pl => "կ"+base_1+"նենք" @@ -738,19 +738,19 @@ mkV008 base = } } } ; - Converb = { Imperfective = base_1+"նում" ; - FutCon1 = base_1+"նելու" ; - FutCon2 = base_1+"նելիք" ; - Negative = base_1+"նի" ; - Perfective = base_1+"ել" ; - Simultaneous = base_1+"նելիս" + converb = { imperfective = base_1+"նում" ; + futCon1 =base_1+"նելու" ; + futCon2 = base_1+"նելիք" ; + negative = base_1+"նի" ; + perfective = base_1+"ել" ; + simultaneous = base_1+"նելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ի՛ր" ; Pl => base_1+"ե՛ք" } ; - Passive = base_1+"նվել" ; - Past = table { + passive = base_1+"նվել" ; + past = table { P1 => table { Sg => base_1+"ա" ; Pl => base_1+"անք" @@ -764,11 +764,11 @@ mkV008 base = Pl => base_1+"ան" } } ; - Participle = table { + participle = table { Resultative => base_1+"ած" ; Subject => base_1+"նող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"նեի" ; @@ -783,7 +783,7 @@ mkV008 base = Pl => base_1+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"նեմ" ; Pl => base_1+"նենք" @@ -807,8 +807,8 @@ mkV009 base = case base of { "ըլնել" => lin V { s = "ըլնել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => "կըլնեի" ; @@ -823,7 +823,7 @@ mkV009 base = Pl => "կըլնեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կըլնեմ" ; Pl => "կըլնենք" @@ -838,19 +838,19 @@ mkV009 base = } } } ; - Converb = { Imperfective = "ըլնում" ; - FutCon1 = "ըլնելու" ; - FutCon2 = "ըլնելիք" ; - Negative = "ըլնի" ; - Perfective = "էղել" ; - Simultaneous = "ըլնելիս" + converb = { imperfective = "ըլնում" ; + futCon1 ="ըլնելու" ; + futCon2 = "ըլնելիք" ; + negative = "ըլնի" ; + perfective = "էղել" ; + simultaneous = "ըլնելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => "էղի՛ր" ; Pl => "էղե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => "էղա" ; Pl => "էղանք" @@ -864,11 +864,11 @@ mkV009 base = Pl => "էղան" } } ; - Participle = table { + participle = table { Resultative => "էղած" ; Subject => "ըլնող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => "ըլնեի" ; @@ -883,7 +883,7 @@ mkV009 base = Pl => "ըլնեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "ըլնեմ" ; Pl => "ըլնենք" @@ -907,8 +907,8 @@ mkV010 base = case base of { base_1+"նալ" => lin V { s = base_1+"նալ" ; - Causative = base_1+"ցնել" ; - Conditional = table { + causative = base_1+"ցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"նայի" ; @@ -923,7 +923,7 @@ mkV010 base = Pl => "կ"+base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"նամ" ; Pl => "կ"+base_1+"նանք" @@ -938,19 +938,19 @@ mkV010 base = } } } ; - Converb = { Imperfective = base_1+"նում" ; - FutCon1 = base_1+"նալու" ; - FutCon2 = base_1+"նալիք" ; - Negative = base_1+"նա" ; - Perfective = base_1+"ցել" ; - Simultaneous = base_1+"նալիս" + converb = { imperfective = base_1+"նում" ; + futCon1 =base_1+"նալու" ; + futCon2 = base_1+"նալիք" ; + negative = base_1+"նա" ; + perfective = base_1+"ցել" ; + simultaneous = base_1+"նալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"՛" ; Pl => base_1+"ցե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"ցի" ; Pl => base_1+"ցինք" @@ -964,11 +964,11 @@ mkV010 base = Pl => base_1+"ցին" } } ; - Participle = table { + participle = table { Resultative => base_1+"ցած" ; Subject => base_1+"ցող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"նայի" ; @@ -983,7 +983,7 @@ mkV010 base = Pl => base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"նամ" ; Pl => base_1+"նանք" @@ -1007,8 +1007,8 @@ mkV011 base = case base of { base_1+"ալ" => lin V { s = base_1+"ալ" ; - Causative = base_1+"ացնել" ; - Conditional = table { + causative = base_1+"ացնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"այի" ; @@ -1023,7 +1023,7 @@ mkV011 base = Pl => "կ"+base_1+"ային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"ամ" ; Pl => "կ"+base_1+"անք" @@ -1038,19 +1038,19 @@ mkV011 base = } } } ; - Converb = { Imperfective = base_1+"ում" ; - FutCon1 = base_1+"ալու" ; - FutCon2 = base_1+"ալիք" ; - Negative = base_1+"այ" ; - Perfective = base_1+"ացել" ; - Simultaneous = base_1+"ալիս" + converb = { imperfective = base_1+"ում" ; + futCon1 =base_1+"ալու" ; + futCon2 = base_1+"ալիք" ; + negative = base_1+"այ" ; + perfective = base_1+"ացել" ; + simultaneous = base_1+"ալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ա՛" ; Pl => base_1+"ացէ՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"ացի" ; Pl => base_1+"ացինք" @@ -1064,11 +1064,11 @@ mkV011 base = Pl => base_1+"ացին" } } ; - Participle = table { + participle = table { Resultative => base_1+"ացած" ; Subject => base_1+"ացող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"այի" ; @@ -1083,7 +1083,7 @@ mkV011 base = Pl => base_1+"ային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"ամ" ; Pl => base_1+"անք" @@ -1107,8 +1107,8 @@ mkV012 base = case base of { base_1+"ել" => lin V { s = base_1+"ել" ; - Causative = base_1+"եցնել" ; - Conditional = table { + causative = base_1+"եցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"էի" ; @@ -1123,7 +1123,7 @@ mkV012 base = Pl => "կ"+base_1+"էին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"եմ" ; Pl => "կ"+base_1+"ենք" @@ -1138,19 +1138,19 @@ mkV012 base = } } } ; - Converb = { Imperfective = base_1+"ում" ; - FutCon1 = base_1+"ելու" ; - FutCon2 = base_1+"ելիք" ; - Negative = base_1+"ի" ; - Perfective = base_1+"ել" ; - Simultaneous = base_1+"ելիս" + converb = { imperfective = base_1+"ում" ; + futCon1 =base_1+"ելու" ; + futCon2 = base_1+"ելիք" ; + negative = base_1+"ի" ; + perfective = base_1+"ել" ; + simultaneous = base_1+"ելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ի՛ր" ; Pl => base_1+"է՛ք" } ; - Passive = base_1+"ուել" ; - Past = table { + passive = base_1+"ուել" ; + past = table { P1 => table { Sg => base_1+"եցի" ; Pl => base_1+"եցինք" @@ -1164,11 +1164,11 @@ mkV012 base = Pl => base_1+"եցին" } } ; - Participle = table { + participle = table { Resultative => base_1+"ած" ; Subject => base_1+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"էի" ; @@ -1183,7 +1183,7 @@ mkV012 base = Pl => base_1+"էին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"եմ" ; Pl => base_1+"ենք" @@ -1207,8 +1207,8 @@ mkV013 base = case base of { base_1@?+base_2+"ել" => lin V { s = base_1+base_2+"ել" ; - Causative = base_1+base_2+"եցնել" ; - Conditional = table { + causative = base_1+base_2+"եցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => base_1+"կ"+base_2+"եի" ; @@ -1223,7 +1223,7 @@ mkV013 base = Pl => base_1+"կ"+base_2+"եին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"կ"+base_2+"եմ" ; Pl => base_1+"կ"+base_2+"ենք" @@ -1238,19 +1238,19 @@ mkV013 base = } } } ; - Converb = { Imperfective = base_1+base_2+"ում" ; - FutCon1 = base_1+base_2+"ելու" ; - FutCon2 = base_1+base_2+"ելիք" ; - Negative = base_1+base_2+"ի" ; - Perfective = base_1+base_2+"ել" ; - Simultaneous = base_1+base_2+"ելիս" + converb = { imperfective = base_1+base_2+"ում" ; + futCon1 =base_1+base_2+"ելու" ; + futCon2 = base_1+base_2+"ելիք" ; + negative = base_1+base_2+"ի" ; + perfective = base_1+base_2+"ել" ; + simultaneous = base_1+base_2+"ելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+base_2+"ի՛ր" ; Pl => base_1+base_2+"ե՛ք" } ; - Passive = base_1+base_2+"վել" ; - Past = table { + passive = base_1+base_2+"վել" ; + past = table { P1 => table { Sg => base_1+base_2+"եցի" ; Pl => base_1+base_2+"եցինք" @@ -1264,11 +1264,11 @@ mkV013 base = Pl => base_1+base_2+"եցին" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"ած" ; Subject => base_1+base_2+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"եի" ; @@ -1283,7 +1283,7 @@ mkV013 base = Pl => base_1+base_2+"եին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"եմ" ; Pl => base_1+base_2+"ենք" @@ -1307,8 +1307,8 @@ mkV014 base = case base of { base_1+base_2@(?+?)+"նել" => lin V { s = base_1+base_2+"նել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => base_1+"կ"+base_2+"նեի" ; @@ -1323,7 +1323,7 @@ mkV014 base = Pl => base_1+"կ"+base_2+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"կ"+base_2+"նեմ" ; Pl => base_1+"կ"+base_2+"նենք" @@ -1338,19 +1338,19 @@ mkV014 base = } } } ; - Converb = { Imperfective = base_1+base_2+"նում" ; - FutCon1 = base_1+base_2+"նելու" ; - FutCon2 = base_1+base_2+"նելիք" ; - Negative = base_1+base_2+"նի" ; - Perfective = base_1+base_2+"ել" ; - Simultaneous = base_1+base_2+"նելիս" + converb = { imperfective = base_1+base_2+"նում" ; + futCon1 =base_1+base_2+"նելու" ; + futCon2 = base_1+base_2+"նելիք" ; + negative = base_1+base_2+"նի" ; + perfective = base_1+base_2+"ել" ; + simultaneous = base_1+base_2+"նելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+base_2+"ի՛ր" ; Pl => base_1+base_2+"ե՛ք" } ; - Passive = base_1+base_2+"նվել" ; - Past = table { + passive = base_1+base_2+"նվել" ; + past = table { P1 => table { Sg => base_1+base_2+"ա" ; Pl => base_1+base_2+"անք" @@ -1364,11 +1364,11 @@ mkV014 base = Pl => base_1+base_2+"ան" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"ած" ; Subject => base_1+base_2+"նող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"նեի" ; @@ -1383,7 +1383,7 @@ mkV014 base = Pl => base_1+base_2+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"նեմ" ; Pl => base_1+base_2+"նենք" @@ -1407,8 +1407,8 @@ mkV015 base = case base of { base_1@?+base_2+"նալ" => lin V { s = base_1+base_2+"նալ" ; - Causative = base_1+base_2+"ցնել" ; - Conditional = table { + causative = base_1+base_2+"ցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => base_1+"կ"+base_2+"նայի" ; @@ -1423,7 +1423,7 @@ mkV015 base = Pl => base_1+"կ"+base_2+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"կ"+base_2+"նամ" ; Pl => base_1+"կ"+base_2+"նանք" @@ -1438,19 +1438,19 @@ mkV015 base = } } } ; - Converb = { Imperfective = base_1+base_2+"նում" ; - FutCon1 = base_1+base_2+"նալու" ; - FutCon2 = base_1+base_2+"նալիք" ; - Negative = base_1+base_2+"նա" ; - Perfective = base_1+base_2+"ցել" ; - Simultaneous = base_1+base_2+"նալիս" + converb = { imperfective = base_1+base_2+"նում" ; + futCon1 =base_1+base_2+"նալու" ; + futCon2 = base_1+base_2+"նալիք" ; + negative = base_1+base_2+"նա" ; + perfective = base_1+base_2+"ցել" ; + simultaneous = base_1+base_2+"նալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+base_2+"ցի՛ր" ; Pl => base_1+base_2+"ցե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+base_2+"ցա" ; Pl => base_1+base_2+"ցանք" @@ -1464,11 +1464,11 @@ mkV015 base = Pl => base_1+base_2+"ցան" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"ցած" ; Subject => base_1+base_2+"ցող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"նայի" ; @@ -1483,7 +1483,7 @@ mkV015 base = Pl => base_1+base_2+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"նամ" ; Pl => base_1+base_2+"նանք" @@ -1507,8 +1507,8 @@ mkV016 base = case base of { base_1+base_2@(?+?+?+?)+"ել" => lin V { s = base_1+base_2+"ել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => base_1+"կ"+base_2+"էի" ; @@ -1523,7 +1523,7 @@ mkV016 base = Pl => base_1+"կ"+base_2+"էին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"կ"+base_2+"եմ" ; Pl => base_1+"կ"+base_2+"ենք" @@ -1538,19 +1538,19 @@ mkV016 base = } } } ; - Converb = { Imperfective = base_1+base_2+"ում" ; - FutCon1 = base_1+base_2+"ելու" ; - FutCon2 = base_1+base_2+"ելիք" ; - Negative = base_1+base_2+"ի" ; - Perfective = base_1+base_2+"ել" ; - Simultaneous = base_1+base_2+"ելիս" + converb = { imperfective = base_1+base_2+"ում" ; + futCon1 =base_1+base_2+"ելու" ; + futCon2 = base_1+base_2+"ելիք" ; + negative = base_1+base_2+"ի" ; + perfective = base_1+base_2+"ել" ; + simultaneous = base_1+base_2+"ելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+base_2+"ի՛ր" ; Pl => base_1+base_2+"է՛ք" } ; - Passive = base_1+base_2+"ուել" ; - Past = table { + passive = base_1+base_2+"ուել" ; + past = table { P1 => table { Sg => base_1+base_2+"եցի" ; Pl => base_1+base_2+"եցինք" @@ -1564,11 +1564,11 @@ mkV016 base = Pl => base_1+base_2+"եցին" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"ած" ; Subject => base_1+base_2+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"էի" ; @@ -1583,7 +1583,7 @@ mkV016 base = Pl => base_1+base_2+"էին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"եմ" ; Pl => base_1+base_2+"ենք" @@ -1607,8 +1607,8 @@ mkV017 base = case base of { base_1+base_2@(?+?+?)+"նել" => lin V { s = base_1+base_2+"նել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => base_1+"կ"+base_2+"նեի" ; @@ -1623,7 +1623,7 @@ mkV017 base = Pl => base_1+"կ"+base_2+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"կ"+base_2+"նեմ" ; Pl => base_1+"կ"+base_2+"նենք" @@ -1638,19 +1638,19 @@ mkV017 base = } } } ; - Converb = { Imperfective = base_1+base_2+"նում" ; - FutCon1 = base_1+base_2+"նելու" ; - FutCon2 = base_1+base_2+"նելիք" ; - Negative = base_1+base_2+"նի" ; - Perfective = base_1+base_2+"րել" ; - Simultaneous = base_1+base_2+"նելիս" + converb = { imperfective = base_1+base_2+"նում" ; + futCon1 =base_1+base_2+"նելու" ; + futCon2 = base_1+base_2+"նելիք" ; + negative = base_1+base_2+"նի" ; + perfective = base_1+base_2+"րել" ; + simultaneous = base_1+base_2+"նելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+base_2+"րո՛ւ" ; Pl => base_1+base_2+"րե՛ք" } ; - Passive = base_1+base_2+"վել" ; - Past = table { + passive = base_1+base_2+"վել" ; + past = table { P1 => table { Sg => base_1+base_2+"րի" ; Pl => base_1+base_2+"րինք" @@ -1664,11 +1664,11 @@ mkV017 base = Pl => base_1+base_2+"րին" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"րած" ; Subject => base_1+base_2+"նող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"նեի" ; @@ -1683,7 +1683,7 @@ mkV017 base = Pl => base_1+base_2+"նեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"նեմ" ; Pl => base_1+base_2+"նենք" @@ -1707,8 +1707,8 @@ mkV018 base = case base of { base_1+"ել" => lin V { s = base_1+"ել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => base_1+"կեի" ; @@ -1723,7 +1723,7 @@ mkV018 base = Pl => base_1+"կեին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"կեմ" ; Pl => base_1+"կենք" @@ -1738,19 +1738,19 @@ mkV018 base = } } } ; - Converb = { Imperfective = base_1+"ում" ; - FutCon1 = base_1+"ելու" ; - FutCon2 = base_1+"ելիք" ; - Negative = base_1+"ի" ; - Perfective = base_1+"ել" ; - Simultaneous = base_1+"ելիս" + converb = { imperfective = base_1+"ում" ; + futCon1 =base_1+"ելու" ; + futCon2 = base_1+"ելիք" ; + negative = base_1+"ի" ; + perfective = base_1+"ել" ; + simultaneous = base_1+"ելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ի՛ր" ; Pl => base_1+"ե՛ք" } ; - Passive = base_1+"վել" ; - Past = table { + passive = base_1+"վել" ; + past = table { P1 => table { Sg => base_1+"եցի" ; Pl => base_1+"եցինք" @@ -1764,11 +1764,11 @@ mkV018 base = Pl => base_1+"եցին" } } ; - Participle = table { + participle = table { Resultative => base_1+"ած" ; Subject => base_1+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"եի" ; @@ -1783,7 +1783,7 @@ mkV018 base = Pl => base_1+"եին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"եմ" ; Pl => base_1+"ենք" @@ -1807,8 +1807,8 @@ mkV019 base = case base of { base_1+base_2@(?+?+?)+"ալ" => lin V { s = base_1+base_2+"ալ" ; - Causative = base_1+base_2+"ացնել" ; - Conditional = table { + causative = base_1+base_2+"ացնել" ; + conditional = table { Perfect => table { P1 => table { Sg => base_1+"կ"+base_2+"այի" ; @@ -1823,7 +1823,7 @@ mkV019 base = Pl => base_1+"կ"+base_2+"ային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"կ"+base_2+"ամ" ; Pl => base_1+"կ"+base_2+"անք" @@ -1838,19 +1838,19 @@ mkV019 base = } } } ; - Converb = { Imperfective = base_1+base_2+"ում" ; - FutCon1 = base_1+base_2+"ալու" ; - FutCon2 = base_1+base_2+"ալիք" ; - Negative = base_1+base_2+"ա" ; - Perfective = base_1+base_2+"ացել" ; - Simultaneous = base_1+base_2+"ալիս" + converb = { imperfective = base_1+base_2+"ում" ; + futCon1 =base_1+base_2+"ալու" ; + futCon2 = base_1+base_2+"ալիք" ; + negative = base_1+base_2+"ա" ; + perfective = base_1+base_2+"ացել" ; + simultaneous = base_1+base_2+"ալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+base_2+"ա՛" ; Pl => base_1+base_2+"ացե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+base_2+"ացի" ; Pl => base_1+base_2+"ացինք" @@ -1864,11 +1864,11 @@ mkV019 base = Pl => base_1+base_2+"ացին" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"ացած" ; Subject => base_1+base_2+"ացող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"այի" ; @@ -1883,7 +1883,7 @@ mkV019 base = Pl => base_1+base_2+"ային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"ամ" ; Pl => base_1+base_2+"անք" @@ -1907,8 +1907,8 @@ mkV020 base = case base of { base_1+"նալ" => lin V { s = base_1+"նալ" ; - Causative = base_1+"ցնել" ; - Conditional = table { + causative = base_1+"ցնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"նայի" ; @@ -1923,7 +1923,7 @@ mkV020 base = Pl => "կ"+base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"նամ" ; Pl => "կ"+base_1+"նանք" @@ -1938,19 +1938,19 @@ mkV020 base = } } } ; - Converb = { Imperfective = base_1+"նում" ; - FutCon1 = base_1+"նալու" ; - FutCon2 = base_1+"նալիք" ; - Negative = base_1+"նայ" ; - Perfective = base_1+"ցել" ; - Simultaneous = base_1+"նալիս" + converb = { imperfective = base_1+"նում" ; + futCon1 =base_1+"նալու" ; + futCon2 = base_1+"նալիք" ; + negative = base_1+"նայ" ; + perfective = base_1+"ցել" ; + simultaneous = base_1+"նալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"ցի՛ր" ; Pl => base_1+"ցէ՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"ցայ" ; Pl => base_1+"ցանք" @@ -1964,11 +1964,11 @@ mkV020 base = Pl => base_1+"ցան" } } ; - Participle = table { + participle = table { Resultative => base_1+"ցած" ; Subject => base_1+"ցող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"նայի" ; @@ -1983,7 +1983,7 @@ mkV020 base = Pl => base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"նամ" ; Pl => base_1+"նանք" @@ -2007,8 +2007,8 @@ mkV021 base = case base of { base_1+base_2@(?+?)+"ել" => lin V { s = base_1+base_2+"ել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+base_2+"էի" ; @@ -2023,7 +2023,7 @@ mkV021 base = Pl => "կ"+base_1+base_2+"էին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+base_2+"եմ" ; Pl => "կ"+base_1+base_2+"ենք" @@ -2038,19 +2038,19 @@ mkV021 base = } } } ; - Converb = { Imperfective = base_1+"ւ"+base_2+"մ" ; - FutCon1 = base_1+base_2+"ելու" ; - FutCon2 = base_1+base_2+"ելիք" ; - Negative = base_1+base_2+"ի" ; - Perfective = base_1+base_2+"ել" ; - Simultaneous = base_1+base_2+"ելիս" + converb = { imperfective = base_1+"ւ"+base_2+"մ" ; + futCon1 =base_1+base_2+"ելու" ; + futCon2 = base_1+base_2+"ելիք" ; + negative = base_1+base_2+"ի" ; + perfective = base_1+base_2+"ել" ; + simultaneous = base_1+base_2+"ելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+base_2+"ի՛ր" ; Pl => base_1+base_2+"է՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+base_2+"եցի" ; Pl => base_1+base_2+"եցինք" @@ -2064,11 +2064,11 @@ mkV021 base = Pl => base_1+base_2+"եցին" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"ած" ; Subject => base_1+base_2+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"էի" ; @@ -2083,7 +2083,7 @@ mkV021 base = Pl => base_1+base_2+"էին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"եմ" ; Pl => base_1+base_2+"ենք" @@ -2107,8 +2107,8 @@ mkV022 base = case base of { base_1+"ռնալ" => lin V { s = base_1+"ռնալ" ; - Causative = base_1+"րձնել" ; - Conditional = table { + causative = base_1+"րձնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"ռնայի" ; @@ -2123,7 +2123,7 @@ mkV022 base = Pl => "կ"+base_1+"ռնային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"ռնամ" ; Pl => "կ"+base_1+"ռնանք" @@ -2138,19 +2138,19 @@ mkV022 base = } } } ; - Converb = { Imperfective = base_1+"ռնում" ; - FutCon1 = base_1+"ռնալու" ; - FutCon2 = base_1+"ռնալիք" ; - Negative = base_1+"ռնա" ; - Perfective = base_1+"րձել" ; - Simultaneous = base_1+"ռնալիս" + converb = { imperfective = base_1+"ռնում" ; + futCon1 =base_1+"ռնալու" ; + futCon2 = base_1+"ռնալիք" ; + negative = base_1+"ռնա" ; + perfective = base_1+"րձել" ; + simultaneous = base_1+"ռնալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"րձի՛ր" ; Pl => base_1+"րձե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"րձա" ; Pl => base_1+"րձանք" @@ -2164,11 +2164,11 @@ mkV022 base = Pl => base_1+"րձան" } } ; - Participle = table { + participle = table { Resultative => base_1+"րձած" ; Subject => base_1+"րձող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"ռնայի" ; @@ -2183,7 +2183,7 @@ mkV022 base = Pl => base_1+"ռնային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"ռնամ" ; Pl => base_1+"ռնանք" @@ -2207,8 +2207,8 @@ mkV023 base = case base of { base_1+"նալ" => lin V { s = base_1+"նալ" ; - Causative = base_1+"սնել" ; - Conditional = table { + causative = base_1+"սնել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"նայի" ; @@ -2223,7 +2223,7 @@ mkV023 base = Pl => "կ"+base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"նամ" ; Pl => "կ"+base_1+"նանք" @@ -2238,19 +2238,19 @@ mkV023 base = } } } ; - Converb = { Imperfective = base_1+"նում" ; - FutCon1 = base_1+"նալու" ; - FutCon2 = base_1+"նալիք" ; - Negative = base_1+"նա" ; - Perfective = base_1+"սել" ; - Simultaneous = base_1+"նալիս" + converb = { imperfective = base_1+"նում" ; + futCon1 =base_1+"նալու" ; + futCon2 = base_1+"նալիք" ; + negative = base_1+"նա" ; + perfective = base_1+"սել" ; + simultaneous = base_1+"նալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => nonExist ; Pl => base_1+"սե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"սա" ; Pl => base_1+"սանք" @@ -2264,11 +2264,11 @@ mkV023 base = Pl => base_1+"սան" } } ; - Participle = table { + participle = table { Resultative => base_1+"սած" ; Subject => base_1+"սող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"նայի" ; @@ -2283,7 +2283,7 @@ mkV023 base = Pl => base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"նամ" ; Pl => base_1+"նանք" @@ -2307,8 +2307,8 @@ mkV024 base = case base of { base_1+"նալ" => lin V { s = base_1+"նալ" ; - Causative = base_1+"նել" ; - Conditional = table { + causative = base_1+"նել" ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+"նայի" ; @@ -2323,7 +2323,7 @@ mkV024 base = Pl => "կ"+base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+"նամ" ; Pl => "կ"+base_1+"նանք" @@ -2338,19 +2338,19 @@ mkV024 base = } } } ; - Converb = { Imperfective = base_1+"նում" ; - FutCon1 = base_1+"նալու" ; - FutCon2 = base_1+"նալիք" ; - Negative = base_1+"նա" ; - Perfective = base_1+"ել" ; - Simultaneous = base_1+"նալիս" + converb = { imperfective = base_1+"նում" ; + futCon1 =base_1+"նալու" ; + futCon2 = base_1+"նալիք" ; + negative = base_1+"նա" ; + perfective = base_1+"ել" ; + simultaneous = base_1+"նալիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => nonExist ; Pl => base_1+"ե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+"ա" ; Pl => base_1+"անք" @@ -2364,11 +2364,11 @@ mkV024 base = Pl => base_1+"ան" } } ; - Participle = table { + participle = table { Resultative => base_1+"ած" ; Subject => base_1+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+"նայի" ; @@ -2383,7 +2383,7 @@ mkV024 base = Pl => base_1+"նային" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+"նամ" ; Pl => base_1+"նանք" @@ -2407,8 +2407,8 @@ mkV025 base = case base of { base_1+base_2@?+"ել" => lin V { s = base_1+base_2+"ել" ; - Causative = nonExist ; - Conditional = table { + causative = nonExist ; + conditional = table { Perfect => table { P1 => table { Sg => "կ"+base_1+base_2+"եի" ; @@ -2423,7 +2423,7 @@ mkV025 base = Pl => "կ"+base_1+base_2+"եին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => "կ"+base_1+base_2+"եմ" ; Pl => "կ"+base_1+base_2+"ենք" @@ -2438,19 +2438,19 @@ mkV025 base = } } } ; - Converb = { Imperfective = base_1+base_2+"ում" ; - FutCon1 = base_1+base_2+"ելու" ; - FutCon2 = base_1+base_2+"ելիք" ; - Negative = base_1+base_2+"ի" ; - Perfective = base_1+base_2+"ել" ; - Simultaneous = base_1+base_2+"ելիս" + converb = { imperfective = base_1+base_2+"ում" ; + futCon1 =base_1+base_2+"ելու" ; + futCon2 = base_1+base_2+"ելիք" ; + negative = base_1+base_2+"ի" ; + perfective = base_1+base_2+"ել" ; + simultaneous = base_1+base_2+"ելիս" } ; - Imperative_Jussive = table { + imperative = table { Sg => base_1+"՛"+base_2 ; Pl => base_1+base_2+"ե՛ք" } ; - Passive = nonExist ; - Past = table { + passive = nonExist ; + past = table { P1 => table { Sg => base_1+base_2+"եցի" ; Pl => base_1+base_2+"եցինք" @@ -2464,11 +2464,11 @@ mkV025 base = Pl => base_1+base_2+"եցին" } } ; - Participle = table { + participle = table { Resultative => base_1+base_2+"ած" ; Subject => base_1+base_2+"ող" } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => base_1+base_2+"եի" ; @@ -2483,7 +2483,7 @@ mkV025 base = Pl => base_1+base_2+"եին" } } ; - Non_Past => table { + Non_past => table { P1 => table { Sg => base_1+base_2+"եմ" ; Pl => base_1+base_2+"ենք" diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf index 4687407e..46e4693b 100644 --- a/src/armenian/ParadigmsHye.gf +++ b/src/armenian/ParadigmsHye.gf @@ -477,7 +477,6 @@ oper mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; mkQuant : Str -> Quant = \s -> lin Quant {s=s} ; mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; - mkDet : Str -> Det = \s -> lin Det {s=s} ; mkCard : Str -> Card = \s -> lin Card {s=s} ; mkConj : Str -> Conj = \s -> lin Conj {s=s} ; mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; diff --git a/src/armenian/ResHye.gf b/src/armenian/ResHye.gf index aad80cec..08a7d030 100644 --- a/src/armenian/ResHye.gf +++ b/src/armenian/ResHye.gf @@ -5,12 +5,12 @@ param Person = P1 | P3 | P2 ; param Number = Sg | Pl ; param Case = Nom | Dat | Ablat | Instr | Loc ; param PartType = Resultative | Subject ; -oper Verb = {s: Str; Causative: Str; Conditional: Aspect => Person => Number => Str; Converb: {Imperfective: Str; FutCon1: Str; FutCon2: Str; Negative: Str; Perfective: Str; Simultaneous: Str}; Imperative_Jussive: Number => Str; Passive: Str; Past: Person => Number => Str; Participle: PartType => Str; Subjunctive: Aspect => Person => Number => Str} ; -- 898 +oper Verb = {s: Str; causative: Str; conditional: Aspect => Person => Number => Str; converb: {imperfective: Str; futCon1: Str; futCon2: Str; negative: Str; perfective: Str; simultaneous: Str}; imperative: Number => Str; passive: Str; past: Person => Number => Str; participle: PartType => Str; subjunctive: Aspect => Person => Number => Str} ; -- 898 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43 -> { s = f1 ; - Causative = f2 ; - Conditional = table { + causative = f2 ; + conditional = table { Perfect => table { P1 => table { Sg => f3 ; @@ -40,19 +40,19 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ } } } ; - Converb = { Imperfective = f15 ; - FutCon1 = f16 ; - FutCon2 = f17 ; - Negative = f18 ; - Perfective = f19 ; - Simultaneous = f20 + converb = { imperfective = f15 ; + futCon1 = f16 ; + futCon2 = f17 ; + negative = f18 ; + perfective = f19 ; + simultaneous = f20 } ; - Imperative_Jussive = table { + imperative = table { Sg => f21 ; Pl => f22 } ; - Passive = f23 ; - Past = table { + passive = f23 ; + past = table { P1 => table { Sg => f24 ; Pl => f25 @@ -66,11 +66,11 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ Pl => f29 } } ; - Participle = table { + participle = table { Resultative => f30 ; Subject => f31 } ; - Subjunctive = table { + subjunctive = table { Perfect => table { P1 => table { Sg => f32 ; From d6f3cae141c04cdd1f0af3dde18049b3f44aa472 Mon Sep 17 00:00:00 2001 From: EkaterinaVoloshina Date: Fri, 10 Apr 2026 15:57:46 +0200 Subject: [PATCH 128/169] fixed names of fields --- src/albanian/CatSqi.gf | 157 ++++++++++++++++++++++++++----- src/albanian/DocumentationSqi.gf | 52 +++++----- src/albanian/ResSqi.gf | 6 +- 3 files changed, 161 insertions(+), 54 deletions(-) diff --git a/src/albanian/CatSqi.gf b/src/albanian/CatSqi.gf index b029edc3..b5143981 100644 --- a/src/albanian/CatSqi.gf +++ b/src/albanian/CatSqi.gf @@ -1,25 +1,132 @@ -concrete CatSqi of Cat = CommonX ** open ParamX, Prelude, ResSqi in { - -lincat N = Noun ; -lincat N2 = Noun ** {c2 : Compl} ; -lincat N3 = Noun ** {c2,c3 : Compl} ; -lincat A = Adj ; -lincat A2 = Adj ** {c2 : Compl} ; -lincat V, VA, VV, VS, VQ = Verb ; -lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ; -lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ; -lincat Prep = Compl ; - -lincat Numeral = {s : Str} ; -lincat Digits = {s : Str; n : Number; tail : DTail} ; -lincat Decimal = {s : Str; n : Number; hasDot : Bool} ; - -lincat AP = {s: Species => Case => Gender => Number => Str} ; -lincat CN = Noun ; -lincat Num = {s : Str; n : Number} ; -lincat Quant = {s : Case => Gender => Number => Str; spec : Species} ; -lincat Det = {s : Case => Gender => Str; spec : Species; n : Number} ; -lincat NP = {s: Case => Str; a : Agr} ; -lincat Pron = {s: Case => Str; acc_clit, dat_clit : Str; a : Agr} ; - -} +concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in { + flags + coding = "UTF-8" ; + lincat A = {s : Case => Gender => Number => Str; clit : Bool} ; + lincat A2 = {s : Case => Gender => Number => Str; clit : Bool; + c2 : {s : Str}} ; + lincat ACard = {s : Str} ; + lincat AP = {s : Case => Gender => Number => Str; isPre : Bool} ; + lincat CN = {s : Species => Case => Number => Case => Str; + g : Gender} ; + lincat Card = {s : Str} ; + lincat Cl = {s : Str} ; + lincat ClSlash = {s : Str} ; + lincat Comp = {s : Str} ; + lincat Conj = {s : Str} ; + lincat DAP = {s : Str} ; + lincat Decimal = {s : Str; n : Number; hasDot : Bool} ; + lincat Det = {s : Str; n : Number; sp : Species} ; + lincat Digits = {s : Str; n : Number; tail : DTail} ; + lincat GN = {s : Str} ; + lincat IComp = {s : Str} ; + lincat IDet = {s : Str} ; + lincat IP = {s : Str} ; + lincat IQuant = {s : Str} ; + lincat Imp = {s : Str} ; + lincat LN = {s : Str} ; + lincat N = {s : Species => Case => Number => Str; g : Gender} ; + lincat N2 = {s : Species => Case => Number => Str; g : Gender; + c2 : {s : Str}} ; + lincat N3 = {s : Species => Case => Number => Str; g : Gender; + c2 : {s : Str}; c3 : {s : Str}} ; + lincat NP = {s : Case => Str; g : Gender} ; + lincat Num = {s : Str; n : Number} ; + lincat Numeral = {s : Str} ; + lincat Ord = {s : Str} ; + lincat PN = {s : Str} ; + lincat Predet = {s : Str} ; + lincat Prep = {s : Str} ; + lincat Pron = {s : Case => Str; acc_clit : Str; dat_clit : Str; + a : {gn : GenNum; p : Person}} ; + lincat QCl = {s : Str} ; + lincat QS = {s : Str} ; + lincat Quant = {s : Str; sp : Species} ; + lincat RCl = {s : Str} ; + lincat RP = {s : Str} ; + lincat RS = {s : Str} ; + lincat S = {s : Str} ; + lincat SN = {s : Str} ; + lincat SSlash = {s : Str} ; + lincat Subj = {s : Str} ; + lincat V = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str} ; + lincat V2 = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str; c2 : {s : Str}} ; + lincat V2A = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str; c2 : {s : Str}; + c3 : {s : Str}} ; + lincat V2Q = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str; c2 : {s : Str}} ; + lincat V2S = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str; c2 : {s : Str}} ; + lincat V2V = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str; c2 : {s : Str}; + c3 : {s : Str}} ; + lincat V3 = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str; c2 : {s : Str}; + c3 : {s : Str}} ; + lincat VA = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str} ; + lincat VP = {indicative : Tense => Number => Person => Case => Str; + participle : Case => Str; + pres_optative : Number => Person => Case => Str; + perf_optative : Number => Person => Case => Str; + pres_admirative : Number => Person => Case => Str; + imperf_admirative : Number => Person => Case => Str} ; + lincat VPSlash = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str} ; + lincat VQ = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str} ; + lincat VS = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str} ; + lincat VV = {indicative : Tense => Number => Person => Str; + imperative : Number => Str; participle : Str; + pres_optative : Number => Person => Str; + perf_optative : Number => Person => Str; + pres_admirative : Number => Person => Str; + imperf_admirative : Number => Person => Str} ; +} \ No newline at end of file diff --git a/src/albanian/DocumentationSqi.gf b/src/albanian/DocumentationSqi.gf index ba5c8d78..a6af5f39 100644 --- a/src/albanian/DocumentationSqi.gf +++ b/src/albanian/DocumentationSqi.gf @@ -51,32 +51,32 @@ lin InflectionV = \x -> { t="fl" ; s1=heading1 "Folje" ; s2=frameTable ( - tr (intagAttr "th" "rowspan=\"24\"" "Indicative" ++ intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Pres ! Sg ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Pres ! Sg ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Pres ! Sg ! P3)) ++ - tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Pres ! Pl ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Pres ! Pl ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Pres ! Pl ! P3)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Past" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Past ! Sg ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Past ! Sg ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Past ! Sg ! P3)) ++ - tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Past ! Pl ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Past ! Pl ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Past ! Pl ! P3)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Aorist" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Aorist ! Sg ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Aorist ! Sg ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Aorist ! Sg ! P3)) ++ - tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Aorist ! Pl ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Aorist ! Pl ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Aorist ! Pl ! P3)) ++ - tr (intagAttr "th" "rowspan=\"6\"" "Imperfect" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Imperfect ! Sg ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Imperfect ! Sg ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Imperfect ! Sg ! P3)) ++ - tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Imperfect ! Pl ! P1)) ++ - tr (th "P2" ++ td (x.Indicative ! Imperfect ! Pl ! P2)) ++ - tr (th "P3" ++ td (x.Indicative ! Imperfect ! Pl ! P3)) ++ - tr (intagAttr "th" "rowspan=\"2\"" "Imperative" ++ th "Sg" ++ td (x.Imperative ! Sg)) ++ - tr (th "Pl" ++ td (x.Imperative ! Pl)) ++ + tr (intagAttr "th" "rowspan=\"24\"" "Indicative" ++ intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Pres ! Sg ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Pres ! Sg ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Pres ! Sg ! P3)) ++ + tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Pres ! Pl ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Pres ! Pl ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Pres ! Pl ! P3)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Past" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Past ! Sg ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Past ! Sg ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Past ! Sg ! P3)) ++ + tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Past ! Pl ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Past ! Pl ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Past ! Pl ! P3)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Aorist" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Aorist ! Sg ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Aorist ! Sg ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Aorist ! Sg ! P3)) ++ + tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Aorist ! Pl ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Aorist ! Pl ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Aorist ! Pl ! P3)) ++ + tr (intagAttr "th" "rowspan=\"6\"" "Imperfect" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Imperfect ! Sg ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Imperfect ! Sg ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Imperfect ! Sg ! P3)) ++ + tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Imperfect ! Pl ! P1)) ++ + tr (th "P2" ++ td (x.indicative ! Imperfect ! Pl ! P2)) ++ + tr (th "P3" ++ td (x.indicative ! Imperfect ! Pl ! P3)) ++ + tr (intagAttr "th" "rowspan=\"2\"" "Imperative" ++ th "Sg" ++ td (x.imperative ! Sg)) ++ + tr (th "Pl" ++ td (x.imperative ! Pl)) ++ tr (th "participle" ++ td (x.participle)) ++ tr (intagAttr "th" "rowspan=\"6\"" "pres_optative" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.pres_optative ! Sg ! P1)) ++ tr (th "P2" ++ td (x.pres_optative ! Sg ! P2)) ++ diff --git a/src/albanian/ResSqi.gf b/src/albanian/ResSqi.gf index 1dcebbae..bd4a0f38 100644 --- a/src/albanian/ResSqi.gf +++ b/src/albanian/ResSqi.gf @@ -104,10 +104,10 @@ oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Bool -> Adj = param Tense = Pres | Past | Imperfect | Aorist ; -oper Verb = {Indicative: Tense => Number => Person => Str; Imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str} ; -- 758 +oper Verb = {indicative: Tense => Number => Person => Str; imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str} ; -- 758 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51 -> - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => f1 ; @@ -157,7 +157,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ } } } ; - Imperative = table { + imperative = table { Sg => f25 ; Pl => f26 } ; From b339f7c2fcc8d4da9eaedbb49e9d40dd4f9a4652 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 10 Apr 2026 19:58:11 +0200 Subject: [PATCH 129/169] started with tenses --- src/macedonian/AllMkdAbs.gf | 3 +- src/macedonian/CatMkd.gf | 20 +- src/macedonian/DocumentationMkd.gf | 4 +- src/macedonian/ExtendMkd.gf | 23 ++- src/macedonian/GrammarMkd.gf | 2 +- src/macedonian/LexiconMkd.gf | 9 +- src/macedonian/MorphoMkd.gf | 302 +++++++++++++++++++---------- src/macedonian/ParadigmsMkd.gf | 7 +- src/macedonian/ResMkd.gf | 113 ++++++++++- src/macedonian/SentenceMkd.gf | 37 +++- src/macedonian/StructuralMkd.gf | 4 +- src/macedonian/VerbMkd.gf | 4 +- 12 files changed, 392 insertions(+), 136 deletions(-) diff --git a/src/macedonian/AllMkdAbs.gf b/src/macedonian/AllMkdAbs.gf index a05a7809..80702339 100644 --- a/src/macedonian/AllMkdAbs.gf +++ b/src/macedonian/AllMkdAbs.gf @@ -1,7 +1,8 @@ --# -path=.:../abstract:../common:prelude abstract AllMkdAbs = - Lang + Lang, + Extend ** { } ; diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index be434f61..0d7f183a 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -1,4 +1,8 @@ -concrete CatMkd of Cat = CommonX ** open ResMkd, Prelude in { +concrete CatMkd of Cat = CommonX - [Temp,Tense] ** open ParamX, ResMkd, Prelude in { + +lincat + Temp = {s : Str ; t : ResMkd.Tense ; a : Anteriority} ; + Tense = {s : Str ; t : ResMkd.Tense} ; lincat N = Noun ; lincat N2 = Noun ** {c2 : Compl} ; @@ -9,7 +13,7 @@ lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ; lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ; lincat A = Adj ; lincat A2 = Adj ** {c2 : Compl} ; -lincat Pron = Pron ; +lincat Pron = Pronoun ; lincat Prep = Compl ; lincat Decimal = {s : Str; n : Number; hasDot : Bool} ; lincat Digits = {s : Str; n : Number; tail : DTail} ; @@ -34,18 +38,18 @@ lincat VP = {present : Aspect => Number => Person => Str; aorist : Number => Person => Str; imperfect : Aspect => Number => Person => Str; imperative : Aspect => Number => Str; - participle : {aorist : Aspect => GenNum => Str; perfect : Aspect => Str}} ; + participle : {aorist : Aspect => GenNum => Str; + imperfect : Aspect => GenNum => Str; + perfect : Aspect => Str}} ; lincat VPSlash = {present : Aspect => Number => Person => Str; aorist : Number => Person => Str; imperfect : Aspect => Number => Person => Str; imperative : Aspect => Number => Str; participle : {aorist : Aspect => GenNum => Str; - imperfect : GenNum => Str; perfect : Aspect => Str; - adjectival : Aspect => Str; adverbial : Str}; + imperfect : Aspect => GenNum => Str; + perfect : Aspect => Str}; noun_from_verb : Str; vtype : VType; c2 : Compl} ; -lincat Cl = {present : Aspect => Str; - aorist : Str; - participle : {aorist : Aspect => Str; perfect : Aspect => Str}} ; +lincat Cl = {s : ResMkd.Tense => Anteriority => Polarity => Order => Str} ; lincat RP = {s : GenNum => Str} ; lincat IP = {s : Str} ; lincat Subj = {s : Str} ; diff --git a/src/macedonian/DocumentationMkd.gf b/src/macedonian/DocumentationMkd.gf index da47298c..470ea374 100644 --- a/src/macedonian/DocumentationMkd.gf +++ b/src/macedonian/DocumentationMkd.gf @@ -121,7 +121,7 @@ lin heading3 ("Партицип") ++ adjForms (v.participle.aorist ! Imperfective) ++ tag "br" ++ - adjForms v.participle.imperfect ++ + adjForms (v.participle.imperfect ! Imperfective) ++ heading2 ("Свършен вид") ++ heading3 ("Изявително наклонение") ++ heading4 ("Сегашно време") ++ @@ -134,6 +134,8 @@ lin imperative (v.imperative ! Perfective) ++ heading3 ("Партицип") ++ adjForms (v.participle.aorist ! Perfective) ++ + tag "br" ++ + adjForms (v.participle.imperfect ! Perfective) ++ heading1 ("Именка") ++ v.noun_from_verb ; s3= "" diff --git a/src/macedonian/ExtendMkd.gf b/src/macedonian/ExtendMkd.gf index c7bb2b62..de76c13a 100644 --- a/src/macedonian/ExtendMkd.gf +++ b/src/macedonian/ExtendMkd.gf @@ -1,5 +1,5 @@ --# -path=.:../abstract:../common:prelude -concrete ExtendMkd of Extend = CatMkd ** open ResMkd in { +concrete ExtendMkd of Extend = CatMkd ** open ResMkd, ParadigmsMkd, StructuralMkd in { lin CompoundN n1 n2 = @@ -10,11 +10,11 @@ lin AdvMod => n2.s ! sp ! n ++ n1.rel ! sp ! genNum n2.g n } ; voc : Number => Str - = \\n => ""{-case n1.relType of { - Pref => n1.rel ! Indef ! genNum n2.g n ++ n2.vocative ! n ; - AdjMod => n1.rel ! Indef ! genNum n2.g n ++ n2.vocative ! n ; - AdvMod => n2.vocative ! n ++ n1.rel ! Indef ! genNum n2.g n - }-} + = \\n => case n1.relType of { + Pref => n1.rel ! Indef ! genNum n2.g n ++ n2.vocative ! n ; + AdjMod => n1.rel ! Indef ! genNum n2.g n ++ n2.vocative ! n ; + AdvMod => n2.vocative ! n ++ n1.rel ! Indef ! genNum n2.g n + } in { s = comp ; count_form = comp ! Indef ! Pl ; @@ -23,5 +23,16 @@ lin g = n2.g } ; + iFem_Pron = mkPron "јас" "мене" "ме" "мене" "ми" "мене" "мој" "мојот" "моја" "мојата" "мое" "моето" "мои" "моите" "ми" (GSg Fem) P1 ; + youFem_Pron = mkPron "ти" "тебе" "те" "тебе" "ти" "тебе" "твој" "твојот" "твоја" "твојата" "твое" "твоето" "твои" "твоите" "ти" (GSg Fem) P2 ; + weFem_Pron = we_Pron ; + youPlFem_Pron = youPl_Pron ; + theyFem_Pron = they_Pron ; + youPolFem_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" (GSg Fem) P2 ; + youPolPl_Pron = youPol_Pron ; + youPolPlFem_Pron = youPol_Pron ; + +lin TPastSimple = {s = []} ** {t = VPastSimple} ; --# notpresent + } diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 1d39e8df..85b3eee8 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,2 +1,2 @@ -concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdverbMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextX,StructuralMkd,TenseX ** { +concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { } diff --git a/src/macedonian/LexiconMkd.gf b/src/macedonian/LexiconMkd.gf index eaf015a4..a6db6c86 100644 --- a/src/macedonian/LexiconMkd.gf +++ b/src/macedonian/LexiconMkd.gf @@ -5,7 +5,14 @@ lin airplane_N = mkN001 "авион" ; apple_N = mkN012 "јаболко" ; bad_A = mkA004 "лош" ; - good_A = mkA021 "добар" ; + close_V2 = mkV2 (dualV (mkV "затвара") (mkV "затвори")) ; die_V = dualV (mkV002 "умира") (mkV021 "умре") ; + door_N = mkN008 "врата" ; + factory_N = mkN008 "фабрика" ; + fish_N = mkN "риба" ; + good_A = mkA021 "добар" ; + play_V = mkV001 "игра" ; + man_N = mkN001 "маж" ; + woman_N = mkN "жена" ; } diff --git a/src/macedonian/MorphoMkd.gf b/src/macedonian/MorphoMkd.gf index 7b4db928..3ba71124 100644 --- a/src/macedonian/MorphoMkd.gf +++ b/src/macedonian/MorphoMkd.gf @@ -6864,13 +6864,14 @@ mkV001 base_1 = GSg Neuter => base_1+"ло" ; --guessed GPl => base_1+"ле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - perfect = \\_ => nonExist ; + perfect = \\_ => base_1+"но" ; adjectival = \\_ => base_1+"н" ; adverbial = base_1+"јќи" } ; @@ -6931,7 +6932,8 @@ mkV002 base_1 = GSg Neuter => base_1+"ло" ; --guessed GPl => base_1+"ле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; @@ -6999,7 +7001,8 @@ mkV003 base = GSg Neuter => base_1+"ило" ; --guessed GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7069,7 +7072,8 @@ mkV004 base = GSg Neuter => base_1+"ило" ; --guessed GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7139,13 +7143,14 @@ mkV005 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - perfect = \\_ => nonExist ; + perfect = \\_ => base_1+"ено" ; adjectival = \\_ => base_1+"ен" ; adverbial = base_1+"ејќи" --guessed } ; @@ -7209,7 +7214,8 @@ mkV006 base = GSg Neuter => base_1+"ело" ; --guessed GPl => base_1+"еле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7279,7 +7285,8 @@ mkV007 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7349,7 +7356,8 @@ mkV008 base = GSg Neuter => base_1+"ило" ; --guessed GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; --guessed GSg Fem => base_1+"ела" ; --guessed GSg Neuter => base_1+"ело" ; @@ -7418,7 +7426,8 @@ mkV009 base_1 = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; @@ -7486,7 +7495,8 @@ mkV010 base = GSg Neuter => base_1+"ило" ; --guessed GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7556,7 +7566,8 @@ mkV011 base = GSg Neuter => base_1+"ло" ; --guessed GPl => base_1+"ле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7626,7 +7637,8 @@ mkV012 base = GSg Neuter => base_1+"ло" ; --guessed GPl => base_1+"ле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7695,13 +7707,14 @@ mkV013 base_1 = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - perfect = \\_ => nonExist ; + perfect = \\_ => base_1+"но" ; adjectival = \\_ => base_1+"н" ; adverbial = base_1+"јќи" } ; @@ -7763,7 +7776,8 @@ mkV014 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7833,7 +7847,8 @@ mkV015 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7903,7 +7918,8 @@ mkV016 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -7972,7 +7988,8 @@ mkV017 base_1 = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; @@ -8040,7 +8057,8 @@ mkV018 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"дел" ; GSg Fem => base_1+"дела" ; GSg Neuter => base_1+"дело" ; @@ -8110,7 +8128,8 @@ mkV019 base = GSg Neuter => base_1+"гло" ; GPl => base_1+"гле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"зел" ; GSg Fem => base_1+"зела" ; GSg Neuter => base_1+"зело" ; @@ -8180,7 +8199,8 @@ mkV020 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -8250,7 +8270,8 @@ mkV021 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -8320,7 +8341,8 @@ mkV022 base = GSg Neuter => base_1+"ло" ; --guessed GPl => base_1+"ле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -8390,7 +8412,8 @@ mkV023 base = GSg Neuter => base_1+"ало" ; --guessed GPl => base_1+"але" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -8460,7 +8483,8 @@ mkV024 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -8530,7 +8554,8 @@ mkV025 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"сел" ; GSg Fem => base_1+"села" ; GSg Neuter => base_1+"село" ; @@ -8600,7 +8625,8 @@ mkV026 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"дел" ; GSg Fem => base_1+"дела" ; GSg Neuter => base_1+"дело" ; @@ -8670,7 +8696,8 @@ mkV027 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"тел" ; GSg Fem => base_1+"тела" ; GSg Neuter => base_1+"тело" ; @@ -8740,7 +8767,8 @@ mkV028 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -8810,7 +8838,8 @@ mkV029 base = GSg Neuter => base_1+"кло" ; GPl => base_1+"кле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"чел" ; GSg Fem => base_1+"чела" ; GSg Neuter => base_1+"чело" ; @@ -8880,7 +8909,8 @@ mkV030 base = GSg Neuter => base_1+"кло" ; GPl => base_1+"кле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"чеел" ; GSg Fem => base_1+"чеела" ; GSg Neuter => base_1+"чеело" ; @@ -8950,7 +8980,8 @@ mkV031 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9020,7 +9051,8 @@ mkV032 base = GSg Neuter => base_1+"ило" ; --guessed GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9090,7 +9122,8 @@ mkV033 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9160,7 +9193,8 @@ mkV034 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9230,7 +9264,8 @@ mkV035 base = GSg Neuter => base_1+"ало" ; --guessed GPl => base_1+"але" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9300,7 +9335,8 @@ mkV036 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9370,7 +9406,8 @@ mkV037 base = GSg Neuter => base_1+base_2+"ало" ; GPl => base_1+base_2+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"е"+base_2+"ел" ; GSg Fem => base_1+"е"+base_2+"ела" ; GSg Neuter => base_1+"е"+base_2+"ело" ; @@ -9440,7 +9477,8 @@ mkV038 base = GSg Neuter => base_1+"гло" ; GPl => base_1+"гле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"зел" ; GSg Fem => base_1+"зела" ; GSg Neuter => base_1+"зело" ; @@ -9510,7 +9548,8 @@ mkV039 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9580,7 +9619,8 @@ mkV040 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9650,7 +9690,8 @@ mkV041 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -9720,7 +9761,8 @@ mkV042 base = GSg Neuter => base_1+base_2+"ало" ; GPl => base_1+base_2+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"о"+base_2+"ел" ; GSg Fem => base_1+"о"+base_2+"ела" ; GSg Neuter => base_1+"о"+base_2+"ело" ; @@ -9790,7 +9832,8 @@ mkV043 base = GSg Neuter => base_1+"ало" ; --guessed GPl => base_1+"але" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; --guessed GSg Fem => base_1+"ела" ; --guessed GSg Neuter => base_1+"ело" ; @@ -9859,7 +9902,8 @@ mkV044 base_1 = GSg Neuter => base_1+"ло" ; --guessed GPl => base_1+"ле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; @@ -9927,7 +9971,8 @@ mkV045 base = GSg Neuter => base_1+"шло" ; GPl => base_1+"шле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"дел" ; GSg Fem => base_1+"дела" ; GSg Neuter => base_1+"дело" ; @@ -9997,7 +10042,8 @@ mkV046 base = GSg Neuter => nonExist ; GPl => nonExist } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -10067,7 +10113,8 @@ mkV047 base = GSg Neuter => base_1+"ало" ; --guessed GPl => base_1+"але" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; --guessed GSg Fem => base_1+"ела" ; --guessed GSg Neuter => base_1+"ело" ; @@ -10137,7 +10184,8 @@ mkV048 base = GSg Neuter => base_1+"ло" ; --guessed GPl => base_1+"ле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -10207,7 +10255,8 @@ mkV049 base = GSg Neuter => base_1+"јало" ; --guessed GPl => base_1+"јале" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -10277,7 +10326,8 @@ mkV050 base = GSg Neuter => base_1+base_2+"ло" ; GPl => base_1+base_2+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+base_2+"л" ; GSg Fem => base_1+base_2+"ла" ; GSg Neuter => base_1+base_2+"ло" ; @@ -10346,7 +10396,8 @@ mkV051 base_1 = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; @@ -10414,7 +10465,8 @@ mkV052 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -10484,7 +10536,8 @@ mkV053 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; --guessed GSg Fem => base_1+"ела" ; --guessed GSg Neuter => base_1+"ело" ; @@ -10554,7 +10607,8 @@ mkV054 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -10623,7 +10677,8 @@ mkV055 base_1 = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"л" ; GSg Fem => base_1+"ла" ; GSg Neuter => base_1+"ло" ; @@ -10691,7 +10746,8 @@ mkV056 base = GSg Neuter => base_1+"шло" ; GPl => base_1+"шле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"јдел" ; GSg Fem => base_1+"јдела" ; GSg Neuter => base_1+"јдело" ; @@ -10761,7 +10817,8 @@ mkV057 base = GSg Neuter => base_1+"ило" ; --guessed GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -10831,7 +10888,8 @@ mkV058 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -10901,7 +10959,8 @@ mkV059 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"мел" ; GSg Fem => base_1+"мела" ; GSg Neuter => base_1+"мело" ; @@ -10971,7 +11030,8 @@ mkV060 base = GSg Neuter => base_1+"јало" ; GPl => base_1+"јале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11041,7 +11101,8 @@ mkV061 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; --guessed GSg Fem => base_1+"ела" ; --guessed GSg Neuter => base_1+"ело" ; @@ -11111,7 +11172,8 @@ mkV062 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11181,7 +11243,8 @@ mkV063 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11251,7 +11314,8 @@ mkV064 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11321,7 +11385,8 @@ mkV065 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11391,7 +11456,8 @@ mkV066 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11461,7 +11527,8 @@ mkV067 base = GSg Neuter => base_1+base_2+"ало" ; GPl => base_1+base_2+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"те"+base_2+"ел" ; GSg Fem => base_1+"те"+base_2+"ела" ; GSg Neuter => base_1+"те"+base_2+"ело" ; @@ -11531,7 +11598,8 @@ mkV068 base = GSg Neuter => base_1+"јало" ; GPl => base_1+"јале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11601,7 +11669,8 @@ mkV069 base = GSg Neuter => base_1+"шло" ; GPl => base_1+"шле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"јдел" ; GSg Fem => base_1+"јдела" ; GSg Neuter => base_1+"јдело" ; @@ -11671,7 +11740,8 @@ mkV070 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -11741,7 +11811,8 @@ mkV071 base = GSg Neuter => base_1+"кало" ; GPl => base_1+"кале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"чел" ; GSg Fem => base_1+"чела" ; GSg Neuter => base_1+"чело" ; @@ -11811,7 +11882,8 @@ mkV072 base = GSg Neuter => base_1+"кало" ; GPl => base_1+"кале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"чел" ; GSg Fem => base_1+"чела" ; GSg Neuter => base_1+"чело" ; @@ -11881,7 +11953,8 @@ mkV073 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"иел" ; GSg Fem => base_1+"иела" ; GSg Neuter => base_1+"иело" ; @@ -11951,7 +12024,8 @@ mkV074 base = GSg Neuter => base_1+"ало" ; GPl => base_1+"але" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"иел" ; GSg Fem => base_1+"иела" ; GSg Neuter => base_1+"иело" ; @@ -12021,7 +12095,8 @@ mkV075 base = GSg Neuter => base_1+"ало" ; GPl => nonExist } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => nonExist ; GSg Fem => nonExist ; GSg Neuter => base_1+"ело" ; @@ -12091,7 +12166,8 @@ mkV076 base = GSg Neuter => base_1+"јало" ; GPl => base_1+"јале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -12161,7 +12237,8 @@ mkV077 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -12231,7 +12308,8 @@ mkV078 base = GSg Neuter => base_1+"ело" ; GPl => base_1+"еле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"иел" ; GSg Fem => base_1+"иела" ; GSg Neuter => base_1+"иело" ; @@ -12301,7 +12379,8 @@ mkV079 base = GSg Neuter => base_1+"л"+base_2+"ло" ; GPl => base_1+"л"+base_2+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+base_2+"лел" ; GSg Fem => base_1+base_2+"лела" ; GSg Neuter => base_1+base_2+"лело" ; @@ -12371,7 +12450,8 @@ mkV080 base = GSg Neuter => base_1+"јало" ; GPl => base_1+"јале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -12441,7 +12521,8 @@ mkV081 base = GSg Neuter => base_1+"ало" ; GPl => nonExist } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => nonExist ; GSg Fem => nonExist ; GSg Neuter => base_1+"ело" ; @@ -12511,7 +12592,8 @@ mkV082 base = GSg Neuter => base_1+"гло" ; GPl => base_1+"гле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"жел" ; GSg Fem => base_1+"жела" ; GSg Neuter => base_1+"жело" ; @@ -12581,7 +12663,8 @@ mkV083 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" --guessed } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; --guessed GSg Fem => base_1+"ела" ; --guessed GSg Neuter => base_1+"ело" ; @@ -12651,7 +12734,8 @@ mkV084 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -12721,7 +12805,8 @@ mkV085 base = GSg Neuter => base_1+"ило" ; GPl => base_1+"иле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -12791,7 +12876,8 @@ mkV086 base = GSg Neuter => base_1+"гло" ; GPl => base_1+"гле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"жел" ; GSg Fem => base_1+"жела" ; GSg Neuter => base_1+"жело" ; @@ -12861,7 +12947,8 @@ mkV087 base = GSg Neuter => base_1+"шло" ; GPl => base_1+"шле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"дел" ; GSg Fem => base_1+"дела" ; GSg Neuter => base_1+"дело" ; @@ -12931,7 +13018,8 @@ mkV088 base = GSg Neuter => base_1+"кло" ; GPl => base_1+"кле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"чел" ; GSg Fem => base_1+"чела" ; GSg Neuter => base_1+"чело" ; @@ -13001,7 +13089,8 @@ mkV089 base = GSg Neuter => base_1+base_2+"фи"+base_3+"ло" ; GPl => base_1+base_2+"фи"+base_3+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+base_2+"фи"+base_3+"л" ; GSg Fem => base_1+base_2+"фи"+base_3+"ла" ; GSg Neuter => base_1+base_2+"фи"+base_3+"ло" ; @@ -13070,7 +13159,8 @@ mkV090 base_1 = GSg Neuter => base_1+"ло" ; --guessed GPl => nonExist } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => nonExist ; GSg Fem => nonExist ; GSg Neuter => base_1+"ло" ; @@ -13137,7 +13227,8 @@ mkV091 base_1 = GSg Neuter => base_1+"ло" ; --guessed GPl => nonExist } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => nonExist ; GSg Fem => nonExist ; GSg Neuter => base_1+"ло" ; @@ -13205,7 +13296,8 @@ mkV092 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"тел" ; GSg Fem => base_1+"тела" ; GSg Neuter => base_1+"тело" ; @@ -13275,7 +13367,8 @@ mkV093 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => "и"+base_1+"тел" ; GSg Fem => "и"+base_1+"тела" ; GSg Neuter => "и"+base_1+"тело" ; @@ -13345,7 +13438,8 @@ mkV094 base = GSg Neuter => base_1+"ло" ; GPl => base_1+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -13415,7 +13509,8 @@ mkV097 base = GSg Neuter => base_1+"гало" ; GPl => base_1+"гале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"жел" ; GSg Fem => base_1+"жела" ; GSg Neuter => base_1+"жело" ; @@ -13485,7 +13580,8 @@ mkV098 base = GSg Neuter => base_1+"и"+base_2+"ло" ; GPl => base_1+"и"+base_2+"ле" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"и"+base_2+"л" ; GSg Fem => base_1+"и"+base_2+"ла" ; GSg Neuter => base_1+"и"+base_2+"ло" ; @@ -13555,7 +13651,8 @@ mkV099 base = GSg Neuter => base_1+"јало" ; GPl => base_1+"јале" } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => base_1+"ел" ; GSg Fem => base_1+"ела" ; GSg Neuter => base_1+"ело" ; @@ -13624,7 +13721,8 @@ mkV101 base_1 = GSg Neuter => base_1+"ло" ; GPl => nonExist } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => nonExist ; GSg Fem => nonExist ; GSg Neuter => base_1+"ло" ; @@ -15376,7 +15474,7 @@ mkAdv base_1 = { s = base_1 } ; -mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> GenNum -> Person -> Pron = +mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> GenNum -> Person -> Pronoun = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,g,p -> { s = table { RSubj => f1 ; diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index 224bf14c..d5db051d 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1073,7 +1073,10 @@ dualV : V -> V -> V = \impf,perf -> lin V Imperfective => impf.participle.aorist ! Imperfective ; Perfective => perf.participle.aorist ! Perfective } ; - imperfect = impf.participle.imperfect ; + imperfect = table { + Imperfective => impf.participle.imperfect ! Imperfective ; + Perfective => perf.participle.imperfect ! Perfective + } ; perfect = table { Imperfective => impf.participle.perfect ! Imperfective ; Perfective => perf.participle.perfect ! Perfective @@ -1095,7 +1098,7 @@ compoundV = overload { imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ s ; imperative = \\a,n => v.imperative ! a ! n ++ s ; participle = { aorist = \\a,gn => v.participle.aorist ! a ! gn ++ s ; - imperfect = \\gn => v.participle.imperfect ! gn ++ s ; + imperfect = \\a,gn => v.participle.imperfect ! a ! gn ++ s ; perfect = \\a => v.participle.perfect ! a ++ s ; adjectival = \\a => v.participle.adjectival ! a ++ s ; adverbial = v.participle.adverbial diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 27f41990..34927986 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -1,10 +1,9 @@ -resource ResMkd = ParamX [DTail,T1,T2,T3,inc] ** open Prelude in { +resource ResMkd = ParamX - [Tense] ** open Prelude in { oper Compl = {s : Str} ; param Species = Indef | Def Distance ; param Distance = Unspecified | Distal | Proximal ; -param Number = Sg | Pl ; param NRelType = Pref | AdjMod | AdvMod ; param Gender = Masc | Fem | Neuter ; oper Noun = {s: Species => Number => Str; count_form: Str; vocative: Number => Str; rel: Species => GenNum => Str; relType : NRelType; g: Gender} ; -- 24855 @@ -40,10 +39,18 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun = param Aspect = Imperfective | Perfective ; -param Person = P1 | P3 | P2 ; param GenNum = GSg Gender | GPl ; param VType = VNormal | VMedial Case ; -oper Verb = {present: Aspect => Number => Person => Str; aorist: Number => Person => Str; imperfect: Aspect => Number => Person => Str; imperative: Aspect => Number => Str; participle: {aorist: Aspect => GenNum => Str; imperfect: GenNum => Str; perfect: Aspect => Str; adjectival: Aspect => Str; adverbial: Str}; noun_from_verb: Str; vtype: VType} ; -- 8174 + Tense = VPresent + | VPastSimple --# notpresent + | VPastImperfect --# notpresent + | VFut --# notpresent + | VCond --# notpresent + ; + + Order = Main | Quest ; + +oper Verb = {present: Aspect => Number => Person => Str; aorist: Number => Person => Str; imperfect: Aspect => Number => Person => Str; imperative: Aspect => Number => Str; participle: {aorist: Aspect => GenNum => Str; imperfect: Aspect => GenNum => Str; perfect: Aspect => Str; adjectival: Aspect => Str; adverbial: Str}; noun_from_verb: Str; vtype: VType} ; -- 8174 oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32 -> { present = \\_ => @@ -96,7 +103,8 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : GSg Neuter => f23 ; GPl => f24 } ; - imperfect = table { + imperfect = \\_ => + table { GSg Masc => f25 ; GSg Fem => f26 ; GSg Neuter => f27 ; @@ -154,7 +162,7 @@ oper mkAdv : Str -> Adv = param Case = Acc | Dat ; param Role = RSubj | RObj Case | RPrep ; -oper Pron = {s : Role => Str; clitic : Case => Str; g : GenNum; p : Person} ; +oper Pronoun = {s : Role => Str; clitic : Case => Str; g : GenNum; p : Person} ; genNum : Gender -> Number -> GenNum = \g,n -> case n of { @@ -162,4 +170,97 @@ genNum : Gender -> Number -> GenNum = \g,n -> Pl => GPl } ; +auxBe = { + present : Number => Person => Str + = table { + Sg => table { + P1 => "сум" ; + P2 => "си" ; + P3 => "е" + } ; + Pl => table { + P1 => "сме" ; + P2 => "сте" ; + P3 => "се" + } + } ; + imperfect : Number => Person => Str + = table { + Sg => table { + P1 => "бев" ; + P2 => "беше" ; + P3 => "беше" + } ; + Pl => table { + P1 => "бевме" ; + P2 => "бевте" ; + P3 => "беа" + } + } ; + imperative : Number => Str = + table { + Sg => "биди" ; + Pl => "бидете" + } ; + participle = { + aorist : GenNum => Str + = table { + GSg Masc => "бил" ; + GSg Fem => "била" ; + GSg Neuter => "било" ; + GPl => "биле" + } ; + imperfect : GenNum => Str + = table { + GSg Masc => "бидел" ; + GSg Fem => "бидела" ; + GSg Neuter => "бидело" ; + GPl => "биделе" + } + } +} ; + +auxHave = { + present : Number => Person => Str + = table { + Sg => table { + P1 => "имам" ; + P2 => "имаш" ; + P3 => "има" + } ; + Pl => table { + P1 => "имаме" ; + P2 => "имате" ; + P3 => "имаат" + } + } ; + imperfect : Number => Person => Str + = table { + Sg => table { + P1 => "имав" ; + P2 => "имаше" ; + P3 => "имаше" + } ; + Pl => table { + P1 => "имавме" ; + P2 => "имавте" ; + P3 => "имаа" + } + } ; + imperative : Number => Str = + table { + Sg => "имај" ; + Pl => "имајте" + } ; + participle = { + imperfect : GenNum => Str + = table { + GSg Masc => "имал" ; + GSg Fem => "имала" ; + GSg Neuter => "имало" ; + GPl => "имале" + } + } +} ; + } diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index 77129147..31e1a3b8 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -1,13 +1,40 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { - lin PredVP np vp = +lin PredVP np vp = let n = case np.g of { GSg _ => Sg ; GPl => Pl } - in {present = \\a => np.s ! RSubj ++ vp.present ! a ! n ! np.p ; - aorist = np.s ! RSubj ++ vp.aorist ! n ! np.p ; - participle = {aorist = \\a => np.s ! RSubj ++ vp.participle.aorist ! a ! np.g; - perfect = \\a => np.s ! RSubj ++ vp.participle.perfect ! a}} ; + in {s = \\t,a,p,o => + case of { + => np.s ! RSubj ++ neg ++ vp.present ! Imperfective ! n ! np.p ; + => np.s ! RSubj ++ neg ++ auxBe.present ! n ! np.p ++ vp.participle.imperfect ! Perfective ! np.g ; + => np.s ! RSubj ++ neg ++ vp.aorist ! n ! np.p ; + => np.s ! RSubj ++ neg ++ auxBe.imperfect ! n ! np.p ++ vp.participle.imperfect ! Perfective ! np.g ; + => np.s ! RSubj ++ neg ++ vp.imperfect ! Perfective ! n ! np.p ; + => np.s ! RSubj ++ neg ++ auxBe.imperfect ! n ! np.p ++ vp.participle.imperfect ! Perfective ! np.g ; + => np.s ! RSubj ++ fut ++ vp.present ! Perfective ! n ! np.p ; + => np.s ! RSubj ++ fut ++ auxHave.present ! n ! np.p ++ vp.participle.perfect ! Perfective ; + => np.s ! RSubj ++ neg ++ "би" ++ vp.participle.imperfect ! Perfective ! np.g ; + => np.s ! RSubj ++ neg ++ "би" ++ auxHave.participle.imperfect ! np.g ++ vp.participle.perfect ! Perfective + } where { + neg = case p of { + Pos => "" ; + Neg => "не" + } ; + fut = case p of { + Pos => "ке" ; + Neg => "нема да" + } ; + li = case o of { + Main => "" ; + Quest => "ли" + } + } + } ; + + UseCl t p cl = { + s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main + } ; } diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf index 0db5d8da..02a95db7 100644 --- a/src/macedonian/StructuralMkd.gf +++ b/src/macedonian/StructuralMkd.gf @@ -3,8 +3,8 @@ concrete StructuralMkd of Structural = CatMkd ** open ResMkd,MorphoMkd in { lin i_Pron = mkPron "јас" "мене" "ме" "мене" "ми" "мене" "мој" "мојот" "моја" "мојата" "мое" "моето" "мои" "моите" "ми" (GSg Masc) P1 ; lin youSg_Pron = mkPron "ти" "тебе" "те" "тебе" "ти" "тебе" "твој" "твојот" "твоја" "твојата" "твое" "твоето" "твои" "твоите" "ти" (GSg Masc) P2 ; lin he_Pron = mkPron "тој" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" (GSg Masc) P3 ; -lin she_Pron = mkPron "таа" "неа" "ја" "нејзе" "ѝ" "неа" "нејзин" "нејзиниот" "нејзина" "нејзината" "нејзино" "нејзиното" "нејзини" "нејзините" "ѝ" (GSg Masc) P3 ; -lin it_Pron = mkPron "тоа" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" (GSg Masc) P3 ; +lin she_Pron = mkPron "таа" "неа" "ја" "нејзе" "ѝ" "неа" "нејзин" "нејзиниот" "нејзина" "нејзината" "нејзино" "нејзиното" "нејзини" "нејзините" "ѝ" (GSg Fem) P3 ; +lin it_Pron = mkPron "тоа" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" (GSg Neuter) P3 ; lin we_Pron = mkPron "ние" "нас" "нѐ" "нам" "ни" "нас" "наш" "нашиот" "наша" "нашата" "наше" "нашето" "наши" "нашите" "ни" GPl P1 ; lin youPl_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" GPl P2 ; lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" (GSg Masc) P2 ; diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index 5352a466..e989b00a 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -1,5 +1,6 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { + lin UseV v = v ; lin ComplSlash vps np = {present = \\a,n,p => vps.present ! a ! n ! p ++ np.s ! RObj Acc ; @@ -7,7 +8,8 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { imperfect = \\a,n,p => vps.imperfect ! a ! n ! p ++ np.s ! RObj Acc; imperative = \\a,n => vps.imperative ! a ! n ++ np.s ! RObj Acc; participle = {aorist = \\a,gn => vps.participle.aorist ! a ! gn ++ np.s ! RObj Acc; - perfect = \\a => vps.participle.perfect ! a ++ np.s ! RObj Acc}} ; + perfect = \\a => vps.participle.perfect ! a ++ np.s ! RObj Acc; + imperfect = \\a,gn => vps.participle.imperfect ! a ! gn ++ np.s ! RObj Acc}} ; lin SlashV2a v = v ; } From 401ac1f954daf0d60bd675d6e648419504654813 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 08:45:52 +0200 Subject: [PATCH 130/169] added missing files --- src/macedonian/IdiomMkd.gf | 13 +++++++++++++ src/macedonian/MorphoMkd.gf | 5 +---- src/macedonian/ResMkd.gf | 9 ++++++++- src/macedonian/TenseMkd.gf | 10 ++++++++++ src/macedonian/TextMkd.gf | 7 +++++++ 5 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 src/macedonian/IdiomMkd.gf create mode 100644 src/macedonian/TenseMkd.gf create mode 100644 src/macedonian/TextMkd.gf diff --git a/src/macedonian/IdiomMkd.gf b/src/macedonian/IdiomMkd.gf new file mode 100644 index 00000000..b54b46ab --- /dev/null +++ b/src/macedonian/IdiomMkd.gf @@ -0,0 +1,13 @@ +concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd in { + +lin ProgrVP vp = { + present = \\a,n,p => vp.present ! Imperfective ! n ! p ; + aorist = vp.aorist ; + imperfect = \\a,n,p => vp.imperfect ! Imperfective ! n ! p ; + imperative = \\a,n => vp.imperative ! Imperfective ! n ; + participle = {aorist = \\a,gn => vp.participle.aorist ! Imperfective ! gn ; + perfect = \\a => vp.participle.perfect ! Imperfective ; + imperfect = \\a => vp.participle.imperfect ! Imperfective} + } ; + +} diff --git a/src/macedonian/MorphoMkd.gf b/src/macedonian/MorphoMkd.gf index 3ba71124..605b7497 100644 --- a/src/macedonian/MorphoMkd.gf +++ b/src/macedonian/MorphoMkd.gf @@ -15469,10 +15469,7 @@ mkA050 base = } ; mkAdv : Str -> Adv ; -mkAdv base_1 = - lin Adv - { s = base_1 - } ; +mkAdv s = {s=s} ; mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> GenNum -> Person -> Pronoun = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,g,p -> diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 34927986..460f688f 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -162,7 +162,14 @@ oper mkAdv : Str -> Adv = param Case = Acc | Dat ; param Role = RSubj | RObj Case | RPrep ; -oper Pronoun = {s : Role => Str; clitic : Case => Str; g : GenNum; p : Person} ; +oper Pronoun = { + s : Role => Str; + clitic : Case => Str; + poss : Species => GenNum => Str ; + poss_clitic : Str ; + g : GenNum; + p : Person + } ; genNum : Gender -> Number -> GenNum = \g,n -> case n of { diff --git a/src/macedonian/TenseMkd.gf b/src/macedonian/TenseMkd.gf new file mode 100644 index 00000000..437e6d67 --- /dev/null +++ b/src/macedonian/TenseMkd.gf @@ -0,0 +1,10 @@ +concrete TenseMkd of Tense = CatMkd[Tense,Temp], TenseX - [Tense,Temp,TTAnt,TPres,TPast,TFut,TCond] ** open ResMkd in { + +lin + TTAnt t a = {s = a.s ++ t.s ; a = a.a ; t = t.t} ; + TPres = {s = []} ** {t = VPresent} ; + TPast = {s = []} ** {t = VPastImperfect} ; --# notpresent + TFut = {s = []} ** {t = VFut} ; --# notpresent + TCond = {s = []} ** {t = VCond} ; --# notpresent + +} diff --git a/src/macedonian/TextMkd.gf b/src/macedonian/TextMkd.gf new file mode 100644 index 00000000..01c7fca3 --- /dev/null +++ b/src/macedonian/TextMkd.gf @@ -0,0 +1,7 @@ +concrete TextMkd of Text = open Prelude in { + lin + TEmpty = {s = []} ; + TFullStop x xs = {s = x.s ++ SOFT_BIND ++ "." ++ xs.s} ; + TQuestMark x xs = {s = x.s ++ SOFT_BIND ++ "?" ++ xs.s} ; + TExclMark x xs = {s = x.s ++ SOFT_BIND ++ "!" ++ xs.s} ; +} From 9e402cb608dcc7a7e0eebebde90ec98c51ac8062 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 08:58:08 +0200 Subject: [PATCH 131/169] prepare for numerals with countable forms --- src/macedonian/CatMkd.gf | 4 ++-- src/macedonian/NounMkd.gf | 18 ++++++++++++------ src/macedonian/ParadigmsMkd.gf | 10 +++++----- src/macedonian/ResMkd.gf | 4 ++++ 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 0d7f183a..bb4bbbcd 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -30,9 +30,9 @@ linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; lincat NP = {s : Role => Str; vocative: Str; g : GenNum; p : Person} ; -lincat Num = {s : Str; n : Number} ; +lincat Num = {s : Str; n : NNumber} ; lincat Quant = {s : Str; sp : Species} ; -lincat Det = {s : Str; n : Number; sp : Species} ; +lincat Det = {s : Str; n : NNumber; sp : Species} ; lincat VP = {present : Aspect => Number => Person => Str; aorist : Number => Person => Str; diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index f79cca6f..a805c40b 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -29,19 +29,25 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { } ; lin DefArt = {s = []; sp = Def Unspecified} ; lin DetCN det cn = { - s = \\r => det.s ++ cn.s ! det.sp ! det.n; - vocative = det.s ++ cn.vocative ! det.n; + s = \\r => case det.n of { + NNum n => det.s ++ cn.s ! det.sp ! n; + NCountable => det.s ++ cn.count_form + } ; + vocative = case det.n of { + NNum Sg => det.s ++ cn.vocative ! Sg; + _ => det.s ++ cn.vocative ! Pl + } ; g = case det.n of { - Sg => GSg cn.g; - Pl => GPl + NNum Sg => GSg cn.g; + _ => GPl } ; p = P3; } ; lin DetQuant det num = {s = det.s ++ num.s; n = num.n; sp = det.sp} ; lin IndefArt = {s = []; sp = Indef} ; - lin NumPl = {s = []; n = Pl} ; - lin NumSg = {s = []; n = Sg} ; + lin NumPl = {s = []; n = NNum Pl} ; + lin NumSg = {s = []; n = NNum Sg} ; lin UseN s = s ; lin UsePron p = p ** {vocative=p.s ! RSubj} ; } diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index d5db051d..a283505a 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1124,13 +1124,13 @@ mkV2V = overload { } ; mkV2S = overload { - mkV2S : V -> V2S = \v -> lin V2S v ** {c2,c3=noPrep} ; - mkV2S : V -> Prep -> Prep -> V2S = \v,p2,p3 -> lin V2S v ** {c2=p2; c3=p3} ; + mkV2S : V -> V2S = \v -> lin V2S v ** {c2=noPrep} ; + mkV2S : V -> Prep -> V2S = \v,p2 -> lin V2S v ** {c2=p2} ; } ; mkV2Q = overload { - mkV2Q : V -> V2Q = \v -> lin V2Q v ** {c2,c3=noPrep} ; - mkV2Q : V -> Prep -> Prep -> V2Q = \v,p2,p3 -> lin V2Q v ** {c2=p2; c3=p3} ; + mkV2Q : V -> V2Q = \v -> lin V2Q v ** {c2=noPrep} ; + mkV2Q : V -> Prep -> V2Q = \v,p2 -> lin V2Q v ** {c2=p2} ; } ; mkV2A = overload { @@ -1171,7 +1171,7 @@ mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; mkMU : Str -> MU = \s -> lin MU {s=s; isPre = False} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; mkQuant : Str -> Quant = \s -> lin Quant {s=s; sp=Indef} ; -mkDet : Str -> Det = \s -> lin Det {s=s; n=Sg; sp=Indef} ; +mkDet : Str -> Det = \s -> lin Det {s=s; n=NNum Sg; sp=Indef} ; mkConj : Str -> Conj = \s -> lin Conj {s=s} ; mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 460f688f..dbea0b90 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -5,6 +5,10 @@ oper Compl = {s : Str} ; param Species = Indef | Def Distance ; param Distance = Unspecified | Distal | Proximal ; param NRelType = Pref | AdjMod | AdvMod ; + NNumber = + NNum Number + | NCountable + ; param Gender = Masc | Fem | Neuter ; oper Noun = {s: Species => Number => Str; count_form: Str; vocative: Number => Str; rel: Species => GenNum => Str; relType : NRelType; g: Gender} ; -- 24855 oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun = From fea01dd3139d179b92dc2925a3f39cdaccf52da6 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 12:01:59 +0200 Subject: [PATCH 132/169] added questions and relative clauses --- src/macedonian/CatMkd.gf | 23 ++++++------------ src/macedonian/GrammarMkd.gf | 2 +- src/macedonian/IdiomMkd.gf | 7 +++--- src/macedonian/MorphoMkd.gf | 3 +-- src/macedonian/NounMkd.gf | 22 +++++++++++++---- src/macedonian/ParadigmsMkd.gf | 4 ++-- src/macedonian/PhraseMkd.gf | 1 + src/macedonian/QuestionMkd.gf | 3 +++ src/macedonian/RelativeMkd.gf | 3 +++ src/macedonian/ResMkd.gf | 43 +++++++++++++++++++++++++++++++--- src/macedonian/SentenceMkd.gf | 39 ++++++------------------------ src/macedonian/VerbMkd.gf | 14 +++-------- 12 files changed, 89 insertions(+), 75 deletions(-) create mode 100644 src/macedonian/QuestionMkd.gf diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index bb4bbbcd..419e750d 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -29,27 +29,18 @@ linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; -lincat NP = {s : Role => Str; vocative: Str; g : GenNum; p : Person} ; +lincat NP = {s : Role => Str; vocative: Str; a : Agr} ; lincat Num = {s : Str; n : NNumber} ; lincat Quant = {s : Str; sp : Species} ; lincat Det = {s : Str; n : NNumber; sp : Species} ; -lincat VP = {present : Aspect => Number => Person => Str; - aorist : Number => Person => Str; - imperfect : Aspect => Number => Person => Str; - imperative : Aspect => Number => Str; - participle : {aorist : Aspect => GenNum => Str; - imperfect : Aspect => GenNum => Str; - perfect : Aspect => Str}} ; -lincat VPSlash = {present : Aspect => Number => Person => Str; - aorist : Number => Person => Str; - imperfect : Aspect => Number => Person => Str; - imperative : Aspect => Number => Str; - participle : {aorist : Aspect => GenNum => Str; - imperfect : Aspect => GenNum => Str; - perfect : Aspect => Str}; - noun_from_verb : Str; vtype : VType; c2 : Compl} ; +lincat VP = Verb ** {compl : Agr => Str} ; +lincat VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ; +lincat S,QS = {s : Str} ; +lincat RS = {s : GenNum => Str} ; lincat Cl = {s : ResMkd.Tense => Anteriority => Polarity => Order => Str} ; +lincat QCl = {s : ResMkd.Tense => Anteriority => Polarity => Str} ; +lincat RCl = {s : GenNum => ResMkd.Tense => Anteriority => Polarity => Str} ; lincat RP = {s : GenNum => Str} ; lincat IP = {s : Str} ; lincat Subj = {s : Str} ; diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 85b3eee8..0da258da 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,2 +1,2 @@ -concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { +concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,QuestionMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { } diff --git a/src/macedonian/IdiomMkd.gf b/src/macedonian/IdiomMkd.gf index b54b46ab..7e7a30ec 100644 --- a/src/macedonian/IdiomMkd.gf +++ b/src/macedonian/IdiomMkd.gf @@ -1,13 +1,14 @@ concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd in { -lin ProgrVP vp = { +lin ProgrVP vp = vp ** { present = \\a,n,p => vp.present ! Imperfective ! n ! p ; - aorist = vp.aorist ; imperfect = \\a,n,p => vp.imperfect ! Imperfective ! n ! p ; imperative = \\a,n => vp.imperative ! Imperfective ! n ; participle = {aorist = \\a,gn => vp.participle.aorist ! Imperfective ! gn ; perfect = \\a => vp.participle.perfect ! Imperfective ; - imperfect = \\a => vp.participle.imperfect ! Imperfective} + imperfect = \\a => vp.participle.imperfect ! Imperfective ; + adjectival = vp.participle.adjectival ; + adverbial = vp.participle.adverbial} } ; } diff --git a/src/macedonian/MorphoMkd.gf b/src/macedonian/MorphoMkd.gf index 605b7497..be9bd351 100644 --- a/src/macedonian/MorphoMkd.gf +++ b/src/macedonian/MorphoMkd.gf @@ -15500,8 +15500,7 @@ mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> GenNum -> Person -> Pronoun = } } ; poss_clitic = f15 ; - g = g ; - p = p ; + a = {g = g; p = p} ; } ; } diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index a805c40b..bbca43c7 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -37,11 +37,11 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { NNum Sg => det.s ++ cn.vocative ! Sg; _ => det.s ++ cn.vocative ! Pl } ; - g = case det.n of { - NNum Sg => GSg cn.g; - _ => GPl - } ; - p = P3; + a = {g = case det.n of { + NNum Sg => GSg cn.g; + _ => GPl + } ; + p = P3}; } ; lin DetQuant det num = {s = det.s ++ num.s; n = num.n; sp = det.sp} ; @@ -50,4 +50,16 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { lin NumSg = {s = []; n = NNum Sg} ; lin UseN s = s ; lin UsePron p = p ** {vocative=p.s ! RSubj} ; + + lin RelNP np rs = { + s = \\r => np.s ! r ++ rs.s ! np.a.g ; + vocative = np.vocative ++ rs.s ! np.a.g ; + a = np.a; + } ; + lin RelCN cn rs = { + s = \\sp,n => cn.s ! sp ! n ++ rs.s ! genNum cn.g n ; + count_form = cn.count_form ++ rs.s ! GPl ; + vocative = \\n => cn.vocative ! n ++ rs.s ! genNum cn.g n ; + g = cn.g; + } ; } diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index a283505a..c10c1ebb 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1161,8 +1161,8 @@ mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; -mkPrep : Str -> Prep = \s -> lin Prep {s=s} ; -noPrep : Prep = lin Prep {s=""} ; +mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; +noPrep : Prep = lin Prep {s=""; c=Acc} ; mkIP : Str -> IP = \s -> lin IP {s=s} ; mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; diff --git a/src/macedonian/PhraseMkd.gf b/src/macedonian/PhraseMkd.gf index 5a2fa023..74263846 100644 --- a/src/macedonian/PhraseMkd.gf +++ b/src/macedonian/PhraseMkd.gf @@ -4,6 +4,7 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in { PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; UttS s = s ; + UttQS s = s ; UttInterj i = i ; NoPConj = {s = []} ; diff --git a/src/macedonian/QuestionMkd.gf b/src/macedonian/QuestionMkd.gf new file mode 100644 index 00000000..e36e7d8c --- /dev/null +++ b/src/macedonian/QuestionMkd.gf @@ -0,0 +1,3 @@ +concrete QuestionMkd of Question = CatMkd ** open Prelude,ResMkd in { + lin QuestCl cl = {s = \\t,a,p => cl.s ! t ! a ! p ! Quest} ; +} diff --git a/src/macedonian/RelativeMkd.gf b/src/macedonian/RelativeMkd.gf index 0482ea35..533d8b04 100644 --- a/src/macedonian/RelativeMkd.gf +++ b/src/macedonian/RelativeMkd.gf @@ -6,4 +6,7 @@ concrete RelativeMkd of Relative = CatMkd ** open Prelude,ResMkd in { GPl => "кои" } } ; + lin RelVP rp vp = { + s = \\gn,t,a,p => mkClause (rp.s ! gn) {g=gn; p=P3} vp ! t ! a ! p ! Main + } ; } diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index dbea0b90..e3f3efc0 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -1,6 +1,6 @@ resource ResMkd = ParamX - [Tense] ** open Prelude in { -oper Compl = {s : Str} ; +oper Compl = {s : Str; c : Case} ; param Species = Indef | Def Distance ; param Distance = Unspecified | Distal | Proximal ; @@ -10,6 +10,7 @@ param NRelType = Pref | AdjMod | AdvMod ; | NCountable ; param Gender = Masc | Fem | Neuter ; +oper Agr = {g : GenNum; p : Person} ; oper Noun = {s: Species => Number => Str; count_form: Str; vocative: Number => Str; rel: Species => GenNum => Str; relType : NRelType; g: Gender} ; -- 24855 oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,g -> @@ -171,8 +172,7 @@ oper Pronoun = { clitic : Case => Str; poss : Species => GenNum => Str ; poss_clitic : Str ; - g : GenNum; - p : Person + a : {g : GenNum; p : Person} } ; genNum : Gender -> Number -> GenNum = \g,n -> @@ -274,4 +274,41 @@ auxHave = { } } ; +mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Tense => Anteriority => Polarity => Order => Str + = \subj,agr,vp -> + let n = case agr.g of { + GSg _ => Sg ; + GPl => Pl + } + in \\t,a,p,o => + case of { + => subj ++ neg ++ vp.present ! Imperfective ! n ! agr.p ++ li ++ vp.compl ! agr ; + => case o of { + Main => subj ++ neg ++ auxBe.present ! n ! agr.p ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + Quest => subj ++ neg ++ vp.participle.imperfect ! Perfective ! agr.g ++ li ++ auxBe.present ! n ! agr.p ++ vp.compl ! agr + } ; + => subj ++ neg ++ vp.aorist ! n ! agr.p ++ li ++ vp.compl ! agr ; + => subj ++ neg ++ auxBe.imperfect ! n ! agr.p ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + => subj ++ neg ++ vp.imperfect ! Perfective ! n ! agr.p ++ li ++ vp.compl ! agr ; + => subj ++ neg ++ auxBe.imperfect ! n ! agr.p ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + => subj ++ fut.p1 ++ vp.present ! Perfective ! n ! agr.p ++ fut.p2 ++ vp.compl ! agr ; + => subj ++ fut.p1 ++ auxHave.present ! n ! agr.p ++ fut.p2 ++ vp.participle.perfect ! Perfective ++ vp.compl ! agr ; + => subj ++ neg ++ "би" ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + => subj ++ neg ++ "би" ++ li ++ auxHave.participle.imperfect ! agr.g ++ vp.participle.perfect ! Perfective ++ vp.compl ! agr + } where { + neg = case p of { + Pos => "" ; + Neg => "не" + } ; + fut = case of { + => <"ке",[]> ; + => <"нема да",[]> ; + => <"ке","ли"> ; + => <"нема ли да",[]> + } ; + li = case o of { + Main => "" ; + Quest => "ли" + } + } ; } diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index 31e1a3b8..afa634a0 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -1,40 +1,15 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { -lin PredVP np vp = - let n = case np.g of { - GSg _ => Sg ; - GPl => Pl - } - in {s = \\t,a,p,o => - case of { - => np.s ! RSubj ++ neg ++ vp.present ! Imperfective ! n ! np.p ; - => np.s ! RSubj ++ neg ++ auxBe.present ! n ! np.p ++ vp.participle.imperfect ! Perfective ! np.g ; - => np.s ! RSubj ++ neg ++ vp.aorist ! n ! np.p ; - => np.s ! RSubj ++ neg ++ auxBe.imperfect ! n ! np.p ++ vp.participle.imperfect ! Perfective ! np.g ; - => np.s ! RSubj ++ neg ++ vp.imperfect ! Perfective ! n ! np.p ; - => np.s ! RSubj ++ neg ++ auxBe.imperfect ! n ! np.p ++ vp.participle.imperfect ! Perfective ! np.g ; - => np.s ! RSubj ++ fut ++ vp.present ! Perfective ! n ! np.p ; - => np.s ! RSubj ++ fut ++ auxHave.present ! n ! np.p ++ vp.participle.perfect ! Perfective ; - => np.s ! RSubj ++ neg ++ "би" ++ vp.participle.imperfect ! Perfective ! np.g ; - => np.s ! RSubj ++ neg ++ "би" ++ auxHave.participle.imperfect ! np.g ++ vp.participle.perfect ! Perfective - } where { - neg = case p of { - Pos => "" ; - Neg => "не" - } ; - fut = case p of { - Pos => "ке" ; - Neg => "нема да" - } ; - li = case o of { - Main => "" ; - Quest => "ли" - } - } - } ; +lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ; UseCl t p cl = { s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main } ; + UseQCl t p cl = { + s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p + } ; + UseRCl t p cl = { + s = \\gn => t.s ++ p.s ++ cl.s ! gn ! t.t ! t.a ! p.p + } ; } diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index e989b00a..4286e48e 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -1,15 +1,7 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { - lin UseV v = v ; - lin ComplSlash vps np = {present = \\a,n,p => vps.present ! a ! n - ! p - ++ np.s ! RObj Acc ; - aorist = \\n,p => vps.aorist ! n ! p ++ np.s ! RObj Acc; - imperfect = \\a,n,p => vps.imperfect ! a ! n ! p ++ np.s ! RObj Acc; - imperative = \\a,n => vps.imperative ! a ! n ++ np.s ! RObj Acc; - participle = {aorist = \\a,gn => vps.participle.aorist ! a ! gn ++ np.s ! RObj Acc; - perfect = \\a => vps.participle.perfect ! a ++ np.s ! RObj Acc; - imperfect = \\a,gn => vps.participle.imperfect ! a ! gn ++ np.s ! RObj Acc}} ; - lin SlashV2a v = v ; + lin UseV v = v ** {compl = \\_ => []}; + lin ComplSlash vp np = vp ** {compl = \\a => vp.compl ! a ++ vp.c2.s ++ np.s ! RObj vp.c2.c} ; + lin SlashV2a v = v ** {compl = \\_ => []} ; } From e42c5f53e21ec6fed2bbf8c338b4f15c950b1438 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 14:09:44 +0200 Subject: [PATCH 133/169] added this_Quant, that_Quant --- src/macedonian/CatMkd.gf | 4 ++-- src/macedonian/NounMkd.gf | 23 +++++++++-------------- src/macedonian/ParadigmsMkd.gf | 27 +++++++++++++++++++++++++-- src/macedonian/ResMkd.gf | 6 ++++++ src/macedonian/StructuralMkd.gf | 4 +++- 5 files changed, 45 insertions(+), 19 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 419e750d..bfacb3d5 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -31,8 +31,8 @@ linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; lincat NP = {s : Role => Str; vocative: Str; a : Agr} ; lincat Num = {s : Str; n : NNumber} ; -lincat Quant = {s : Str; sp : Species} ; -lincat Det = {s : Str; n : NNumber; sp : Species} ; +lincat Quant = {s : GenNum => Str; sp : Species} ; +lincat Det = {s : Gender => Str; n : NNumber; sp : Species} ; lincat VP = Verb ** {compl : Agr => Str} ; lincat VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ; diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index bbca43c7..db435390 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -27,25 +27,20 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { vocative = \\n => cn.vocative ! n ++ adv.s; g = cn.g } ; - lin DefArt = {s = []; sp = Def Unspecified} ; + lin DefArt = {s = \\_=>[]; sp = Def Unspecified} ; lin DetCN det cn = { s = \\r => case det.n of { - NNum n => det.s ++ cn.s ! det.sp ! n; - NCountable => det.s ++ cn.count_form + NNum n => det.s ! cn.g ++ cn.s ! det.sp ! n; + NCountable => det.s ! cn.g ++ cn.count_form } ; - vocative = case det.n of { - NNum Sg => det.s ++ cn.vocative ! Sg; - _ => det.s ++ cn.vocative ! Pl - } ; - a = {g = case det.n of { - NNum Sg => GSg cn.g; - _ => GPl - } ; + vocative = det.s ! cn.g ++ cn.vocative ! nnum2num det.n ; + a = {g = genNum cn.g (nnum2num det.n) ; p = P3}; } ; - lin DetQuant det num = {s = det.s ++ num.s; n = num.n; - sp = det.sp} ; - lin IndefArt = {s = []; sp = Indef} ; + lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s; + n = num.n; + sp = q.sp} ; + lin IndefArt = {s = \\_=>[]; sp = Indef} ; lin NumPl = {s = []; n = NNum Pl} ; lin NumSg = {s = []; n = NNum Sg} ; lin UseN s = s ; diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index c10c1ebb..cf6bdaaf 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1170,8 +1170,31 @@ mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; mkMU : Str -> MU = \s -> lin MU {s=s; isPre = False} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; -mkQuant : Str -> Quant = \s -> lin Quant {s=s; sp=Indef} ; -mkDet : Str -> Det = \s -> lin Det {s=s; n=NNum Sg; sp=Indef} ; +mkQuant : Str -> Str -> Str -> Str -> Quant = \m,f,n,pl -> + lin Quant { + s=table { + GSg Masc => m; + GSg Fem => f; + GSg Neuter => n; + GPl => pl + } ; + sp=Indef + } ; + +mkDet = overload { + mkDet : Str -> Det = \s -> lin Det {s=\\_=>s; n=NNum Pl; sp=Indef} ; + mkDet : Str -> Str -> Str -> Det = \m,f,n -> + lin Det { + s=table { + Masc => m ; + Fem => f ; + Neuter => n + } ; + n=NNum Sg; + sp=Indef + } ; +} ; + mkConj : Str -> Conj = \s -> lin Conj {s=s} ; mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index e3f3efc0..83ba99de 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -180,6 +180,12 @@ genNum : Gender -> Number -> GenNum = \g,n -> Sg => GSg g ; Pl => GPl } ; + +nnum2num : NNumber -> Number = \n -> + case n of { + NNum n => n ; + NCountable => Pl + } ; auxBe = { present : Number => Person => Str diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf index 02a95db7..ad79fbdd 100644 --- a/src/macedonian/StructuralMkd.gf +++ b/src/macedonian/StructuralMkd.gf @@ -1,4 +1,4 @@ -concrete StructuralMkd of Structural = CatMkd ** open ResMkd,MorphoMkd in { +concrete StructuralMkd of Structural = CatMkd ** open ResMkd,MorphoMkd,ParadigmsMkd in { lin i_Pron = mkPron "јас" "мене" "ме" "мене" "ми" "мене" "мој" "мојот" "моја" "мојата" "мое" "моето" "мои" "моите" "ми" (GSg Masc) P1 ; lin youSg_Pron = mkPron "ти" "тебе" "те" "тебе" "ти" "тебе" "твој" "твојот" "твоја" "твојата" "твое" "твоето" "твои" "твоите" "ти" (GSg Masc) P2 ; @@ -9,5 +9,7 @@ lin we_Pron = mkPron "ние" "нас" "нѐ" "нам" "ни" "нас" "наш" lin youPl_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" GPl P2 ; lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" (GSg Masc) P2 ; lin they_Pron = mkPron "тие" "нив" "ги" "ним" "им" "нив" "нивен" "нивниот" "нивна" "нивната" "нивно" "нивното" "нивни" "нивните" "им" GPl P3 ; +lin this_Quant = mkQuant "овој" "оваа" "ова" "овие" ; +lin that_Quant = mkQuant "тој" "таа" "тоа" "тие" ; } From 323e4b4cdf325062d6b814bb2f509e0d44bd5d5f Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 15:03:44 +0200 Subject: [PATCH 134/169] more structural words --- src/macedonian/CatMkd.gf | 4 +++- src/macedonian/ParadigmsMkd.gf | 31 +++++++++++++++++++++++++++---- src/macedonian/StructuralMkd.gf | 8 ++++++++ 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index bfacb3d5..6d5c1301 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -42,7 +42,9 @@ lincat Cl = {s : ResMkd.Tense => Anteriority => Polarity => Order => Str} ; lincat QCl = {s : ResMkd.Tense => Anteriority => Polarity => Str} ; lincat RCl = {s : GenNum => ResMkd.Tense => Anteriority => Polarity => Str} ; lincat RP = {s : GenNum => Str} ; -lincat IP = {s : Str} ; +lincat IP = {s : Str; g : GenNum} ; +lincat IQuant = {s : GenNum => Str} ; +lincat IDet = {s : Gender => Str; n : Number} ; lincat Subj = {s : Str} ; } diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index cf6bdaaf..8eb17207 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1164,12 +1164,35 @@ mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; noPrep : Prep = lin Prep {s=""; c=Acc} ; -mkIP : Str -> IP = \s -> lin IP {s=s} ; +mkIP : Str -> GenNum -> IP = \s,g -> lin IP {s=s; g=g} ; mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; -mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; -mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; + +mkIQuant : Str -> Str -> Str -> Str -> IQuant = \m,f,n,pl -> + lin IQuant { + s=table { + GSg Masc => m; + GSg Fem => f; + GSg Neuter => n; + GPl => pl + } + } ; + +mkIDet = overload { + mkIDet : Str -> IDet = \s -> lin IDet {s=\\_=>s; n=Pl} ; + mkIDet : Str -> Str -> Str -> IDet = \m,f,n -> + lin IDet { + s=table { + Masc => m ; + Fem => f ; + Neuter => n + } ; + n=Sg; + } ; +} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre = False} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; + mkQuant : Str -> Str -> Str -> Str -> Quant = \m,f,n,pl -> lin Quant { s=table { @@ -1183,7 +1206,7 @@ mkQuant : Str -> Str -> Str -> Str -> Quant = \m,f,n,pl -> mkDet = overload { mkDet : Str -> Det = \s -> lin Det {s=\\_=>s; n=NNum Pl; sp=Indef} ; - mkDet : Str -> Str -> Str -> Det = \m,f,n -> + mkDet : Str -> Str -> Str -> Det = \m,f,n -> lin Det { s=table { Masc => m ; diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf index ad79fbdd..d172c17b 100644 --- a/src/macedonian/StructuralMkd.gf +++ b/src/macedonian/StructuralMkd.gf @@ -11,5 +11,13 @@ lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ва lin they_Pron = mkPron "тие" "нив" "ги" "ним" "им" "нив" "нивен" "нивниот" "нивна" "нивната" "нивно" "нивното" "нивни" "нивните" "им" GPl P3 ; lin this_Quant = mkQuant "овој" "оваа" "ова" "овие" ; lin that_Quant = mkQuant "тој" "таа" "тоа" "тие" ; +lin how_IAdv = mkIAdv "как" ; +lin how8many_IDet = mkIDet "колку" ; +lin how8much_IAdv = mkIAdv "колку" ; +lin when_IAdv = mkIAdv "кога" ; +lin where_IAdv = mkIAdv "каде" ; +lin which_IQuant = mkIQuant "кој" "која" "кое" "кои" ; +lin whoSg_IP = mkIP "кој" (GSg Masc) ; +lin whoPl_IP = mkIP "кои" GPl ; } From ae9b7d4d45cce7a2ccaa92bcd8c828605e1dd36c Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 15:33:05 +0200 Subject: [PATCH 135/169] added pidgin rules --- src/macedonian/AdjectiveMkd.gf | 17 ++ src/macedonian/AdverbMkd.gf | 9 + src/macedonian/GrammarMkd.gf | 2 +- src/macedonian/IdiomMkd.gf | 40 +++- src/macedonian/NamesMkd.gf | 20 ++ src/macedonian/NounMkd.gf | 67 +++++++ src/macedonian/PhraseMkd.gf | 32 +-- src/macedonian/QuestionMkd.gf | 16 ++ src/macedonian/RelativeMkd.gf | 3 + src/macedonian/SentenceMkd.gf | 36 ++-- src/macedonian/VerbMkd.gf | 348 ++++++++++++++++++++++++++++++++- 11 files changed, 560 insertions(+), 30 deletions(-) create mode 100644 src/macedonian/NamesMkd.gf diff --git a/src/macedonian/AdjectiveMkd.gf b/src/macedonian/AdjectiveMkd.gf index 681d21b0..9f1f527b 100644 --- a/src/macedonian/AdjectiveMkd.gf +++ b/src/macedonian/AdjectiveMkd.gf @@ -1,4 +1,21 @@ concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in { + lin AdAP a ap = {s = \\s,g => a.s ++ ap.s ! s ! g; + isPre = ap.isPre} ; + lin AdjOrd o = {s = \\s,g => o.s; isPre = False} ; + lin AdvAP ap a = {s = \\s,g => ap.s ! s ! g ++ a.s; + isPre = ap.isPre} ; + lin CAdvAP c ap np = {s = \\s,g => c.s + ++ ap.s ! s ! g ++ np.s ! RSubj; + isPre = ap.isPre} ; + lin ComparA a np = {s = \\s,g => a.s ! s ! g ++ np.s ! RSubj; + isPre = False} ; + lin ComplA2 a2 np = {s = \\s,g => a2.s ! s ! g ++ np.s ! RSubj; + isPre = False} ; lin PositA a = a ** {isPre = True} ; + lin ReflA2 a2 = {s = \\s,g => a2.s ! s ! g; isPre = False} ; + lin SentAP ap sc = {s = \\s,g => ap.s ! s ! g ++ sc.s; + isPre = ap.isPre} ; + lin UseA2 a2 = {s = \\s,g => a2.s ! s ! g; isPre = False} ; + lin UseComparA a = {s = \\s,g => a.s ! s ! g; isPre = False} ; } diff --git a/src/macedonian/AdverbMkd.gf b/src/macedonian/AdverbMkd.gf index 847c703a..e41b07b0 100644 --- a/src/macedonian/AdverbMkd.gf +++ b/src/macedonian/AdverbMkd.gf @@ -1,3 +1,12 @@ concrete AdverbMkd of Adverb = CatMkd ** open Prelude,ResMkd in { + lin AdAdv a a2 = {s = a.s ++ a2.s} ; + lin AdnCAdv c = {s = c.s} ; + lin ComparAdvAdj c a np = {s = c.s + ++ a.s ! Indef ! np.a.g ++ np.s ! RSubj} ; + lin ComparAdvAdjS c a s = {s = c.s + ++ a.s ! Indef ! GSg Masc ++ s.s} ; + lin PositAdAAdj a = {s = a.s ! Indef ! GSg Masc} ; + lin PositAdvAdj a = {s = a.s ! Indef ! GSg Masc} ; lin PrepNP p np = {s = p.s ++ np.s ! RPrep} ; + lin SubjS s s2 = {s = s.s ++ s2.s} ; } diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 0da258da..4d593af1 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,2 +1,2 @@ -concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,QuestionMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { +concrete GrammarMkd of Grammar = NamesMkd,VerbMkd,SentenceMkd,QuestionMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { } diff --git a/src/macedonian/IdiomMkd.gf b/src/macedonian/IdiomMkd.gf index 7e7a30ec..770e1577 100644 --- a/src/macedonian/IdiomMkd.gf +++ b/src/macedonian/IdiomMkd.gf @@ -1,6 +1,20 @@ concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd in { -lin ProgrVP vp = vp ** { + lin CleftAdv a s = {s = \\t,a2,p,o => a.s ++ s.s} ; + lin CleftNP np rs = {s = \\t,a,p,o => np.s ! RSubj + ++ rs.s ! np.a.g} ; + lin ExistIP ip = {s = \\t,a,p => ip.s} ; + lin ExistIPAdv ip a = {s = \\t,a2,p => ip.s ++ a.s} ; + lin ExistNP np = {s = \\t,a,p,o => np.s ! RSubj} ; + lin ExistNPAdv np a = {s = \\t,a2,p,o => np.s ! RSubj ++ a.s} ; + lin GenericCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg + ! P1} ; + lin ImpP3 np vp = {s = np.s ! RSubj + ++ vp.present ! Imperfective ! Sg ! np.a.p} ; + lin ImpPl1 vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin ImpersCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg + ! P1} ; + lin ProgrVP vp = vp ** { present = \\a,n,p => vp.present ! Imperfective ! n ! p ; imperfect = \\a,n,p => vp.imperfect ! Imperfective ! n ! p ; imperative = \\a,n => vp.imperative ! Imperfective ! n ; @@ -11,4 +25,28 @@ lin ProgrVP vp = vp ** { adverbial = vp.participle.adverbial} } ; + lin SelfAdVVP vp = {present = \\a,n,p => vp.present ! a ! n ! p; + aorist = \\n,p => vp.aorist ! n ! p; + imperfect = \\a,n,p => vp.imperfect ! a ! n ! p; + imperative = \\a,n => vp.imperative ! a ! n; + participle = {aorist = \\a,g => vp.participle.aorist ! a ! g; + imperfect = \\a,g => vp.participle.imperfect ! a ! g; + perfect = \\a => vp.participle.perfect ! a; + adjectival = \\a => vp.participle.adjectival ! a; + adverbial = vp.participle.adverbial}; + noun_from_verb = vp.noun_from_verb; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1}} ; + lin SelfAdvVP vp = {present = \\a,n,p => vp.present ! a ! n ! p; + aorist = \\n,p => vp.aorist ! n ! p; + imperfect = \\a,n,p => vp.imperfect ! a ! n ! p; + imperative = \\a,n => vp.imperative ! a ! n; + participle = {aorist = \\a,g => vp.participle.aorist ! a ! g; + imperfect = \\a,g => vp.participle.imperfect ! a ! g; + perfect = \\a => vp.participle.perfect ! a; + adjectival = \\a => vp.participle.adjectival ! a; + adverbial = vp.participle.adverbial}; + noun_from_verb = vp.noun_from_verb; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1}} ; + lin SelfNP np = {s = \\r => np.s ! r; vocative = np.vocative; + a = {g = np.a.g; p = np.a.p}} ; } diff --git a/src/macedonian/NamesMkd.gf b/src/macedonian/NamesMkd.gf new file mode 100644 index 00000000..db236ee7 --- /dev/null +++ b/src/macedonian/NamesMkd.gf @@ -0,0 +1,20 @@ +concrete NamesMkd of Names = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin AdjLN ap ln = {s = ap.s ! Indef ! GSg Masc ++ ln.s} ; + lin FemaleSurname sn = {s = \\r => sn.s; vocative = sn.s; + a = {g = GSg Masc; p = P1}} ; + lin FullName gn sn = {s = \\r => gn.s ++ sn.s; + vocative = gn.s ++ sn.s; a = {g = GSg Masc; p = P1}} ; + lin GivenName gn = {s = \\r => gn.s; vocative = gn.s; + a = {g = GSg Masc; p = P1}} ; + lin InLN ln = {s = ln.s} ; + lin MaleSurname sn = {s = \\r => sn.s; vocative = sn.s; + a = {g = GSg Masc; p = P1}} ; + lin PlSurname sn = {s = \\r => sn.s; vocative = sn.s; + a = {g = GSg Masc; p = P1}} ; + lin PlainLN ln = {s = \\r => ln.s; vocative = ln.s; + a = {g = GSg Masc; p = P1}} ; + lin UseLN ln = {s = \\r => ln.s; vocative = ln.s; + a = {g = GSg Masc; p = P1}} ; +} \ No newline at end of file diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index db435390..05e70b08 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -1,4 +1,5 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { + lin AdNum a c = {s = a.s ++ c.s} ; lin AdjCN ap cn = { s = case ap.isPre of { True => \\s,n => ap.s ! s @@ -21,12 +22,30 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { } ++ cn.vocative ! n; count_form = ap.s ! Indef ! GPl ++ cn.count_form; g = cn.g} ; + lin AdjDAP d ap = {s = d.s ++ ap.s ! Indef ! GSg Masc} ; lin AdvCN cn adv = { s = \\s,n => cn.s ! s ! n ++ adv.s; count_form = cn.count_form ++ adv.s; vocative = \\n => cn.vocative ! n ++ adv.s; g = cn.g } ; + lin AdvNP np a = {s = \\r => np.s ! r ++ a.s; + vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ; + lin ApposCN cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; + count_form = cn.count_form ++ np.s ! RSubj; + vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; + lin ComplN2 n2 np = {s = \\s,n => n2.s ! s ! n ++ np.s ! RSubj; + count_form = n2.count_form ++ np.s ! RSubj; + vocative = \\n => n2.vocative ! n ++ np.vocative; g = n2.g} ; + lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ np.s ! RSubj; + count_form = n3.count_form ++ np.s ! RSubj; + vocative = \\n => n3.vocative ! n ++ np.vocative; + rel = \\s,g => n3.rel ! s ! g ++ np.s ! RSubj; + relType = n3.relType; g = n3.g; + c2 = {s = n3.c2.s ++ np.s ! RSubj; c = n3.c2.c}} ; + lin CountNP d np = {s = \\r => d.s ! Masc ++ np.s ! r; + vocative = d.s ! Masc ++ np.vocative; + a = {g = np.a.g; p = np.a.p}} ; lin DefArt = {s = \\_=>[]; sp = Def Unspecified} ; lin DetCN det cn = { s = \\r => case det.n of { @@ -37,10 +56,23 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { a = {g = genNum cn.g (nnum2num det.n) ; p = P3}; } ; + lin DetDAP d = {s = d.s ! Masc} ; + lin DetNP d = {s = \\r => d.s ! Masc; vocative = d.s ! Masc; + a = {g = GSg Masc; p = P1}} ; lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s; n = num.n; sp = q.sp} ; + lin DetQuantOrd q n o = {s = \\g => q.s ! GSg Masc ++ n.s ++ o.s; + n = n.n; sp = q.sp} ; + lin ExtAdvNP np a = {s = \\r => np.s ! r ++ a.s; + vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ; lin IndefArt = {s = \\_=>[]; sp = Indef} ; + lin MassNP cn = {s = \\r => cn.s ! Indef ! Sg; + vocative = cn.vocative ! Sg; a = {g = GSg Masc; p = P1}} ; + lin NumCard c = {s = c.s; n = NNum Sg} ; + lin NumDecimal d = {s = d.s} ; + lin NumDigits d = {s = d.s} ; + lin NumNumeral n = {s = n.s} ; lin NumPl = {s = []; n = NNum Pl} ; lin NumSg = {s = []; n = NNum Sg} ; lin UseN s = s ; @@ -51,10 +83,45 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { vocative = np.vocative ++ rs.s ! np.a.g ; a = np.a; } ; + lin OrdDigits d = {s = d.s} ; + lin OrdNumeral n = {s = n.s} ; + lin OrdNumeralSuperl n a = {s = n.s ++ a.s ! Indef ! GSg Masc} ; + lin OrdSuperl a = {s = a.s ! Indef ! GSg Masc} ; + lin PPartNP np v2 = {s = \\r => np.s ! r + ++ v2.present ! Imperfective ! Sg ! np.a.p; + vocative = np.vocative ++ v2.present ! Imperfective ! Sg ! np.a.p; + a = {g = np.a.g; p = np.a.p}} ; + lin PartNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; + count_form = cn.count_form ++ np.s ! RSubj; + vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; + lin PossNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; + count_form = cn.count_form ++ np.s ! RSubj; + vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; + lin PossPron p = {s = \\g => p.s ! RSubj; sp = Indef} ; + lin PredetNP p np = {s = \\r => p.s ++ np.s ! r; + vocative = p.s ++ np.vocative; a = {g = np.a.g; p = np.a.p}} ; + lin QuantityNP d mu = {s = \\r => d.s ++ mu.s; + vocative = d.s ++ mu.s; a = {g = GSg Masc; p = P1}} ; lin RelCN cn rs = { s = \\sp,n => cn.s ! sp ! n ++ rs.s ! genNum cn.g n ; count_form = cn.count_form ++ rs.s ! GPl ; vocative = \\n => cn.vocative ! n ++ rs.s ! genNum cn.g n ; g = cn.g; } ; + lin SentCN cn sc = {s = \\s,n => cn.s ! s ! n ++ sc.s; + count_form = cn.count_form ++ sc.s; + vocative = \\n => cn.vocative ! n ++ sc.s; g = cn.g} ; + lin Use2N3 n3 = {s = \\s,n => n3.s ! s ! n; + count_form = n3.count_form; vocative = \\n => n3.vocative ! n; + rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g; + c2 = {s = n3.c2.s; c = n3.c2.c}} ; + lin Use3N3 n3 = {s = \\s,n => n3.s ! s ! n; + count_form = n3.count_form; vocative = \\n => n3.vocative ! n; + rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g; + c2 = {s = n3.c2.s; c = n3.c2.c}} ; + lin UseN2 n2 = {s = \\s,n => n2.s ! s ! n; + count_form = n2.count_form; vocative = \\n => n2.vocative ! n; + g = n2.g} ; + lin UsePN pn = {s = \\r => pn.s; vocative = pn.s; + a = {g = GSg Masc; p = P1}} ; } diff --git a/src/macedonian/PhraseMkd.gf b/src/macedonian/PhraseMkd.gf index 74263846..e88bc653 100644 --- a/src/macedonian/PhraseMkd.gf +++ b/src/macedonian/PhraseMkd.gf @@ -1,15 +1,21 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in { - - lin - PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; - - UttS s = s ; - UttQS s = s ; - UttInterj i = i ; - - NoPConj = {s = []} ; - - NoVoc = {s = []} ; - VocNP np = {s = SOFT_BIND++"," ++ np.vocative} ; - + lin NoPConj = {s : Str = []} ; + lin NoVoc = {s : Str = []} ; + lin PConjConj c = {s = c.s} ; + lin PhrUtt pconj utt voc = {s : Str = pconj.s ++ utt.s ++ voc.s} ; + lin UttAP ap = {s = ap.s ! Indef ! GSg Masc} ; + lin UttAdv a = {s = a.s} ; + lin UttCN cn = {s = cn.s ! Indef ! Sg} ; + lin UttCard c = {s = c.s} ; + lin UttIAdv i = {s = i.s} ; + lin UttIP ip = {s = ip.s} ; + lin UttImpPl p i = {s = p.s ++ i.s} ; + lin UttImpPol p i = {s = p.s ++ i.s} ; + lin UttImpSg p i = {s = p.s ++ i.s} ; + lin UttInterj i = i ; + lin UttNP np = {s = np.s ! RSubj} ; + lin UttQS s = s ; + lin UttS s = s ; + lin UttVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin VocNP np = {s : Str = SOFT_BIND ++ "," ++ np.vocative} ; } diff --git a/src/macedonian/QuestionMkd.gf b/src/macedonian/QuestionMkd.gf index e36e7d8c..a6c50c0d 100644 --- a/src/macedonian/QuestionMkd.gf +++ b/src/macedonian/QuestionMkd.gf @@ -1,3 +1,19 @@ concrete QuestionMkd of Question = CatMkd ** open Prelude,ResMkd in { + lin AdvIAdv i a = {s = i.s ++ a.s} ; + lin AdvIP ip a = {s = ip.s ++ a.s; g = ip.g} ; + lin CompIAdv i = {s = i.s} ; + lin CompIP ip = {s = ip.s} ; + lin IdetCN i cn = {s = i.s ! cn.g ++ cn.s ! Indef ! i.n; + g = GSg Masc} ; + lin IdetIP i = {s = i.s ! Masc; g = GSg Masc} ; + lin IdetQuant i n = {s = \\g => i.s ! GSg Masc ++ n.s; n = Sg} ; + lin PrepIP p ip = {s = p.s ++ ip.s} ; + lincat QVP = {s : Str} ; lin QuestCl cl = {s = \\t,a,p => cl.s ! t ! a ! p ! Quest} ; + lin QuestIAdv i cl = {s = \\t,a,p => i.s + ++ cl.s ! t ! a ! p ! Main} ; + lin QuestIComp i np = {s = \\t,a,p => i.s ++ np.s ! RSubj} ; + lin QuestSlash ip c = {s = \\t,a,p => ip.s ++ c.s} ; + lin QuestVP ip vp = {s = \\t,a,p => ip.s + ++ vp.present ! Imperfective ! Sg ! P1} ; } diff --git a/src/macedonian/RelativeMkd.gf b/src/macedonian/RelativeMkd.gf index 533d8b04..5cb027d6 100644 --- a/src/macedonian/RelativeMkd.gf +++ b/src/macedonian/RelativeMkd.gf @@ -1,4 +1,5 @@ concrete RelativeMkd of Relative = CatMkd ** open Prelude,ResMkd in { + lin FunRP p np rp = {s = \\g => p.s ++ np.s ! RSubj ++ rp.s ! g} ; lin IdRP = {s = table { GSg Masc => "кој" ; GSg Fem => "која" ; @@ -6,6 +7,8 @@ concrete RelativeMkd of Relative = CatMkd ** open Prelude,ResMkd in { GPl => "кои" } } ; + lin RelCl cl = {s = \\g,t,a,p => cl.s ! t ! a ! p ! Main} ; + lin RelSlash rp c = {s = \\g,t,a,p => rp.s ! g ++ c.s} ; lin RelVP rp vp = { s = \\gn,t,a,p => mkClause (rp.s ! gn) {g=gn; p=P3} vp ! t ! a ! p ! Main } ; diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index afa634a0..cfe0a256 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -1,15 +1,25 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { - -lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ; - - UseCl t p cl = { - s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main - } ; - UseQCl t p cl = { - s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p - } ; - UseRCl t p cl = { - s = \\gn => t.s ++ p.s ++ cl.s ! gn ! t.t ! t.a ! p.p - } ; - + lin AdvImp a i = {s = a.s ++ i.s} ; + lin AdvS a s = {s = a.s ++ s.s} ; + lin AdvSlash c a = {s = c.s ++ a.s} ; + lin EmbedQS qs = {s = qs.s} ; + lin EmbedS s = {s = s.s} ; + lin EmbedVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin ExtAdvS a s = {s = a.s ++ s.s} ; + lin ImpVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin PredSCVP sc vp = {s = \\t,a,p,o => sc.s + ++ vp.present ! Imperfective ! Sg ! P1} ; + lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ; + lin RelS s rs = {s = s.s ++ rs.s ! GSg Masc} ; + lin SSubjS s s2 s3 = {s = s.s ++ s2.s ++ s3.s} ; + lin SlashPrep cl p = {s = cl.s ! VPresent ! Simul ! Pos ! Main + ++ p.s} ; + lin SlashVP np v = {s = np.s ! RSubj + ++ v.present ! Imperfective ! Sg ! np.a.p} ; + lin SlashVS np vs s = {s = np.s ! RSubj + ++ vs.present ! Imperfective ! Sg ! np.a.p ++ s.s} ; + lin UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main} ; + lin UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ; + lin UseRCl t p cl = {s = \\gn => t.s ++ p.s ++ cl.s ! gn ! t.t ! t.a ! p.p} ; + lin UseSlash t p c = {s = t.s ++ p.s ++ c.s} ; } diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index 4286e48e..c9314fff 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -1,7 +1,351 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { - lin UseV v = v ** {compl = \\_ => []}; + lin AdVVP a vp = {present = \\a2,n,p => a.s + ++ vp.present ! a2 ! n ! p; + aorist = \\n,p => a.s ++ vp.aorist ! n ! p; + imperfect = \\a2,n,p => a.s ++ vp.imperfect ! a2 ! n ! p; + imperative = \\a2,n => a.s ++ vp.imperative ! a2 ! n; + participle = {aorist = \\a2,g => a.s + ++ vp.participle.aorist ! a2 ! g; + imperfect = \\a2,g => a.s ++ vp.participle.imperfect ! a2 ! g; + perfect = \\a2 => a.s ++ vp.participle.perfect ! a2; + adjectival = \\a2 => a.s ++ vp.participle.adjectival ! a2; + adverbial = a.s ++ vp.participle.adverbial}; + noun_from_verb = a.s ++ vp.noun_from_verb; vtype = vp.vtype; + compl = \\v => a.s ++ vp.compl ! {g = GSg Masc; p = P1}} ; + lin AdVVPSlash a v = {present = \\a2,n,p => a.s + ++ v.present ! a2 ! n ! p; + aorist = \\n,p => a.s ++ v.aorist ! n ! p; + imperfect = \\a2,n,p => a.s ++ v.imperfect ! a2 ! n ! p; + imperative = \\a2,n => a.s ++ v.imperative ! a2 ! n; + participle = {aorist = \\a2,g => a.s + ++ v.participle.aorist ! a2 ! g; + imperfect = \\a2,g => a.s ++ v.participle.imperfect ! a2 ! g; + perfect = \\a2 => a.s ++ v.participle.perfect ! a2; + adjectival = \\a2 => a.s ++ v.participle.adjectival ! a2; + adverbial = a.s ++ v.participle.adverbial}; + noun_from_verb = a.s ++ v.noun_from_verb; vtype = v.vtype; + compl = \\v2 => a.s ++ v.compl ! {g = GSg Masc; p = P1}; + c2 = {s = a.s ++ v.c2.s; c = v.c2.c}} ; + lin AdvVP vp a = {present = \\a2,n,p => vp.present ! a2 ! n ! p + ++ a.s; + aorist = \\n,p => vp.aorist ! n ! p ++ a.s; + imperfect = \\a2,n,p => vp.imperfect ! a2 ! n ! p ++ a.s; + imperative = \\a2,n => vp.imperative ! a2 ! n ++ a.s; + participle = {aorist = \\a2,g => vp.participle.aorist ! a2 ! g + ++ a.s; + imperfect = \\a2,g => vp.participle.imperfect ! a2 ! g ++ a.s; + perfect = \\a2 => vp.participle.perfect ! a2 ++ a.s; + adjectival = \\a2 => vp.participle.adjectival ! a2 ++ a.s; + adverbial = vp.participle.adverbial ++ a.s}; + noun_from_verb = vp.noun_from_verb ++ a.s; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ a.s} ; + lin AdvVPSlash v a = {present = \\a2,n,p => v.present ! a2 ! n ! p + ++ a.s; + aorist = \\n,p => v.aorist ! n ! p ++ a.s; + imperfect = \\a2,n,p => v.imperfect ! a2 ! n ! p ++ a.s; + imperative = \\a2,n => v.imperative ! a2 ! n ++ a.s; + participle = {aorist = \\a2,g => v.participle.aorist ! a2 ! g + ++ a.s; + imperfect = \\a2,g => v.participle.imperfect ! a2 ! g ++ a.s; + perfect = \\a2 => v.participle.perfect ! a2 ++ a.s; + adjectival = \\a2 => v.participle.adjectival ! a2 ++ a.s; + adverbial = v.participle.adverbial ++ a.s}; + noun_from_verb = v.noun_from_verb ++ a.s; vtype = v.vtype; + compl = \\v2 => v.compl ! {g = GSg Masc; p = P1} ++ a.s; + c2 = {s = v.c2.s ++ a.s; c = v.c2.c}} ; + lin CompAP ap = {s = ap.s ! Indef ! GSg Masc} ; + lin CompAdv a = {s = a.s} ; + lin CompCN cn = {s = cn.s ! Indef ! Sg} ; + lin CompNP np = {s = np.s ! RSubj} ; lin ComplSlash vp np = vp ** {compl = \\a => vp.compl ! a ++ vp.c2.s ++ np.s ! RObj vp.c2.c} ; + lin ComplVA va ap = {present = \\a,n,p => va.present ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + aorist = \\n,p => va.aorist ! n ! p ++ ap.s ! Indef ! GSg Masc; + imperfect = \\a,n,p => va.imperfect ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + imperative = \\a,n => va.imperative ! a ! n + ++ ap.s ! Indef ! GSg Masc; + participle = {aorist = \\a,g => va.participle.aorist ! a ! g + ++ ap.s ! Indef ! g; + imperfect = \\a,g => va.participle.imperfect ! a ! g + ++ ap.s ! Indef ! g; + perfect = \\a => va.participle.perfect ! a + ++ ap.s ! Indef ! GSg Masc; + adjectival = \\a => va.participle.adjectival ! a + ++ ap.s ! Indef ! GSg Masc; + adverbial = va.participle.adverbial + ++ ap.s ! Indef ! GSg Masc}; + noun_from_verb = va.noun_from_verb ++ ap.s ! Indef ! GSg Masc; + vtype = va.vtype; + compl = \\v => va.present ! Imperfective ! Sg ! v.p + ++ ap.s ! Indef ! v.g} ; + lin ComplVQ vq qs = {present = \\a,n,p => vq.present ! a ! n ! p + ++ qs.s; + aorist = \\n,p => vq.aorist ! n ! p ++ qs.s; + imperfect = \\a,n,p => vq.imperfect ! a ! n ! p ++ qs.s; + imperative = \\a,n => vq.imperative ! a ! n ++ qs.s; + participle = {aorist = \\a,g => vq.participle.aorist ! a ! g + ++ qs.s; + imperfect = \\a,g => vq.participle.imperfect ! a ! g ++ qs.s; + perfect = \\a => vq.participle.perfect ! a ++ qs.s; + adjectival = \\a => vq.participle.adjectival ! a ++ qs.s; + adverbial = vq.participle.adverbial ++ qs.s}; + noun_from_verb = vq.noun_from_verb ++ qs.s; vtype = vq.vtype; + compl = \\v => vq.present ! Imperfective ! Sg ! v.p ++ qs.s} ; + lin ComplVS vs s = {present = \\a,n,p => vs.present ! a ! n ! p + ++ s.s; + aorist = \\n,p => vs.aorist ! n ! p ++ s.s; + imperfect = \\a,n,p => vs.imperfect ! a ! n ! p ++ s.s; + imperative = \\a,n => vs.imperative ! a ! n ++ s.s; + participle = {aorist = \\a,g => vs.participle.aorist ! a ! g + ++ s.s; + imperfect = \\a,g => vs.participle.imperfect ! a ! g ++ s.s; + perfect = \\a => vs.participle.perfect ! a ++ s.s; + adjectival = \\a => vs.participle.adjectival ! a ++ s.s; + adverbial = vs.participle.adverbial ++ s.s}; + noun_from_verb = vs.noun_from_verb ++ s.s; vtype = vs.vtype; + compl = \\v => vs.present ! Imperfective ! Sg ! v.p ++ s.s} ; + lin ComplVV vv vp = {present = \\a,n,p => vv.present ! a ! n ! p + ++ vp.present ! a ! n ! p; + aorist = \\n,p => vv.aorist ! n ! p ++ vp.aorist ! n ! p; + imperfect = \\a,n,p => vv.imperfect ! a ! n ! p + ++ vp.imperfect ! a ! n ! p; + imperative = \\a,n => vv.imperative ! a ! n + ++ vp.imperative ! a ! n; + participle = {aorist = \\a,g => vv.participle.aorist ! a ! g + ++ vp.participle.aorist ! a ! g; + imperfect = \\a,g => vv.participle.imperfect ! a ! g + ++ vp.participle.imperfect ! a ! g; + perfect = \\a => vv.participle.perfect ! a + ++ vp.participle.perfect ! a; + adjectival = \\a => vv.participle.adjectival ! a + ++ vp.participle.adjectival ! a; + adverbial = vv.participle.adverbial + ++ vp.participle.adverbial}; + noun_from_verb = vv.noun_from_verb ++ vp.noun_from_verb; + vtype = vp.vtype; + compl = \\v => vv.present ! Imperfective ! Sg ! v.p + ++ vp.compl ! {g = GSg Masc; p = P1}} ; + lin ExtAdvVP vp a = {present = \\a2,n,p => vp.present ! a2 ! n ! p + ++ a.s; + aorist = \\n,p => vp.aorist ! n ! p ++ a.s; + imperfect = \\a2,n,p => vp.imperfect ! a2 ! n ! p ++ a.s; + imperative = \\a2,n => vp.imperative ! a2 ! n ++ a.s; + participle = {aorist = \\a2,g => vp.participle.aorist ! a2 ! g + ++ a.s; + imperfect = \\a2,g => vp.participle.imperfect ! a2 ! g ++ a.s; + perfect = \\a2 => vp.participle.perfect ! a2 ++ a.s; + adjectival = \\a2 => vp.participle.adjectival ! a2 ++ a.s; + adverbial = vp.participle.adverbial ++ a.s}; + noun_from_verb = vp.noun_from_verb ++ a.s; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ a.s} ; + lin PassV2 v2 = {present = \\a,n,p => v2.present ! a ! n ! p; + aorist = \\n,p => v2.aorist ! n ! p; + imperfect = \\a,n,p => v2.imperfect ! a ! n ! p; + imperative = \\a,n => v2.imperative ! a ! n; + participle = {aorist = \\a,g => v2.participle.aorist ! a ! g; + imperfect = \\a,g => v2.participle.imperfect ! a ! g; + perfect = \\a => v2.participle.perfect ! a; + adjectival = \\a => v2.participle.adjectival ! a; + adverbial = v2.participle.adverbial}; + noun_from_verb = v2.noun_from_verb; vtype = v2.vtype; + compl = \\v => v2.present ! Imperfective ! Sg ! v.p} ; + lin ReflVP v = {present = \\a,n,p => v.present ! a ! n ! p; + aorist = \\n,p => v.aorist ! n ! p; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p; + imperative = \\a,n => v.imperative ! a ! n; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g; + perfect = \\a => v.participle.perfect ! a; + adjectival = \\a => v.participle.adjectival ! a; + adverbial = v.participle.adverbial}; + noun_from_verb = v.noun_from_verb; vtype = v.vtype; + compl = \\v2 => v.compl ! {g = GSg Masc; p = P1}} ; + lin Slash2V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p + ++ np.s ! RSubj; + aorist = \\n,p => v3.aorist ! n ! p ++ np.s ! RSubj; + imperfect = \\a,n,p => v3.imperfect ! a ! n ! p ++ np.s ! RSubj; + imperative = \\a,n => v3.imperative ! a ! n ++ np.s ! RSubj; + participle = {aorist = \\a,g => v3.participle.aorist ! a ! g + ++ np.s ! RSubj; + imperfect = \\a,g => v3.participle.imperfect ! a ! g + ++ np.s ! RSubj; + perfect = \\a => v3.participle.perfect ! a ++ np.s ! RSubj; + adjectival = \\a => v3.participle.adjectival ! a + ++ np.s ! RSubj; + adverbial = v3.participle.adverbial ++ np.s ! RSubj}; + noun_from_verb = v3.noun_from_verb ++ np.s ! RSubj; + vtype = v3.vtype; + compl = \\v => v3.present ! Imperfective ! Sg ! v.p + ++ np.s ! RSubj; + c2 = {s = v3.c2.s ++ np.s ! RSubj; c = v3.c2.c}} ; + lin Slash3V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p + ++ np.s ! RSubj; + aorist = \\n,p => v3.aorist ! n ! p ++ np.s ! RSubj; + imperfect = \\a,n,p => v3.imperfect ! a ! n ! p ++ np.s ! RSubj; + imperative = \\a,n => v3.imperative ! a ! n ++ np.s ! RSubj; + participle = {aorist = \\a,g => v3.participle.aorist ! a ! g + ++ np.s ! RSubj; + imperfect = \\a,g => v3.participle.imperfect ! a ! g + ++ np.s ! RSubj; + perfect = \\a => v3.participle.perfect ! a ++ np.s ! RSubj; + adjectival = \\a => v3.participle.adjectival ! a + ++ np.s ! RSubj; + adverbial = v3.participle.adverbial ++ np.s ! RSubj}; + noun_from_verb = v3.noun_from_verb ++ np.s ! RSubj; + vtype = v3.vtype; + compl = \\v => v3.present ! Imperfective ! Sg ! v.p + ++ np.s ! RSubj; + c2 = {s = v3.c2.s ++ np.s ! RSubj; c = v3.c2.c}} ; + lin SlashV2A v ap = {present = \\a,n,p => v.present ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + aorist = \\n,p => v.aorist ! n ! p ++ ap.s ! Indef ! GSg Masc; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + imperative = \\a,n => v.imperative ! a ! n + ++ ap.s ! Indef ! GSg Masc; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ ap.s ! Indef ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g + ++ ap.s ! Indef ! g; + perfect = \\a => v.participle.perfect ! a + ++ ap.s ! Indef ! GSg Masc; + adjectival = \\a => v.participle.adjectival ! a + ++ ap.s ! Indef ! GSg Masc; + adverbial = v.participle.adverbial ++ ap.s ! Indef ! GSg Masc}; + noun_from_verb = v.noun_from_verb ++ ap.s ! Indef ! GSg Masc; + vtype = v.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p + ++ ap.s ! Indef ! v2.g; + c2 = {s = v.c2.s ++ ap.s ! Indef ! GSg Masc; c = v.c2.c}} ; + lin SlashV2Q v qs = {present = \\a,n,p => v.present ! a ! n ! p + ++ qs.s; + aorist = \\n,p => v.aorist ! n ! p ++ qs.s; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ qs.s; + imperative = \\a,n => v.imperative ! a ! n ++ qs.s; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ qs.s; + imperfect = \\a,g => v.participle.imperfect ! a ! g ++ qs.s; + perfect = \\a => v.participle.perfect ! a ++ qs.s; + adjectival = \\a => v.participle.adjectival ! a ++ qs.s; + adverbial = v.participle.adverbial ++ qs.s}; + noun_from_verb = v.noun_from_verb ++ qs.s; vtype = v.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p ++ qs.s; + c2 = {s = v.c2.s ++ qs.s; c = v.c2.c}} ; + lin SlashV2S v s = {present = \\a,n,p => v.present ! a ! n ! p + ++ s.s; + aorist = \\n,p => v.aorist ! n ! p ++ s.s; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ s.s; + imperative = \\a,n => v.imperative ! a ! n ++ s.s; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g ++ s.s; + imperfect = \\a,g => v.participle.imperfect ! a ! g ++ s.s; + perfect = \\a => v.participle.perfect ! a ++ s.s; + adjectival = \\a => v.participle.adjectival ! a ++ s.s; + adverbial = v.participle.adverbial ++ s.s}; + noun_from_verb = v.noun_from_verb ++ s.s; vtype = v.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p ++ s.s; + c2 = {s = v.c2.s ++ s.s; c = v.c2.c}} ; + lin SlashV2V v vp = {present = \\a,n,p => v.present ! a ! n ! p + ++ vp.present ! a ! n ! p; + aorist = \\n,p => v.aorist ! n ! p ++ vp.aorist ! n ! p; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p + ++ vp.imperfect ! a ! n ! p; + imperative = \\a,n => v.imperative ! a ! n + ++ vp.imperative ! a ! n; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ vp.participle.aorist ! a ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g + ++ vp.participle.imperfect ! a ! g; + perfect = \\a => v.participle.perfect ! a + ++ vp.participle.perfect ! a; + adjectival = \\a => v.participle.adjectival ! a + ++ vp.participle.adjectival ! a; + adverbial = v.participle.adverbial ++ vp.participle.adverbial}; + noun_from_verb = v.noun_from_verb ++ vp.noun_from_verb; + vtype = vp.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p + ++ vp.compl ! {g = GSg Masc; p = P1}; + c2 = {s = v.c2.s ++ vp.present ! Imperfective ! Sg ! P1; + c = v.c2.c}} ; + lin SlashV2VNP v np v2 = {present = \\a,n,p => v.present ! a ! n + ! p + ++ np.s ! RSubj ++ v2.present ! a ! n ! p; + aorist = \\n,p => v.aorist ! n ! p + ++ np.s ! RSubj ++ v2.aorist ! n ! p; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p + ++ np.s ! RSubj ++ v2.imperfect ! a ! n ! p; + imperative = \\a,n => v.imperative ! a ! n + ++ np.s ! RSubj ++ v2.imperative ! a ! n; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ np.s ! RSubj + ++ v2.participle.aorist ! a ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g + ++ np.s ! RSubj + ++ v2.participle.imperfect ! a + ! g; + perfect = \\a => v.participle.perfect ! a + ++ np.s ! RSubj + ++ v2.participle.perfect ! a; + adjectival = \\a => v.participle.adjectival ! a + ++ np.s ! RSubj + ++ v2.participle.adjectival + ! a; + adverbial = v.participle.adverbial + ++ np.s ! RSubj ++ v2.participle.adverbial}; + noun_from_verb = v.noun_from_verb + ++ np.s ! RSubj ++ v2.noun_from_verb; + vtype = v2.vtype; + compl = \\v3 => v.present ! Imperfective ! Sg ! v3.p + ++ np.s ! RSubj ++ v2.compl ! {g = GSg Masc; p = P1}; + c2 = {s = v.c2.s ++ np.s ! RSubj ++ v2.c2.s; c = v2.c2.c}} ; lin SlashV2a v = v ** {compl = \\_ => []} ; - + lin SlashVV vv v = {present = \\a,n,p => vv.present ! a ! n ! p + ++ v.present ! a ! n ! p; + aorist = \\n,p => vv.aorist ! n ! p ++ v.aorist ! n ! p; + imperfect = \\a,n,p => vv.imperfect ! a ! n ! p + ++ v.imperfect ! a ! n ! p; + imperative = \\a,n => vv.imperative ! a ! n + ++ v.imperative ! a ! n; + participle = {aorist = \\a,g => vv.participle.aorist ! a ! g + ++ v.participle.aorist ! a ! g; + imperfect = \\a,g => vv.participle.imperfect ! a ! g + ++ v.participle.imperfect ! a ! g; + perfect = \\a => vv.participle.perfect ! a + ++ v.participle.perfect ! a; + adjectival = \\a => vv.participle.adjectival ! a + ++ v.participle.adjectival ! a; + adverbial = vv.participle.adverbial ++ v.participle.adverbial}; + noun_from_verb = vv.noun_from_verb ++ v.noun_from_verb; + vtype = v.vtype; + compl = \\v2 => vv.present ! Imperfective ! Sg ! v2.p + ++ v.compl ! {g = GSg Masc; p = P1}; + c2 = {s = vv.present ! Imperfective ! Sg ! P1 ++ v.c2.s; + c = v.c2.c}} ; + lin UseComp c = {present = \\a,n,p => c.s; aorist = \\n,p => c.s; + imperfect = \\a,n,p => c.s; imperative = \\a,n => c.s; + participle = {aorist = \\a,g => c.s; imperfect = \\a,g => c.s; + perfect = \\a => c.s; adjectival = \\a => c.s; adverbial = c.s}; + noun_from_verb = c.s; vtype = VNormal; compl = \\v => c.s} ; + lin UseCopula = {present = \\a,n,p => []; aorist = \\n,p => []; + imperfect = \\a,n,p => []; imperative = \\a,n => []; + participle = {aorist = \\a,g => []; imperfect = \\a,g => []; + perfect = \\a => []; adjectival = \\a => []; adverbial = []}; + noun_from_verb = []; vtype = VNormal; compl = \\v => []} ; + lin UseV v = v ** {compl = \\_ => []} ; + lin VPSlashPrep vp p = {present = \\a,n,p2 => vp.present ! a ! n + ! p2 + ++ p.s; + aorist = \\n,p2 => vp.aorist ! n ! p2 ++ p.s; + imperfect = \\a,n,p2 => vp.imperfect ! a ! n ! p2 ++ p.s; + imperative = \\a,n => vp.imperative ! a ! n ++ p.s; + participle = {aorist = \\a,g => vp.participle.aorist ! a ! g + ++ p.s; + imperfect = \\a,g => vp.participle.imperfect ! a ! g ++ p.s; + perfect = \\a => vp.participle.perfect ! a ++ p.s; + adjectival = \\a => vp.participle.adjectival ! a ++ p.s; + adverbial = vp.participle.adverbial ++ p.s}; + noun_from_verb = vp.noun_from_verb ++ p.s; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ p.s; + c2 = {s = vp.present ! Imperfective ! Sg ! P1 ++ p.s; c = p.c}} ; } From 6aeda22ed61c961c8694e5314061150509087bcc Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 16:28:55 +0200 Subject: [PATCH 136/169] fix imperatives --- src/macedonian/CatMkd.gf | 1 + src/macedonian/PhraseMkd.gf | 6 +++--- src/macedonian/ResMkd.gf | 6 ++++++ src/macedonian/SentenceMkd.gf | 12 +++++++++--- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 6d5c1301..052af507 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -46,5 +46,6 @@ lincat IP = {s : Str; g : GenNum} ; lincat IQuant = {s : GenNum => Str} ; lincat IDet = {s : Gender => Str; n : Number} ; lincat Subj = {s : Str} ; +lincat Imp = {s : Polarity => GenNum => Str} ; } diff --git a/src/macedonian/PhraseMkd.gf b/src/macedonian/PhraseMkd.gf index e88bc653..eaf51a2a 100644 --- a/src/macedonian/PhraseMkd.gf +++ b/src/macedonian/PhraseMkd.gf @@ -9,9 +9,9 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in { lin UttCard c = {s = c.s} ; lin UttIAdv i = {s = i.s} ; lin UttIP ip = {s = ip.s} ; - lin UttImpPl p i = {s = p.s ++ i.s} ; - lin UttImpPol p i = {s = p.s ++ i.s} ; - lin UttImpSg p i = {s = p.s ++ i.s} ; + lin UttImpPl p i = {s = p.s ++ i.s ! p.p ! GPl} ; + lin UttImpPol p i = {s = p.s ++ i.s ! p.p ! GPl} ; + lin UttImpSg p i = {s = p.s ++ i.s ! p.p ! GSg Masc} ; lin UttInterj i = i ; lin UttNP np = {s = np.s ! RSubj} ; lin UttQS s = s ; diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 83ba99de..f492fd75 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -187,6 +187,12 @@ nnum2num : NNumber -> Number = \n -> NCountable => Pl } ; +genNum2num : GenNum -> Number = \gn -> + case gn of { + GSg _ => Sg ; + GPl => Pl + } ; + auxBe = { present : Number => Person => Str = table { diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index cfe0a256..0391ef6f 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -1,12 +1,18 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { - lin AdvImp a i = {s = a.s ++ i.s} ; + lin AdvImp a i = {s = \\p,gn => a.s ++ i.s ! p ! gn} ; lin AdvS a s = {s = a.s ++ s.s} ; lin AdvSlash c a = {s = c.s ++ a.s} ; lin EmbedQS qs = {s = qs.s} ; lin EmbedS s = {s = s.s} ; - lin EmbedVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin EmbedVP vp = {s = vp.present ! Perfective ! Sg ! P1} ; lin ExtAdvS a s = {s = a.s ++ s.s} ; - lin ImpVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin ImpVP vp = { + s = \\p,gn=>case p of { + Pos => vp.imperative ! Perfective ! genNum2num gn ; + Neg => "не" ++ vp.imperative ! Imperfective ! genNum2num gn + } ++ + vp.compl ! {g=gn; p=P2} + } ; lin PredSCVP sc vp = {s = \\t,a,p,o => sc.s ++ vp.present ! Imperfective ! Sg ! P1} ; lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ; From 019a347246fa28b0c76c4c96b5f65a6c59a6ff37 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 17:21:09 +0200 Subject: [PATCH 137/169] fixes --- src/macedonian/CatMkd.gf | 1 + src/macedonian/VerbMkd.gf | 155 +++----------------------------------- 2 files changed, 12 insertions(+), 144 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 052af507..b79161ed 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -47,5 +47,6 @@ lincat IQuant = {s : GenNum => Str} ; lincat IDet = {s : Gender => Str; n : Number} ; lincat Subj = {s : Str} ; lincat Imp = {s : Polarity => GenNum => Str} ; +lincat Comp = {s : GenNum => Str} ; } diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index c9314fff..b49a9dcc 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -27,141 +27,18 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { noun_from_verb = a.s ++ v.noun_from_verb; vtype = v.vtype; compl = \\v2 => a.s ++ v.compl ! {g = GSg Masc; p = P1}; c2 = {s = a.s ++ v.c2.s; c = v.c2.c}} ; - lin AdvVP vp a = {present = \\a2,n,p => vp.present ! a2 ! n ! p - ++ a.s; - aorist = \\n,p => vp.aorist ! n ! p ++ a.s; - imperfect = \\a2,n,p => vp.imperfect ! a2 ! n ! p ++ a.s; - imperative = \\a2,n => vp.imperative ! a2 ! n ++ a.s; - participle = {aorist = \\a2,g => vp.participle.aorist ! a2 ! g - ++ a.s; - imperfect = \\a2,g => vp.participle.imperfect ! a2 ! g ++ a.s; - perfect = \\a2 => vp.participle.perfect ! a2 ++ a.s; - adjectival = \\a2 => vp.participle.adjectival ! a2 ++ a.s; - adverbial = vp.participle.adverbial ++ a.s}; - noun_from_verb = vp.noun_from_verb ++ a.s; vtype = vp.vtype; - compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ a.s} ; - lin AdvVPSlash v a = {present = \\a2,n,p => v.present ! a2 ! n ! p - ++ a.s; - aorist = \\n,p => v.aorist ! n ! p ++ a.s; - imperfect = \\a2,n,p => v.imperfect ! a2 ! n ! p ++ a.s; - imperative = \\a2,n => v.imperative ! a2 ! n ++ a.s; - participle = {aorist = \\a2,g => v.participle.aorist ! a2 ! g - ++ a.s; - imperfect = \\a2,g => v.participle.imperfect ! a2 ! g ++ a.s; - perfect = \\a2 => v.participle.perfect ! a2 ++ a.s; - adjectival = \\a2 => v.participle.adjectival ! a2 ++ a.s; - adverbial = v.participle.adverbial ++ a.s}; - noun_from_verb = v.noun_from_verb ++ a.s; vtype = v.vtype; - compl = \\v2 => v.compl ! {g = GSg Masc; p = P1} ++ a.s; - c2 = {s = v.c2.s ++ a.s; c = v.c2.c}} ; - lin CompAP ap = {s = ap.s ! Indef ! GSg Masc} ; - lin CompAdv a = {s = a.s} ; - lin CompCN cn = {s = cn.s ! Indef ! Sg} ; - lin CompNP np = {s = np.s ! RSubj} ; + lin AdvVP vp adv = vp ** {compl = \\a => vp.compl ! a ++ adv.s} ; + lin AdvVPSlash vps adv = vps ** {compl = \\a => vps.compl ! a ++ adv.s} ; + lin CompAP ap = {s = \\gn => ap.s ! Indef ! gn} ; + lin CompAdv a = {s = \\_ => a.s} ; + lin CompCN cn = {s = \\_ => cn.s ! Indef ! Sg} ; + lin CompNP np = {s = \\_ => np.s ! RSubj} ; lin ComplSlash vp np = vp ** {compl = \\a => vp.compl ! a ++ vp.c2.s ++ np.s ! RObj vp.c2.c} ; - lin ComplVA va ap = {present = \\a,n,p => va.present ! a ! n ! p - ++ ap.s ! Indef ! GSg Masc; - aorist = \\n,p => va.aorist ! n ! p ++ ap.s ! Indef ! GSg Masc; - imperfect = \\a,n,p => va.imperfect ! a ! n ! p - ++ ap.s ! Indef ! GSg Masc; - imperative = \\a,n => va.imperative ! a ! n - ++ ap.s ! Indef ! GSg Masc; - participle = {aorist = \\a,g => va.participle.aorist ! a ! g - ++ ap.s ! Indef ! g; - imperfect = \\a,g => va.participle.imperfect ! a ! g - ++ ap.s ! Indef ! g; - perfect = \\a => va.participle.perfect ! a - ++ ap.s ! Indef ! GSg Masc; - adjectival = \\a => va.participle.adjectival ! a - ++ ap.s ! Indef ! GSg Masc; - adverbial = va.participle.adverbial - ++ ap.s ! Indef ! GSg Masc}; - noun_from_verb = va.noun_from_verb ++ ap.s ! Indef ! GSg Masc; - vtype = va.vtype; - compl = \\v => va.present ! Imperfective ! Sg ! v.p - ++ ap.s ! Indef ! v.g} ; - lin ComplVQ vq qs = {present = \\a,n,p => vq.present ! a ! n ! p - ++ qs.s; - aorist = \\n,p => vq.aorist ! n ! p ++ qs.s; - imperfect = \\a,n,p => vq.imperfect ! a ! n ! p ++ qs.s; - imperative = \\a,n => vq.imperative ! a ! n ++ qs.s; - participle = {aorist = \\a,g => vq.participle.aorist ! a ! g - ++ qs.s; - imperfect = \\a,g => vq.participle.imperfect ! a ! g ++ qs.s; - perfect = \\a => vq.participle.perfect ! a ++ qs.s; - adjectival = \\a => vq.participle.adjectival ! a ++ qs.s; - adverbial = vq.participle.adverbial ++ qs.s}; - noun_from_verb = vq.noun_from_verb ++ qs.s; vtype = vq.vtype; - compl = \\v => vq.present ! Imperfective ! Sg ! v.p ++ qs.s} ; - lin ComplVS vs s = {present = \\a,n,p => vs.present ! a ! n ! p - ++ s.s; - aorist = \\n,p => vs.aorist ! n ! p ++ s.s; - imperfect = \\a,n,p => vs.imperfect ! a ! n ! p ++ s.s; - imperative = \\a,n => vs.imperative ! a ! n ++ s.s; - participle = {aorist = \\a,g => vs.participle.aorist ! a ! g - ++ s.s; - imperfect = \\a,g => vs.participle.imperfect ! a ! g ++ s.s; - perfect = \\a => vs.participle.perfect ! a ++ s.s; - adjectival = \\a => vs.participle.adjectival ! a ++ s.s; - adverbial = vs.participle.adverbial ++ s.s}; - noun_from_verb = vs.noun_from_verb ++ s.s; vtype = vs.vtype; - compl = \\v => vs.present ! Imperfective ! Sg ! v.p ++ s.s} ; - lin ComplVV vv vp = {present = \\a,n,p => vv.present ! a ! n ! p - ++ vp.present ! a ! n ! p; - aorist = \\n,p => vv.aorist ! n ! p ++ vp.aorist ! n ! p; - imperfect = \\a,n,p => vv.imperfect ! a ! n ! p - ++ vp.imperfect ! a ! n ! p; - imperative = \\a,n => vv.imperative ! a ! n - ++ vp.imperative ! a ! n; - participle = {aorist = \\a,g => vv.participle.aorist ! a ! g - ++ vp.participle.aorist ! a ! g; - imperfect = \\a,g => vv.participle.imperfect ! a ! g - ++ vp.participle.imperfect ! a ! g; - perfect = \\a => vv.participle.perfect ! a - ++ vp.participle.perfect ! a; - adjectival = \\a => vv.participle.adjectival ! a - ++ vp.participle.adjectival ! a; - adverbial = vv.participle.adverbial - ++ vp.participle.adverbial}; - noun_from_verb = vv.noun_from_verb ++ vp.noun_from_verb; - vtype = vp.vtype; - compl = \\v => vv.present ! Imperfective ! Sg ! v.p - ++ vp.compl ! {g = GSg Masc; p = P1}} ; - lin ExtAdvVP vp a = {present = \\a2,n,p => vp.present ! a2 ! n ! p - ++ a.s; - aorist = \\n,p => vp.aorist ! n ! p ++ a.s; - imperfect = \\a2,n,p => vp.imperfect ! a2 ! n ! p ++ a.s; - imperative = \\a2,n => vp.imperative ! a2 ! n ++ a.s; - participle = {aorist = \\a2,g => vp.participle.aorist ! a2 ! g - ++ a.s; - imperfect = \\a2,g => vp.participle.imperfect ! a2 ! g ++ a.s; - perfect = \\a2 => vp.participle.perfect ! a2 ++ a.s; - adjectival = \\a2 => vp.participle.adjectival ! a2 ++ a.s; - adverbial = vp.participle.adverbial ++ a.s}; - noun_from_verb = vp.noun_from_verb ++ a.s; vtype = vp.vtype; - compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ a.s} ; - lin PassV2 v2 = {present = \\a,n,p => v2.present ! a ! n ! p; - aorist = \\n,p => v2.aorist ! n ! p; - imperfect = \\a,n,p => v2.imperfect ! a ! n ! p; - imperative = \\a,n => v2.imperative ! a ! n; - participle = {aorist = \\a,g => v2.participle.aorist ! a ! g; - imperfect = \\a,g => v2.participle.imperfect ! a ! g; - perfect = \\a => v2.participle.perfect ! a; - adjectival = \\a => v2.participle.adjectival ! a; - adverbial = v2.participle.adverbial}; - noun_from_verb = v2.noun_from_verb; vtype = v2.vtype; - compl = \\v => v2.present ! Imperfective ! Sg ! v.p} ; - lin ReflVP v = {present = \\a,n,p => v.present ! a ! n ! p; - aorist = \\n,p => v.aorist ! n ! p; - imperfect = \\a,n,p => v.imperfect ! a ! n ! p; - imperative = \\a,n => v.imperative ! a ! n; - participle = {aorist = \\a,g => v.participle.aorist ! a ! g; - imperfect = \\a,g => v.participle.imperfect ! a ! g; - perfect = \\a => v.participle.perfect ! a; - adjectival = \\a => v.participle.adjectival ! a; - adverbial = v.participle.adverbial}; - noun_from_verb = v.noun_from_verb; vtype = v.vtype; - compl = \\v2 => v.compl ! {g = GSg Masc; p = P1}} ; + lin ComplVA va ap = va ** {compl = \\agr => ap.s ! Indef ! agr.g} ; + lin ComplVQ vq qs = vq ** {compl = \\_ => qs.s} ; + lin ComplVS vs s = vs ** {compl = \\_ => s.s} ; + lin ComplVV vv vp = vv ** {compl = \\agr => vp.compl ! agr} ; + lin ExtAdvVP vp a = vp ** {compl = \\agr => vp.compl ! agr ++ SOFT_BIND++"," ++ a.s} ; lin Slash2V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p ++ np.s ! RSubj; aorist = \\n,p => v3.aorist ! n ! p ++ np.s ! RSubj; @@ -322,16 +199,6 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { ++ v.compl ! {g = GSg Masc; p = P1}; c2 = {s = vv.present ! Imperfective ! Sg ! P1 ++ v.c2.s; c = v.c2.c}} ; - lin UseComp c = {present = \\a,n,p => c.s; aorist = \\n,p => c.s; - imperfect = \\a,n,p => c.s; imperative = \\a,n => c.s; - participle = {aorist = \\a,g => c.s; imperfect = \\a,g => c.s; - perfect = \\a => c.s; adjectival = \\a => c.s; adverbial = c.s}; - noun_from_verb = c.s; vtype = VNormal; compl = \\v => c.s} ; - lin UseCopula = {present = \\a,n,p => []; aorist = \\n,p => []; - imperfect = \\a,n,p => []; imperative = \\a,n => []; - participle = {aorist = \\a,g => []; imperfect = \\a,g => []; - perfect = \\a => []; adjectival = \\a => []; adverbial = []}; - noun_from_verb = []; vtype = VNormal; compl = \\v => []} ; lin UseV v = v ** {compl = \\_ => []} ; lin VPSlashPrep vp p = {present = \\a,n,p2 => vp.present ! a ! n ! p2 From 263b6682493e6ba1e71e41e2c356b4c9f84fb040 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 18:04:50 +0200 Subject: [PATCH 138/169] more fixes --- src/macedonian/CatMkd.gf | 2 +- src/macedonian/NounMkd.gf | 73 +++++++++++++++++++++++++-------------- 2 files changed, 48 insertions(+), 27 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index b79161ed..16b5077b 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -32,7 +32,7 @@ lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; lincat NP = {s : Role => Str; vocative: Str; a : Agr} ; lincat Num = {s : Str; n : NNumber} ; lincat Quant = {s : GenNum => Str; sp : Species} ; -lincat Det = {s : Gender => Str; n : NNumber; sp : Species} ; +lincat Det, DAP = {s : Gender => Str; n : NNumber; sp : Species} ; lincat VP = Verb ** {compl : Agr => Str} ; lincat VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ; diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index 05e70b08..3b23fd20 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -22,7 +22,11 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { } ++ cn.vocative ! n; count_form = ap.s ! Indef ! GPl ++ cn.count_form; g = cn.g} ; - lin AdjDAP d ap = {s = d.s ++ ap.s ! Indef ! GSg Masc} ; + lin AdjDAP d ap = { + s = \\g => d.s ! g ++ ap.s ! Indef ! genNum g (nnum2num d.n) ; + n = d.n ; + sp = d.sp + } ; lin AdvCN cn adv = { s = \\s,n => cn.s ! s ! n ++ adv.s; count_form = cn.count_form ++ adv.s; @@ -30,22 +34,24 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { g = cn.g } ; lin AdvNP np a = {s = \\r => np.s ! r ++ a.s; - vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ; + vocative = np.vocative ++ a.s; a = np.a} ; lin ApposCN cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; count_form = cn.count_form ++ np.s ! RSubj; vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; - lin ComplN2 n2 np = {s = \\s,n => n2.s ! s ! n ++ np.s ! RSubj; - count_form = n2.count_form ++ np.s ! RSubj; - vocative = \\n => n2.vocative ! n ++ np.vocative; g = n2.g} ; - lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ np.s ! RSubj; - count_form = n3.count_form ++ np.s ! RSubj; - vocative = \\n => n3.vocative ! n ++ np.vocative; - rel = \\s,g => n3.rel ! s ! g ++ np.s ! RSubj; - relType = n3.relType; g = n3.g; - c2 = {s = n3.c2.s ++ np.s ! RSubj; c = n3.c2.c}} ; + lin ComplN2 n2 np = {s = \\s,n => n2.s ! s ! n ++ n2.c2.s ++ np.s ! RObj n2.c2.c; + count_form = n2.count_form ++ n2.c2.s ++ np.s ! RObj n2.c2.c; + vocative = \\n => n2.vocative ! n ++ n2.c2.s ++ np.s ! RObj n2.c2.c; + g = n2.g} ; + lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ n3.c2.s ++ np.s ! RObj n3.c2.c; + count_form = n3.count_form ++ n3.c2.s ++ np.s ! RObj n3.c2.c; + vocative = \\n => n3.vocative ! n ++ n3.c2.s ++ np.s ! RObj n3.c2.c; + rel = \\s,g => n3.s ! s ! genNum2num g ++ n3.c2.s ++ np.s ! RObj n3.c2.c; + relType = AdvMod; + g = n3.g; + c2 = n3.c3} ; lin CountNP d np = {s = \\r => d.s ! Masc ++ np.s ! r; vocative = d.s ! Masc ++ np.vocative; - a = {g = np.a.g; p = np.a.p}} ; + a = np.a} ; lin DefArt = {s = \\_=>[]; sp = Def Unspecified} ; lin DetCN det cn = { s = \\r => case det.n of { @@ -56,7 +62,7 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { a = {g = genNum cn.g (nnum2num det.n) ; p = P3}; } ; - lin DetDAP d = {s = d.s ! Masc} ; + lin DetDAP d = d ; lin DetNP d = {s = \\r => d.s ! Masc; vocative = d.s ! Masc; a = {g = GSg Masc; p = P1}} ; lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s; @@ -64,11 +70,15 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { sp = q.sp} ; lin DetQuantOrd q n o = {s = \\g => q.s ! GSg Masc ++ n.s ++ o.s; n = n.n; sp = q.sp} ; - lin ExtAdvNP np a = {s = \\r => np.s ! r ++ a.s; - vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ; + lin ExtAdvNP np a = { + s = \\r => np.s ! r ++ SOFT_BIND++"," ++ a.s; + vocative = np.vocative ++ SOFT_BIND++"," ++ a.s; + a = np.a + } ; lin IndefArt = {s = \\_=>[]; sp = Indef} ; lin MassNP cn = {s = \\r => cn.s ! Indef ! Sg; - vocative = cn.vocative ! Sg; a = {g = GSg Masc; p = P1}} ; + vocative = cn.vocative ! Sg; + a = {g = GSg cn.g; p = P3}} ; lin NumCard c = {s = c.s; n = NNum Sg} ; lin NumDecimal d = {s = d.s} ; lin NumDigits d = {s = d.s} ; @@ -97,11 +107,21 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { lin PossNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; count_form = cn.count_form ++ np.s ! RSubj; vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; - lin PossPron p = {s = \\g => p.s ! RSubj; sp = Indef} ; - lin PredetNP p np = {s = \\r => p.s ++ np.s ! r; - vocative = p.s ++ np.vocative; a = {g = np.a.g; p = np.a.p}} ; - lin QuantityNP d mu = {s = \\r => d.s ++ mu.s; - vocative = d.s ++ mu.s; a = {g = GSg Masc; p = P1}} ; + lin PossPron p = {s = p.poss ! Def Unspecified; sp = Indef} ; + lin PredetNP p np = { + s = \\r => p.s ++ np.s ! r; + vocative = p.s ++ np.vocative; + a = np.a + } ; + lin QuantityNP d mu = + let s = case mu.isPre of { + True => mu.s ++ d.s ; + False => d.s ++ mu.s + } + in { s = \\r => s; + vocative = s; + a = {g = GSg Masc; p = P3} + } ; lin RelCN cn rs = { s = \\sp,n => cn.s ! sp ! n ++ rs.s ! genNum cn.g n ; count_form = cn.count_form ++ rs.s ! GPl ; @@ -119,9 +139,10 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { count_form = n3.count_form; vocative = \\n => n3.vocative ! n; rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g; c2 = {s = n3.c2.s; c = n3.c2.c}} ; - lin UseN2 n2 = {s = \\s,n => n2.s ! s ! n; - count_form = n2.count_form; vocative = \\n => n2.vocative ! n; - g = n2.g} ; - lin UsePN pn = {s = \\r => pn.s; vocative = pn.s; - a = {g = GSg Masc; p = P1}} ; + lin UseN2 n2 = n2 ; + lin UsePN pn = { + s = \\r => pn.s; + vocative = pn.s; + a = {g = GSg Masc; p = P3} + } ; } From da0e273d3d52acba01e3934898d12ab203751708 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 09:13:38 +0200 Subject: [PATCH 139/169] improved several functions --- src/macedonian/AdjectiveMkd.gf | 14 ++++++++------ src/macedonian/CatMkd.gf | 2 +- src/macedonian/NounMkd.gf | 4 ++-- src/macedonian/QuestionMkd.gf | 23 +++++++++++++---------- src/macedonian/RelativeMkd.gf | 4 ++-- src/macedonian/ResMkd.gf | 4 ++-- src/macedonian/SentenceMkd.gf | 4 ++-- 7 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/macedonian/AdjectiveMkd.gf b/src/macedonian/AdjectiveMkd.gf index 9f1f527b..2f59be84 100644 --- a/src/macedonian/AdjectiveMkd.gf +++ b/src/macedonian/AdjectiveMkd.gf @@ -3,19 +3,21 @@ concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in { lin AdAP a ap = {s = \\s,g => a.s ++ ap.s ! s ! g; isPre = ap.isPre} ; lin AdjOrd o = {s = \\s,g => o.s; isPre = False} ; - lin AdvAP ap a = {s = \\s,g => ap.s ! s ! g ++ a.s; - isPre = ap.isPre} ; + lin AdvAP ap adv = { + s = \\s,g => ap.s ! s ! g ++ adv.s; + isPre = False + } ; lin CAdvAP c ap np = {s = \\s,g => c.s ++ ap.s ! s ! g ++ np.s ! RSubj; isPre = ap.isPre} ; - lin ComparA a np = {s = \\s,g => a.s ! s ! g ++ np.s ! RSubj; + lin ComparA a np = {s = \\s,g => "по" ++ BIND ++ a.s ! s ! g ++ "од" ++ np.s ! RPrep; isPre = False} ; - lin ComplA2 a2 np = {s = \\s,g => a2.s ! s ! g ++ np.s ! RSubj; + lin ComplA2 a2 np = {s = \\s,g => a2.s ! s ! g ++ a2.c2.s ++ np.s ! RObj a2.c2.c; isPre = False} ; lin PositA a = a ** {isPre = True} ; lin ReflA2 a2 = {s = \\s,g => a2.s ! s ! g; isPre = False} ; lin SentAP ap sc = {s = \\s,g => ap.s ! s ! g ++ sc.s; isPre = ap.isPre} ; - lin UseA2 a2 = {s = \\s,g => a2.s ! s ! g; isPre = False} ; - lin UseComparA a = {s = \\s,g => a.s ! s ! g; isPre = False} ; + lin UseA2 a2 = {s = a2.s; isPre = True} ; + lin UseComparA a = {s = \\s,g => "по" ++ BIND ++ a.s ! s ! g; isPre = True} ; } diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 16b5077b..e8bf6e81 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -38,7 +38,7 @@ lincat VP = Verb ** {compl : Agr => Str} ; lincat VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ; lincat S,QS = {s : Str} ; lincat RS = {s : GenNum => Str} ; -lincat Cl = {s : ResMkd.Tense => Anteriority => Polarity => Order => Str} ; +lincat Cl = {s : Order => ResMkd.Tense => Anteriority => Polarity => Str} ; lincat QCl = {s : ResMkd.Tense => Anteriority => Polarity => Str} ; lincat RCl = {s : GenNum => ResMkd.Tense => Anteriority => Polarity => Str} ; lincat RP = {s : GenNum => Str} ; diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index 3b23fd20..87f0fb97 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -95,8 +95,8 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { } ; lin OrdDigits d = {s = d.s} ; lin OrdNumeral n = {s = n.s} ; - lin OrdNumeralSuperl n a = {s = n.s ++ a.s ! Indef ! GSg Masc} ; - lin OrdSuperl a = {s = a.s ! Indef ! GSg Masc} ; + lin OrdNumeralSuperl n a = {s = n.s ++ "нај" ++ BIND ++ a.s ! Indef ! GSg Masc} ; + lin OrdSuperl a = {s = "нај" ++ BIND ++ a.s ! Indef ! GSg Masc} ; lin PPartNP np v2 = {s = \\r => np.s ! r ++ v2.present ! Imperfective ! Sg ! np.a.p; vocative = np.vocative ++ v2.present ! Imperfective ! Sg ! np.a.p; diff --git a/src/macedonian/QuestionMkd.gf b/src/macedonian/QuestionMkd.gf index a6c50c0d..83aa6f7b 100644 --- a/src/macedonian/QuestionMkd.gf +++ b/src/macedonian/QuestionMkd.gf @@ -3,17 +3,20 @@ concrete QuestionMkd of Question = CatMkd ** open Prelude,ResMkd in { lin AdvIP ip a = {s = ip.s ++ a.s; g = ip.g} ; lin CompIAdv i = {s = i.s} ; lin CompIP ip = {s = ip.s} ; - lin IdetCN i cn = {s = i.s ! cn.g ++ cn.s ! Indef ! i.n; - g = GSg Masc} ; - lin IdetIP i = {s = i.s ! Masc; g = GSg Masc} ; - lin IdetQuant i n = {s = \\g => i.s ! GSg Masc ++ n.s; n = Sg} ; - lin PrepIP p ip = {s = p.s ++ ip.s} ; + lin IdetCN idet cn = { + s = idet.s ! cn.g ++ cn.s ! Indef ! idet.n; + g = genNum cn.g idet.n + } ; + lin IdetIP idet = {s = idet.s ! Masc; g = genNum Masc idet.n} ; + lin IdetQuant i n = { + s = \\g => i.s ! GSg Masc ++ n.s; + n = Sg + } ; + lin PrepIP p ip = {s : Str = p.s ++ ip.s} ; lincat QVP = {s : Str} ; - lin QuestCl cl = {s = \\t,a,p => cl.s ! t ! a ! p ! Quest} ; - lin QuestIAdv i cl = {s = \\t,a,p => i.s - ++ cl.s ! t ! a ! p ! Main} ; + lin QuestCl cl = {s = cl.s ! Quest} ; + lin QuestIAdv i cl = {s = \\t,a,p => i.s ++ cl.s ! Main ! t ! a ! p} ; lin QuestIComp i np = {s = \\t,a,p => i.s ++ np.s ! RSubj} ; lin QuestSlash ip c = {s = \\t,a,p => ip.s ++ c.s} ; - lin QuestVP ip vp = {s = \\t,a,p => ip.s - ++ vp.present ! Imperfective ! Sg ! P1} ; + lin QuestVP ip vp = {s = mkClause ip.s {g=ip.g; p=P3} vp ! Main} ; } diff --git a/src/macedonian/RelativeMkd.gf b/src/macedonian/RelativeMkd.gf index 5cb027d6..975eb194 100644 --- a/src/macedonian/RelativeMkd.gf +++ b/src/macedonian/RelativeMkd.gf @@ -7,9 +7,9 @@ concrete RelativeMkd of Relative = CatMkd ** open Prelude,ResMkd in { GPl => "кои" } } ; - lin RelCl cl = {s = \\g,t,a,p => cl.s ! t ! a ! p ! Main} ; + lin RelCl cl = {s = \\g => cl.s ! Main} ; lin RelSlash rp c = {s = \\g,t,a,p => rp.s ! g ++ c.s} ; lin RelVP rp vp = { - s = \\gn,t,a,p => mkClause (rp.s ! gn) {g=gn; p=P3} vp ! t ! a ! p ! Main + s = \\gn => mkClause (rp.s ! gn) {g=gn; p=P3} vp ! Main } ; } diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index f492fd75..c02754ec 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -286,13 +286,13 @@ auxHave = { } } ; -mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Tense => Anteriority => Polarity => Order => Str +mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Order => Tense => Anteriority => Polarity => Str = \subj,agr,vp -> let n = case agr.g of { GSg _ => Sg ; GPl => Pl } - in \\t,a,p,o => + in \\o,t,a,p => case of { => subj ++ neg ++ vp.present ! Imperfective ! n ! agr.p ++ li ++ vp.compl ! agr ; => case o of { diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index 0391ef6f..d1c6b619 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -18,13 +18,13 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ; lin RelS s rs = {s = s.s ++ rs.s ! GSg Masc} ; lin SSubjS s s2 s3 = {s = s.s ++ s2.s ++ s3.s} ; - lin SlashPrep cl p = {s = cl.s ! VPresent ! Simul ! Pos ! Main + lin SlashPrep cl p = {s = cl.s ! Main ! VPresent ! Simul ! Pos ++ p.s} ; lin SlashVP np v = {s = np.s ! RSubj ++ v.present ! Imperfective ! Sg ! np.a.p} ; lin SlashVS np vs s = {s = np.s ! RSubj ++ vs.present ! Imperfective ! Sg ! np.a.p ++ s.s} ; - lin UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main} ; + lin UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! Main ! t.t ! t.a ! p.p} ; lin UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ; lin UseRCl t p cl = {s = \\gn => t.s ++ p.s ++ cl.s ! gn ! t.t ! t.a ! p.p} ; lin UseSlash t p c = {s = t.s ++ p.s ++ c.s} ; From 6f6405b90efdf881fd8e44bd1dd7bf057f2c23b8 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 09:35:08 +0200 Subject: [PATCH 140/169] make it compile again --- src/albanian/CatSqi.gf | 97 +------ src/albanian/MorphoSqi.gf | 540 +++++++++++++++++++------------------- src/albanian/NounSqi.gf | 3 +- 3 files changed, 285 insertions(+), 355 deletions(-) diff --git a/src/albanian/CatSqi.gf b/src/albanian/CatSqi.gf index b5143981..ca515778 100644 --- a/src/albanian/CatSqi.gf +++ b/src/albanian/CatSqi.gf @@ -1,13 +1,15 @@ concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in { flags coding = "UTF-8" ; - lincat A = {s : Case => Gender => Number => Str; clit : Bool} ; - lincat A2 = {s : Case => Gender => Number => Str; clit : Bool; - c2 : {s : Str}} ; + lincat A = Adj ; + lincat A2 = Adj ** {c2 : Compl} ; + lincat V, VA, VV, VS, VQ = Verb ; + lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ; + lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ; + lincat Prep = Compl ; lincat ACard = {s : Str} ; - lincat AP = {s : Case => Gender => Number => Str; isPre : Bool} ; - lincat CN = {s : Species => Case => Number => Case => Str; - g : Gender} ; + lincat AP = {s : Species => Case => Gender => Number => Str} ; + lincat CN = Noun ; lincat Card = {s : Str} ; lincat Cl = {s : Str} ; lincat ClSlash = {s : Str} ; @@ -15,7 +17,7 @@ concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in { lincat Conj = {s : Str} ; lincat DAP = {s : Str} ; lincat Decimal = {s : Str; n : Number; hasDot : Bool} ; - lincat Det = {s : Str; n : Number; sp : Species} ; + lincat Det = {s : Case => Gender => Str; spec : Species; n : Number} ; lincat Digits = {s : Str; n : Number; tail : DTail} ; lincat GN = {s : Str} ; lincat IComp = {s : Str} ; @@ -24,23 +26,21 @@ concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in { lincat IQuant = {s : Str} ; lincat Imp = {s : Str} ; lincat LN = {s : Str} ; - lincat N = {s : Species => Case => Number => Str; g : Gender} ; + lincat N = Noun ; lincat N2 = {s : Species => Case => Number => Str; g : Gender; c2 : {s : Str}} ; lincat N3 = {s : Species => Case => Number => Str; g : Gender; c2 : {s : Str}; c3 : {s : Str}} ; - lincat NP = {s : Case => Str; g : Gender} ; + lincat NP = {s : Case => Str; a : Agr} ; lincat Num = {s : Str; n : Number} ; lincat Numeral = {s : Str} ; lincat Ord = {s : Str} ; lincat PN = {s : Str} ; lincat Predet = {s : Str} ; - lincat Prep = {s : Str} ; - lincat Pron = {s : Case => Str; acc_clit : Str; dat_clit : Str; - a : {gn : GenNum; p : Person}} ; + lincat Pron = {s: Case => Str; acc_clit, dat_clit : Str; a : Agr} ; lincat QCl = {s : Str} ; lincat QS = {s : Str} ; - lincat Quant = {s : Str; sp : Species} ; + lincat Quant = {s : Case => Gender => Number => Str; spec : Species} ; lincat RCl = {s : Str} ; lincat RP = {s : Str} ; lincat RS = {s : Str} ; @@ -48,57 +48,6 @@ concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in { lincat SN = {s : Str} ; lincat SSlash = {s : Str} ; lincat Subj = {s : Str} ; - lincat V = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str} ; - lincat V2 = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str; c2 : {s : Str}} ; - lincat V2A = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str; c2 : {s : Str}; - c3 : {s : Str}} ; - lincat V2Q = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str; c2 : {s : Str}} ; - lincat V2S = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str; c2 : {s : Str}} ; - lincat V2V = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str; c2 : {s : Str}; - c3 : {s : Str}} ; - lincat V3 = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str; c2 : {s : Str}; - c3 : {s : Str}} ; - lincat VA = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str} ; lincat VP = {indicative : Tense => Number => Person => Case => Str; participle : Case => Str; pres_optative : Number => Person => Case => Str; @@ -111,22 +60,4 @@ concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in { perf_optative : Number => Person => Str; pres_admirative : Number => Person => Str; imperf_admirative : Number => Person => Str} ; - lincat VQ = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str} ; - lincat VS = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str} ; - lincat VV = {indicative : Tense => Number => Person => Str; - imperative : Number => Str; participle : Str; - pres_optative : Number => Person => Str; - perf_optative : Number => Person => Str; - pres_admirative : Number => Person => Str; - imperf_admirative : Number => Person => Str} ; -} \ No newline at end of file +} diff --git a/src/albanian/MorphoSqi.gf b/src/albanian/MorphoSqi.gf index 580d43ee..ab9895e1 100644 --- a/src/albanian/MorphoSqi.gf +++ b/src/albanian/MorphoSqi.gf @@ -27570,7 +27570,7 @@ mkA036 base = mkV001 : Str -> V ; mkV001 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -27620,7 +27620,7 @@ mkV001 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -27679,7 +27679,7 @@ mkV002 : Str -> V ; mkV002 base = case base of { base_1+"ta" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ta" ; @@ -27729,7 +27729,7 @@ mkV002 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -27790,7 +27790,7 @@ mkV003 : Str -> V ; mkV003 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -27840,7 +27840,7 @@ mkV003 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -27901,7 +27901,7 @@ mkV004 : Str -> V ; mkV004 base = case base of { base_1+"s" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"s" ; @@ -27951,7 +27951,7 @@ mkV004 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28012,7 +28012,7 @@ mkV005 : Str -> V ; mkV005 base = case base of { base_1+base_2@?+"l" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"l" ; @@ -28062,7 +28062,7 @@ mkV005 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28122,7 +28122,7 @@ mkV005 base = mkV006 : Str -> V ; mkV006 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -28172,7 +28172,7 @@ mkV006 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28230,7 +28230,7 @@ mkV006 base_1 = mkV007 : Str -> V ; mkV007 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -28280,7 +28280,7 @@ mkV007 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28338,7 +28338,7 @@ mkV007 base_1 = mkV008 : Str -> V ; mkV008 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -28388,7 +28388,7 @@ mkV008 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28447,7 +28447,7 @@ mkV009 : Str -> V ; mkV009 base = case base of { base_1+"n" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"n" ; @@ -28497,7 +28497,7 @@ mkV009 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28558,7 +28558,7 @@ mkV010 : Str -> V ; mkV010 base = case base of { base_1+"i"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2 ; @@ -28608,7 +28608,7 @@ mkV010 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28669,7 +28669,7 @@ mkV011 : Str -> V ; mkV011 base = case base of { base_1+"e" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"e" ; @@ -28719,7 +28719,7 @@ mkV011 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28780,7 +28780,7 @@ mkV012 : Str -> V ; mkV012 base = case base of { "t"+base_1 => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => "t"+base_1 ; @@ -28830,7 +28830,7 @@ mkV012 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28890,7 +28890,7 @@ mkV012 base = mkV013 : Str -> V ; mkV013 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -28940,7 +28940,7 @@ mkV013 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -28998,7 +28998,7 @@ mkV013 base_1 = mkV014 : Str -> V ; mkV014 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -29048,7 +29048,7 @@ mkV014 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29107,7 +29107,7 @@ mkV015 : Str -> V ; mkV015 base = case base of { base_1+"s" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"s" ; @@ -29157,7 +29157,7 @@ mkV015 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29218,7 +29218,7 @@ mkV016 : Str -> V ; mkV016 base = case base of { base_1+"o"+base_2@?+"a" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"o"+base_2+"a" ; @@ -29268,7 +29268,7 @@ mkV016 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29328,7 +29328,7 @@ mkV016 base = mkV017 : Str -> V ; mkV017 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -29378,7 +29378,7 @@ mkV017 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29436,7 +29436,7 @@ mkV017 base_1 = mkV018 : Str -> V ; mkV018 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -29486,7 +29486,7 @@ mkV018 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29545,7 +29545,7 @@ mkV019 : Str -> V ; mkV019 base = case base of { base_1+"e"+base_2@?+"r" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"e"+base_2+"r" ; @@ -29595,7 +29595,7 @@ mkV019 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29656,7 +29656,7 @@ mkV020 : Str -> V ; mkV020 base = case base of { base_1+"e"+base_2@?+"e" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"e"+base_2+"e" ; @@ -29706,7 +29706,7 @@ mkV020 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29767,7 +29767,7 @@ mkV021 : Str -> V ; mkV021 base = case base of { base_1+"ie"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ie"+base_2 ; @@ -29817,7 +29817,7 @@ mkV021 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29878,7 +29878,7 @@ mkV022 : Str -> V ; mkV022 base = case base of { base_1+"es" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"es" ; @@ -29928,7 +29928,7 @@ mkV022 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -29989,7 +29989,7 @@ mkV023 : Str -> V ; mkV023 base = case base of { base_1+"as" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"as" ; @@ -30039,7 +30039,7 @@ mkV023 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30100,7 +30100,7 @@ mkV024 : Str -> V ; mkV024 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -30150,7 +30150,7 @@ mkV024 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30211,7 +30211,7 @@ mkV025 : Str -> V ; mkV025 base = case base of { base_1+"y"+base_2@?+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"y"+base_2+"j" ; @@ -30261,7 +30261,7 @@ mkV025 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30322,7 +30322,7 @@ mkV026 : Str -> V ; mkV026 base = case base of { base_1+"e"+base_2@(?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"e"+base_2 ; @@ -30372,7 +30372,7 @@ mkV026 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30433,7 +30433,7 @@ mkV027 : Str -> V ; mkV027 base = case base of { base_1+"on" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"on" ; @@ -30483,7 +30483,7 @@ mkV027 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30544,7 +30544,7 @@ mkV028 : Str -> V ; mkV028 base = case base of { base_1+"oj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"oj" ; @@ -30594,7 +30594,7 @@ mkV028 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30654,7 +30654,7 @@ mkV028 base = mkV029 : Str -> V ; mkV029 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -30704,7 +30704,7 @@ mkV029 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30763,7 +30763,7 @@ mkV030 : Str -> V ; mkV030 base = case base of { base_1+"i" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i" ; @@ -30813,7 +30813,7 @@ mkV030 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30874,7 +30874,7 @@ mkV031 : Str -> V ; mkV031 base = case base of { base_1+"i"+base_2@(?+?)+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2+"em" ; @@ -30924,7 +30924,7 @@ mkV031 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -30985,7 +30985,7 @@ mkV032 : Str -> V ; mkV032 base = case base of { base_1+"u"+base_2@?+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"u"+base_2+"j" ; @@ -31035,7 +31035,7 @@ mkV032 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31095,7 +31095,7 @@ mkV032 base = mkV033 : Str -> V ; mkV033 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -31145,7 +31145,7 @@ mkV033 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31204,7 +31204,7 @@ mkV034 : Str -> V ; mkV034 base = case base of { base_1+"s" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"s" ; @@ -31254,7 +31254,7 @@ mkV034 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31315,7 +31315,7 @@ mkV035 : Str -> V ; mkV035 base = case base of { base_1+"ie" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ie" ; @@ -31365,7 +31365,7 @@ mkV035 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31426,7 +31426,7 @@ mkV036 : Str -> V ; mkV036 base = case base of { base_1+"je"+base_2@("p"|"rdh"|(?+?)) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"je"+base_2 ; @@ -31476,7 +31476,7 @@ mkV036 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31537,7 +31537,7 @@ mkV037 : Str -> V ; mkV037 base = case base of { base_1+"sem" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"sem" ; @@ -31587,7 +31587,7 @@ mkV037 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31648,7 +31648,7 @@ mkV038 : Str -> V ; mkV038 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -31698,7 +31698,7 @@ mkV038 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31759,7 +31759,7 @@ mkV039 : Str -> V ; mkV039 base = case base of { base_1+"i"+base_2@(?+?)+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2+"em" ; @@ -31809,7 +31809,7 @@ mkV039 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31870,7 +31870,7 @@ mkV040 : Str -> V ; mkV040 base = case base of { base_1+"hem" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"hem" ; @@ -31920,7 +31920,7 @@ mkV040 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -31981,7 +31981,7 @@ mkV041 : Str -> V ; mkV041 base = case base of { base_1+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"em" ; @@ -32031,7 +32031,7 @@ mkV041 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32092,7 +32092,7 @@ mkV042 : Str -> V ; mkV042 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -32142,7 +32142,7 @@ mkV042 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32203,7 +32203,7 @@ mkV043 : Str -> V ; mkV043 base = case base of { base_1+"l"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"l"+base_2 ; @@ -32253,7 +32253,7 @@ mkV043 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32314,7 +32314,7 @@ mkV044 : Str -> V ; mkV044 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -32364,7 +32364,7 @@ mkV044 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32425,7 +32425,7 @@ mkV045 : Str -> V ; mkV045 base = case base of { base_1+"jek" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"jek" ; @@ -32475,7 +32475,7 @@ mkV045 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32536,7 +32536,7 @@ mkV046 : Str -> V ; mkV046 base = case base of { base_1+"i"+base_2@?+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2+"em" ; @@ -32586,7 +32586,7 @@ mkV046 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32647,7 +32647,7 @@ mkV047 : Str -> V ; mkV047 base = case base of { base_1+base_2@?+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"j" ; @@ -32697,7 +32697,7 @@ mkV047 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32758,7 +32758,7 @@ mkV048 : Str -> V ; mkV048 base = case base of { base_1+"ë"+base_2@(?+?)+"as" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ë"+base_2+"as" ; @@ -32808,7 +32808,7 @@ mkV048 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32869,7 +32869,7 @@ mkV049 : Str -> V ; mkV049 base = case base of { base_1+"je"+base_2@("l"|(?+?)) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"je"+base_2 ; @@ -32919,7 +32919,7 @@ mkV049 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -32980,7 +32980,7 @@ mkV050 : Str -> V ; mkV050 base = case base of { base_1+"o"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"o"+base_2 ; @@ -33030,7 +33030,7 @@ mkV050 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33091,7 +33091,7 @@ mkV051 : Str -> V ; mkV051 base = case base of { base_1+"je"+base_2@?+"r" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"je"+base_2+"r" ; @@ -33141,7 +33141,7 @@ mkV051 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33202,7 +33202,7 @@ mkV052 : Str -> V ; mkV052 base = case base of { base_1+"r"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"r"+base_2 ; @@ -33252,7 +33252,7 @@ mkV052 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33313,7 +33313,7 @@ mkV053 : Str -> V ; mkV053 base = case base of { base_1+"i"+base_2@(?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2 ; @@ -33363,7 +33363,7 @@ mkV053 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33424,7 +33424,7 @@ mkV054 : Str -> V ; mkV054 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -33474,7 +33474,7 @@ mkV054 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33535,7 +33535,7 @@ mkV055 : Str -> V ; mkV055 base = case base of { base_1+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"em" ; @@ -33585,7 +33585,7 @@ mkV055 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33646,7 +33646,7 @@ mkV056 : Str -> V ; mkV056 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -33696,7 +33696,7 @@ mkV056 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33757,7 +33757,7 @@ mkV057 : Str -> V ; mkV057 base = case base of { base_1+"n" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"n" ; @@ -33807,7 +33807,7 @@ mkV057 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33868,7 +33868,7 @@ mkV058 : Str -> V ; mkV058 base = case base of { base_1+"sh"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"sh"+base_2 ; @@ -33918,7 +33918,7 @@ mkV058 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -33978,7 +33978,7 @@ mkV058 base = mkV059 : Str -> V ; mkV059 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -34028,7 +34028,7 @@ mkV059 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34087,7 +34087,7 @@ mkV060 : Str -> V ; mkV060 base = case base of { base_1+"je"+base_2@(?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"je"+base_2 ; @@ -34137,7 +34137,7 @@ mkV060 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34198,7 +34198,7 @@ mkV061 : Str -> V ; mkV061 base = case base of { base_1+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"em" ; @@ -34248,7 +34248,7 @@ mkV061 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34308,7 +34308,7 @@ mkV061 base = mkV062 : Str -> V ; mkV062 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -34358,7 +34358,7 @@ mkV062 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34417,7 +34417,7 @@ mkV063 : Str -> V ; mkV063 base = case base of { base_1+"i"+base_2@?+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2+"em" ; @@ -34467,7 +34467,7 @@ mkV063 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34528,7 +34528,7 @@ mkV064 : Str -> V ; mkV064 base = case base of { base_1+"a"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"a"+base_2 ; @@ -34578,7 +34578,7 @@ mkV064 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34639,7 +34639,7 @@ mkV065 : Str -> V ; mkV065 base = case base of { base_1+"sh"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"sh"+base_2 ; @@ -34689,7 +34689,7 @@ mkV065 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34750,7 +34750,7 @@ mkV066 : Str -> V ; mkV066 base = case base of { "hë"+base_1+"a" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => "hë"+base_1+"a" ; @@ -34800,7 +34800,7 @@ mkV066 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34861,7 +34861,7 @@ mkV067 : Str -> V ; mkV067 base = case base of { base_1+"ë"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ë"+base_2 ; @@ -34911,7 +34911,7 @@ mkV067 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -34972,7 +34972,7 @@ mkV068 : Str -> V ; mkV068 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -35022,7 +35022,7 @@ mkV068 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35083,7 +35083,7 @@ mkV069 : Str -> V ; mkV069 base = case base of { base_1+"n" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"n" ; @@ -35133,7 +35133,7 @@ mkV069 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35194,7 +35194,7 @@ mkV070 : Str -> V ; mkV070 base = case base of { base_1+"on" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"on" ; @@ -35244,7 +35244,7 @@ mkV070 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35305,7 +35305,7 @@ mkV071 : Str -> V ; mkV071 base = case base of { base_1+base_2@?+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"j" ; @@ -35355,7 +35355,7 @@ mkV071 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35416,7 +35416,7 @@ mkV072 : Str -> V ; mkV072 base = case base of { base_1+base_2@?+"s" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"s" ; @@ -35466,7 +35466,7 @@ mkV072 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35527,7 +35527,7 @@ mkV073 : Str -> V ; mkV073 base = case base of { base_1+"i"+base_2@?+"em" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2+"em" ; @@ -35577,7 +35577,7 @@ mkV073 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35638,7 +35638,7 @@ mkV074 : Str -> V ; mkV074 base = case base of { base_1+"in" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"in" ; @@ -35688,7 +35688,7 @@ mkV074 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35749,7 +35749,7 @@ mkV075 : Str -> V ; mkV075 base = case base of { base_1+"ë" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ë" ; @@ -35799,7 +35799,7 @@ mkV075 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35860,7 +35860,7 @@ mkV076 : Str -> V ; mkV076 base = case base of { base_1+"y"+base_2@(?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"y"+base_2 ; @@ -35910,7 +35910,7 @@ mkV076 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -35971,7 +35971,7 @@ mkV077 : Str -> V ; mkV077 base = case base of { base_1+"y"+base_2@?+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"y"+base_2+"j" ; @@ -36021,7 +36021,7 @@ mkV077 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36082,7 +36082,7 @@ mkV078 : Str -> V ; mkV078 base = case base of { base_1+"et" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"et" ; @@ -36132,7 +36132,7 @@ mkV078 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36193,7 +36193,7 @@ mkV079 : Str -> V ; mkV079 base = case base of { base_1+"y"+base_2@?+"b" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"y"+base_2+"b" ; @@ -36243,7 +36243,7 @@ mkV079 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36304,7 +36304,7 @@ mkV080 : Str -> V ; mkV080 base = case base of { base_1+"s" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"s" ; @@ -36354,7 +36354,7 @@ mkV080 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36415,7 +36415,7 @@ mkV081 : Str -> V ; mkV081 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -36465,7 +36465,7 @@ mkV081 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36526,7 +36526,7 @@ mkV082 : Str -> V ; mkV082 base = case base of { base_1+base_2@?+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"j" ; @@ -36576,7 +36576,7 @@ mkV082 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36637,7 +36637,7 @@ mkV083 : Str -> V ; mkV083 base = case base of { base_1+"e" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"e" ; @@ -36687,7 +36687,7 @@ mkV083 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36748,7 +36748,7 @@ mkV084 : Str -> V ; mkV084 base = case base of { "e"+base_1+"a" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => "e"+base_1+"a" ; @@ -36798,7 +36798,7 @@ mkV084 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36859,7 +36859,7 @@ mkV085 : Str -> V ; mkV085 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -36909,7 +36909,7 @@ mkV085 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -36970,7 +36970,7 @@ mkV086 : Str -> V ; mkV086 base = case base of { base_1+"ej" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ej" ; @@ -37020,7 +37020,7 @@ mkV086 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37081,7 +37081,7 @@ mkV087 : Str -> V ; mkV087 base = case base of { base_1+"h"+base_2@?+"ë"+base_3@(?+?)+"as" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"h"+base_2+"ë"+base_3+"as" ; @@ -37131,7 +37131,7 @@ mkV087 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37192,7 +37192,7 @@ mkV088 : Str -> V ; mkV088 base = case base of { "vrokth" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => "vrokth" ; @@ -37242,7 +37242,7 @@ mkV088 base = } } } ; - Imperative = table { + imperative = table { Sg => "-" ; Pl => "-" } ; @@ -37303,7 +37303,7 @@ mkV089 : Str -> V ; mkV089 base = case base of { base_1+"ë"+base_2@(?+?)+"as" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ë"+base_2+"as" ; @@ -37353,7 +37353,7 @@ mkV089 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37414,7 +37414,7 @@ mkV090 : Str -> V ; mkV090 base = case base of { base_1+base_2@?+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"j" ; @@ -37464,7 +37464,7 @@ mkV090 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37525,7 +37525,7 @@ mkV091 : Str -> V ; mkV091 base = case base of { base_1+"ie"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ie"+base_2 ; @@ -37575,7 +37575,7 @@ mkV091 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37636,7 +37636,7 @@ mkV092 : Str -> V ; mkV092 base = case base of { base_1+"ij" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ij" ; @@ -37686,7 +37686,7 @@ mkV092 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37747,7 +37747,7 @@ mkV093 : Str -> V ; mkV093 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -37797,7 +37797,7 @@ mkV093 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37858,7 +37858,7 @@ mkV094 : Str -> V ; mkV094 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -37908,7 +37908,7 @@ mkV094 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -37969,7 +37969,7 @@ mkV095 : Str -> V ; mkV095 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -38019,7 +38019,7 @@ mkV095 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38080,7 +38080,7 @@ mkV096 : Str -> V ; mkV096 base = case base of { base_1+"ohem" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ohem" ; @@ -38130,7 +38130,7 @@ mkV096 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38191,7 +38191,7 @@ mkV097 : Str -> V ; mkV097 base = case base of { base_1+base_2@?+"hem" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"hem" ; @@ -38241,7 +38241,7 @@ mkV097 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38302,7 +38302,7 @@ mkV098 : Str -> V ; mkV098 base = case base of { base_1+"at"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"at"+base_2 ; @@ -38352,7 +38352,7 @@ mkV098 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38413,7 +38413,7 @@ mkV099 : Str -> V ; mkV099 base = case base of { base_1+"r"+base_2@(?+?+?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"r"+base_2 ; @@ -38463,7 +38463,7 @@ mkV099 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38524,7 +38524,7 @@ mkV100 : Str -> V ; mkV100 base = case base of { base_1+"s" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"s" ; @@ -38574,7 +38574,7 @@ mkV100 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38635,7 +38635,7 @@ mkV101 : Str -> V ; mkV101 base = case base of { base_1+"ua"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ua"+base_2 ; @@ -38685,7 +38685,7 @@ mkV101 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38746,7 +38746,7 @@ mkV102 : Str -> V ; mkV102 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -38796,7 +38796,7 @@ mkV102 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38857,7 +38857,7 @@ mkV103 : Str -> V ; mkV103 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -38907,7 +38907,7 @@ mkV103 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -38968,7 +38968,7 @@ mkV104 : Str -> V ; mkV104 base = case base of { base_1+"on" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"on" ; @@ -39018,7 +39018,7 @@ mkV104 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39079,7 +39079,7 @@ mkV105 : Str -> V ; mkV105 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -39129,7 +39129,7 @@ mkV105 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39190,7 +39190,7 @@ mkV106 : Str -> V ; mkV106 base = case base of { base_1+"ë" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ë" ; @@ -39240,7 +39240,7 @@ mkV106 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39301,7 +39301,7 @@ mkV107 : Str -> V ; mkV107 base = case base of { "n"+base_1 => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => "n"+base_1 ; @@ -39351,7 +39351,7 @@ mkV107 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39412,7 +39412,7 @@ mkV108 : Str -> V ; mkV108 base = case base of { base_1+"oj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"oj" ; @@ -39462,7 +39462,7 @@ mkV108 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39523,7 +39523,7 @@ mkV109 : Str -> V ; mkV109 base = case base of { base_1+"oj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"oj" ; @@ -39573,7 +39573,7 @@ mkV109 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39634,7 +39634,7 @@ mkV110 : Str -> V ; mkV110 base = case base of { base_1+"ih"+base_2@?+"m" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ih"+base_2+"m" ; @@ -39684,7 +39684,7 @@ mkV110 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39744,7 +39744,7 @@ mkV110 base = mkV111 : Str -> V ; mkV111 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -39794,7 +39794,7 @@ mkV111 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39853,7 +39853,7 @@ mkV112 : Str -> V ; mkV112 base = case base of { base_1+"a"+base_2@(?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"a"+base_2 ; @@ -39903,7 +39903,7 @@ mkV112 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -39964,7 +39964,7 @@ mkV113 : Str -> V ; mkV113 base = case base of { base_1+"ij" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ij" ; @@ -40014,7 +40014,7 @@ mkV113 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40074,7 +40074,7 @@ mkV113 base = mkV114 : Str -> V ; mkV114 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -40124,7 +40124,7 @@ mkV114 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40182,7 +40182,7 @@ mkV114 base_1 = mkV115 : Str -> V ; mkV115 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -40232,7 +40232,7 @@ mkV115 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40291,7 +40291,7 @@ mkV116 : Str -> V ; mkV116 base = case base of { base_1+"hem" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"hem" ; @@ -40341,7 +40341,7 @@ mkV116 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40402,7 +40402,7 @@ mkV117 : Str -> V ; mkV117 base = case base of { base_1+base_2@(?+?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2 ; @@ -40452,7 +40452,7 @@ mkV117 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40513,7 +40513,7 @@ mkV118 : Str -> V ; mkV118 base = case base of { base_1+"ë" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ë" ; @@ -40563,7 +40563,7 @@ mkV118 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40624,7 +40624,7 @@ mkV119 : Str -> V ; mkV119 base = case base of { base_1+"ej" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ej" ; @@ -40674,7 +40674,7 @@ mkV119 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40735,7 +40735,7 @@ mkV120 : Str -> V ; mkV120 base = case base of { base_1+"h"+base_2@(?+?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"h"+base_2 ; @@ -40785,7 +40785,7 @@ mkV120 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40846,7 +40846,7 @@ mkV121 : Str -> V ; mkV121 base = case base of { base_1+"oj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"oj" ; @@ -40896,7 +40896,7 @@ mkV121 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -40957,7 +40957,7 @@ mkV122 : Str -> V ; mkV122 base = case base of { base_1+"âj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"âj" ; @@ -41007,7 +41007,7 @@ mkV122 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41068,7 +41068,7 @@ mkV123 : Str -> V ; mkV123 base = case base of { base_1+"i"+base_2@?+"et" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"i"+base_2+"et" ; @@ -41118,7 +41118,7 @@ mkV123 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41179,7 +41179,7 @@ mkV124 : Str -> V ; mkV124 base = case base of { base_1+"et" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"et" ; @@ -41229,7 +41229,7 @@ mkV124 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41290,7 +41290,7 @@ mkV125 : Str -> V ; mkV125 base = case base of { base_1+base_2@?+"rrtë" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+base_2+"rrtë" ; @@ -41340,7 +41340,7 @@ mkV125 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41401,7 +41401,7 @@ mkV126 : Str -> V ; mkV126 base = case base of { base_1+"ash"+base_2@? => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"ash"+base_2 ; @@ -41451,7 +41451,7 @@ mkV126 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41511,7 +41511,7 @@ mkV126 base = mkV127 : Str -> V ; mkV127 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -41561,7 +41561,7 @@ mkV127 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41620,7 +41620,7 @@ mkV128 : Str -> V ; mkV128 base = case base of { "venj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => "venj" ; @@ -41670,7 +41670,7 @@ mkV128 base = } } } ; - Imperative = table { + imperative = table { Sg => "-" ; Pl => "-" } ; @@ -41731,7 +41731,7 @@ mkV129 : Str -> V ; mkV129 base = case base of { base_1+"n" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"n" ; @@ -41781,7 +41781,7 @@ mkV129 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41842,7 +41842,7 @@ mkV130 : Str -> V ; mkV130 base = case base of { base_1+"nj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"nj" ; @@ -41892,7 +41892,7 @@ mkV130 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -41953,7 +41953,7 @@ mkV131 : Str -> V ; mkV131 base = case base of { base_1+"oj" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"oj" ; @@ -42003,7 +42003,7 @@ mkV131 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -42063,7 +42063,7 @@ mkV131 base = mkV132 : Str -> V ; mkV132 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -42113,7 +42113,7 @@ mkV132 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -42172,7 +42172,7 @@ mkV133 : Str -> V ; mkV133 base = case base of { base_1+"j" => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"j" ; @@ -42222,7 +42222,7 @@ mkV133 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -42282,7 +42282,7 @@ mkV133 base = mkV134 : Str -> V ; mkV134 base_1 = lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1 ; @@ -42332,7 +42332,7 @@ mkV134 base_1 = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; @@ -42391,7 +42391,7 @@ mkV135 : Str -> V ; mkV135 base = case base of { base_1+"r"+base_2@(?+?+?) => lin V - { Indicative = table { + { indicative = table { Pres => table { Sg => table { P1 => base_1+"r"+base_2 ; @@ -42441,7 +42441,7 @@ mkV135 base = } } } ; - Imperative = table { + imperative = table { Sg => nonExist ; Pl => nonExist } ; diff --git a/src/albanian/NounSqi.gf b/src/albanian/NounSqi.gf index c577354b..974efbea 100644 --- a/src/albanian/NounSqi.gf +++ b/src/albanian/NounSqi.gf @@ -8,7 +8,7 @@ concrete NounSqi of Noun = CatSqi ** open MorphoSqi, ResSqi in { a = agrgP3 cn.g det.n } ; - UsePron p = p ; + -- UsePron p = p ; DetQuant quant num = { s = \\c,g => quant.s ! c ! g ! num.n ++ num.s ; @@ -30,7 +30,6 @@ concrete NounSqi of Noun = CatSqi ** open MorphoSqi, ResSqi in { } ; UseN n = n ; - UseN2 n = n ; AdjCN ap cn = { s = \\spec,c,n => cn.s ! spec ! c ! n ++ ap.s ! spec ! c ! cn.g ! n ; From 494c91f9dd71b8ad3031298dbbbf89b95971340a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 09:51:15 +0200 Subject: [PATCH 141/169] whatSg_IP/whatPl_IP --- src/macedonian/StructuralMkd.gf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf index d172c17b..3591c9fe 100644 --- a/src/macedonian/StructuralMkd.gf +++ b/src/macedonian/StructuralMkd.gf @@ -14,6 +14,8 @@ lin that_Quant = mkQuant "тој" "таа" "тоа" "тие" ; lin how_IAdv = mkIAdv "как" ; lin how8many_IDet = mkIDet "колку" ; lin how8much_IAdv = mkIAdv "колку" ; +lin whatSg_IP = mkIP "што" (GSg Masc) ; +lin whatPl_IP = mkIP "што" GPl ; lin when_IAdv = mkIAdv "кога" ; lin where_IAdv = mkIAdv "каде" ; lin which_IQuant = mkIQuant "кој" "која" "кое" "кои" ; From ffb77daf31acbff529779cd8d8899e3fe5edc55a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 10:17:17 +0200 Subject: [PATCH 142/169] fix UttVP --- src/macedonian/PhraseMkd.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/macedonian/PhraseMkd.gf b/src/macedonian/PhraseMkd.gf index eaf51a2a..fe3fe71f 100644 --- a/src/macedonian/PhraseMkd.gf +++ b/src/macedonian/PhraseMkd.gf @@ -16,6 +16,6 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in { lin UttNP np = {s = np.s ! RSubj} ; lin UttQS s = s ; lin UttS s = s ; - lin UttVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin UttVP vp = {s = "да" ++ vp.present ! Perfective ! Sg ! P3 ++ vp.compl ! {g=GSg Masc; p=P3}} ; lin VocNP np = {s : Str = SOFT_BIND ++ "," ++ np.vocative} ; } From 6203aee17088fae5338fed066e471175d19d00c8 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 10:29:37 +0200 Subject: [PATCH 143/169] fix EmbedVP --- src/macedonian/SentenceMkd.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index d1c6b619..668bd783 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -4,7 +4,7 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { lin AdvSlash c a = {s = c.s ++ a.s} ; lin EmbedQS qs = {s = qs.s} ; lin EmbedS s = {s = s.s} ; - lin EmbedVP vp = {s = vp.present ! Perfective ! Sg ! P1} ; + lin EmbedVP vp = {s = "да" ++ vp.present ! Perfective ! Sg ! P3 ++ vp.compl ! {g=GSg Masc; p=P3}} ; lin ExtAdvS a s = {s = a.s ++ s.s} ; lin ImpVP vp = { s = \\p,gn=>case p of { From 5f6a8b2905a06c4f3e698c9994c1e94bbc7b1a96 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 11:04:31 +0200 Subject: [PATCH 144/169] fix compilation --- src/albanian/CatSqi.gf | 2 - src/armenian/CatHye.gf | 114 ++++--------------------------------- src/kazakh/CatKaz.gf | 114 +++---------------------------------- src/macedonian/NamesMkd.gf | 4 +- 4 files changed, 19 insertions(+), 215 deletions(-) diff --git a/src/albanian/CatSqi.gf b/src/albanian/CatSqi.gf index ca515778..781976d3 100644 --- a/src/albanian/CatSqi.gf +++ b/src/albanian/CatSqi.gf @@ -1,6 +1,4 @@ concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in { - flags - coding = "UTF-8" ; lincat A = Adj ; lincat A2 = Adj ** {c2 : Compl} ; lincat V, VA, VV, VS, VQ = Verb ; diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf index 2da59320..08bbeff0 100644 --- a/src/armenian/CatHye.gf +++ b/src/armenian/CatHye.gf @@ -1,12 +1,6 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { - flags - coding = "UTF-8" ; - lincat A = {s : Case => Number => Str; def_dat : Number => Str; - def_nom : Number => Str; poss1 : Case => Number => Str; - poss2 : Case => Number => Str} ; - lincat A2 = {s : Case => Number => Str; def_dat : Number => Str; - def_nom : Number => Str; poss1 : Case => Number => Str; - poss2 : Case => Number => Str; c2 : {s : Str; c : Case}} ; + lincat A = Adj ; + lincat A2 = Adj ** {c2 : Compl} ; lincat ACard = {s : Str} ; lincat AP = {} ; lincat CN = {s : Case => Number => Str; def_dat : Number => Str; @@ -28,16 +22,9 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat IQuant = {s : Str} ; lincat Imp = {s : Str} ; lincat LN = {s : Str} ; - lincat N = {s : Case => Number => Str; def_dat : Number => Str; - def_nom : Number => Str; poss1 : Case => Number => Str; - poss2 : Case => Number => Str} ; - lincat N2 = {s : Case => Number => Str; def_dat : Number => Str; - def_nom : Number => Str; poss1 : Case => Number => Str; - poss2 : Case => Number => Str; c2 : {s : Str; c : Case}} ; - lincat N3 = {s : Case => Number => Str; def_dat : Number => Str; - def_nom : Number => Str; poss1 : Case => Number => Str; - poss2 : Case => Number => Str; c2 : {s : Str; c : Case}; - c3 : {s : Str; c : Case}} ; + lincat N = Noun ; + lincat N2 = Noun ** {c2 : Compl} ; + lincat N3 = Noun ** {c2,c3 : Compl} ; lincat NP = {s : Case => Number => Str; def_dat : Number => Str; def_nom : Number => Str; poss1 : Case => Number => Str; poss2 : Case => Number => Str} ; @@ -46,7 +33,7 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat Ord = {s : Str} ; lincat PN = {s : Str} ; lincat Predet = {s : Str} ; - lincat Prep = {s : Str; c : Case; lock_Prep : {}} ; + lincat Prep = Compl ; lincat Pron = {s : Str} ; lincat QCl = {s : Str} ; lincat QS = {s : Str} ; @@ -58,68 +45,10 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat SN = {s : Str} ; lincat SSlash = {s : Str} ; lincat Subj = {s : Str} ; - lincat V = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str} ; - lincat V2 = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str; - c2 : {s : Str; c : Case}} ; - lincat V2A = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str; - c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; - lincat V2Q = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str; - c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; - lincat V2S = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str; - c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; - lincat V2V = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str; - c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; - lincat V3 = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str; - c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ; - lincat VA = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str} ; + lincat V = Verb ; + lincat VV,VS,VQ,VA = Verb ; + lincat V2 = Verb ** {c2 : Compl} ; + lincat V3,V2A,V2S,V2Q,V2V = Verb ** {c2,c3 : Compl} ; lincat VP = {s : Case => Number => Str; conditional : Aspect => Person => Number => Case => Number => Str; converb : {imperfective : Case => Number => Str; @@ -139,25 +68,4 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { imperative : Number => Str; passive : Str; past : Person => Number => Str; participle : PartType => Str; subjunctive : Aspect => Person => Number => Str; lock_V : {}} ; - lincat VQ = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str} ; - lincat VS = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str} ; - lincat VV = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str} ; -} \ No newline at end of file +} diff --git a/src/kazakh/CatKaz.gf b/src/kazakh/CatKaz.gf index 63722ccf..5ca809f4 100644 --- a/src/kazakh/CatKaz.gf +++ b/src/kazakh/CatKaz.gf @@ -1,8 +1,6 @@ concrete CatKaz of Cat = CommonX ** open Prelude,ResKaz in { - flags - coding = "UTF-8" ; lincat A = {s : Str} ; - lincat A2 = {s : Str; lock_A : {}; c2 : {s : Str}} ; + lincat A2 = A ** {c2 : Compl} ; lincat ACard = {s : Str} ; lincat AP = {s : Str} ; lincat CN = {s : Case => Str} ; @@ -35,7 +33,7 @@ concrete CatKaz of Cat = CommonX ** open Prelude,ResKaz in { lincat Ord = {s : Str} ; lincat PN = {s : Str} ; lincat Predet = {s : Str} ; - lincat Prep = {s : Str} ; + lincat Prep = Compl ; lincat Pron = {s : Str} ; lincat QCl = {s : Str} ; lincat QS = {s : Str} ; @@ -47,81 +45,10 @@ concrete CatKaz of Cat = CommonX ** open Prelude,ResKaz in { lincat SN = {s : Str} ; lincat SSlash = {s : Str} ; lincat Subj = {s : Str} ; - lincat V = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str} ; - lincat V2 = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str; c2 : {s : Str}} ; - lincat V2A = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str; c2 : {s : Str}; - c3 : {s : Str}} ; - lincat V2Q = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str; c2 : {s : Str}} ; - lincat V2S = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str; c2 : {s : Str}} ; - lincat V2V = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str; c2 : {s : Str}; - c3 : {s : Str}} ; - lincat V3 = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str; c2 : {s : Str}; - c3 : {s : Str}} ; - lincat VA = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str} ; + lincat V = Verb ; + lincat VV,VS,VQ,VA = Verb ; + lincat V2 = Verb ** {c2 : Compl} ; + lincat V3,V2A,V2S,V2Q,V2V = Verb ** {c2,c3 : Compl} ; lincat VP = {infinitive : Case => Str; indicative : {fut : Case => Str; pres : {progressive : Polarity => Case => Str; @@ -139,31 +66,4 @@ concrete CatKaz of Cat = CommonX ** open Prelude,ResKaz in { noAspect : Polarity => Person => Number => Str}}; imperative : Polarity => Formality => Number => Str; subjunctive : Person => Number => Str} ; - lincat VQ = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str} ; - lincat VS = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str} ; - lincat VV = {infinitive : Str; - indicative : {fut : Str; - pres : {progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}; - past : {perfect : Polarity => Person => Number => Str; - progressive : Polarity => Person => Number => Str; - noAspect : Polarity => Person => Number => Str}}; - imperative : Polarity => Formality => Number => Str; - subjunctive : Person => Number => Str} ; -} \ No newline at end of file +} diff --git a/src/macedonian/NamesMkd.gf b/src/macedonian/NamesMkd.gf index db236ee7..c9b3caf0 100644 --- a/src/macedonian/NamesMkd.gf +++ b/src/macedonian/NamesMkd.gf @@ -1,6 +1,4 @@ concrete NamesMkd of Names = CatMkd ** open Prelude,ResMkd in { - flags - coding = "UTF-8" ; lin AdjLN ap ln = {s = ap.s ! Indef ! GSg Masc ++ ln.s} ; lin FemaleSurname sn = {s = \\r => sn.s; vocative = sn.s; a = {g = GSg Masc; p = P1}} ; @@ -17,4 +15,4 @@ concrete NamesMkd of Names = CatMkd ** open Prelude,ResMkd in { a = {g = GSg Masc; p = P1}} ; lin UseLN ln = {s = \\r => ln.s; vocative = ln.s; a = {g = GSg Masc; p = P1}} ; -} \ No newline at end of file +} From e3b27613fd3b3dab661ebec8f31c99647f07d88c Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 16:05:39 +0200 Subject: [PATCH 145/169] elements of syntax for nouns phrases --- src/armenian/CatHye.gf | 14 ++++++-------- src/armenian/NounHye.gf | 27 ++++++++++++++++++++++++--- src/armenian/ParadigmsHye.gf | 2 +- src/armenian/ResHye.gf | 3 ++- 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf index 08bbeff0..e6344c19 100644 --- a/src/armenian/CatHye.gf +++ b/src/armenian/CatHye.gf @@ -3,8 +3,8 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat A2 = Adj ** {c2 : Compl} ; lincat ACard = {s : Str} ; lincat AP = {} ; - lincat CN = {s : Case => Number => Str; def_dat : Number => Str; - def_nom : Number => Str; poss1 : Case => Number => Str; + lincat CN = {s : Species => Case => Number => Str; + poss1 : Case => Number => Str; poss2 : Case => Number => Str} ; lincat Card = {s : Str} ; lincat Cl = {s : Str} ; @@ -13,7 +13,7 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat Conj = {s : Str} ; lincat DAP = {s : Str} ; lincat Decimal = {s : Str} ; - lincat Det = {s : Str; n : Number} ; + lincat Det = {s : Str; n : Number; sp : Species} ; lincat Digits = {s : Str} ; lincat GN = {s : Str} ; lincat IComp = {s : Str} ; @@ -25,19 +25,17 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat N = Noun ; lincat N2 = Noun ** {c2 : Compl} ; lincat N3 = Noun ** {c2,c3 : Compl} ; - lincat NP = {s : Case => Number => Str; def_dat : Number => Str; - def_nom : Number => Str; poss1 : Case => Number => Str; - poss2 : Case => Number => Str} ; + lincat NP = {s : Case => Str; a : Agr} ; lincat Num = {s : Str; n : Number} ; lincat Numeral = {s : Str} ; lincat Ord = {s : Str} ; lincat PN = {s : Str} ; lincat Predet = {s : Str} ; lincat Prep = Compl ; - lincat Pron = {s : Str} ; + lincat Pron = {s : Str; a : Agr} ; lincat QCl = {s : Str} ; lincat QS = {s : Str} ; - lincat Quant = {s : Str} ; + lincat Quant = {s : Str; sp : Species} ; lincat RCl = {s : Str} ; lincat RP = {s : Str} ; lincat RS = {s : Str} ; diff --git a/src/armenian/NounHye.gf b/src/armenian/NounHye.gf index 652b2511..9dc13fed 100644 --- a/src/armenian/NounHye.gf +++ b/src/armenian/NounHye.gf @@ -1,4 +1,25 @@ -concrete NounHye of Noun = CatHye ** { -lin - UseN n = n ; +concrete NounHye of Noun = CatHye ** open ResHye in { + lin AdvCN cn adv = { + s = \\sp,c,num => cn.s ! sp ! c ! num ++ adv.s ; + poss1 = \\c,num => cn.poss1 ! c ! num ++ adv.s ; + poss2 = \\c,num => cn.poss2 ! c ! num ++ adv.s + } ; + lin DefArt = {s = []; sp = Def} ; + lin DetCN det cn = {s = \\c => det.s ++ cn.s ! det.sp ! c ! det.n; + a = {n=det.n; p=P3}} ; + lin DetQuant quant num = {s = quant.s ++ num.s; n = num.n; sp=quant.sp} ; + lin IndefArt = {s = []; sp = Indef} ; + lin NumPl = {s = []; n = Pl} ; + lin NumSg = {s = []; n = Sg} ; + lin PossPron pron = {s = pron.s; sp = Poss pron.a.p} ; + lin UseN n = n ** { + s = \\sp,c,num => + case of { + => n.def_nom ! num ; + => n.def_dat ! num ; + => n.poss1 ! c ! num ; + => n.poss2 ! c ! num ; + _ => n.s ! c ! num + } + } ; } diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf index 46e4693b..a929e22d 100644 --- a/src/armenian/ParadigmsHye.gf +++ b/src/armenian/ParadigmsHye.gf @@ -475,7 +475,7 @@ oper mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; - mkQuant : Str -> Quant = \s -> lin Quant {s=s} ; + mkQuant : Str -> Quant = \s -> lin Quant {s=s; sp=Indef} ; mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; mkCard : Str -> Card = \s -> lin Card {s=s} ; mkConj : Str -> Conj = \s -> lin Conj {s=s} ; diff --git a/src/armenian/ResHye.gf b/src/armenian/ResHye.gf index 08a7d030..50e207cb 100644 --- a/src/armenian/ResHye.gf +++ b/src/armenian/ResHye.gf @@ -102,7 +102,8 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ } } ; - +param Species = Indef | Def | Poss Person ; +oper Agr = {n : Number; p : Person} ; oper Noun = {s: Case => Number => Str; def_dat: Number => Str; def_nom: Number => Str; poss1: Case => Number => Str; poss2: Case => Number => Str} ; -- 4880 oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Noun = \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34 -> From 4cd3d3158e253a582b8e8100ad9bb59c6173975e Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 16:27:30 +0200 Subject: [PATCH 146/169] added pronouns --- src/armenian/CatHye.gf | 2 +- src/armenian/GrammarHye.gf | 5 +++-- src/armenian/LexiconHye.gf | 5 ++++- src/armenian/NounHye.gf | 3 ++- src/armenian/ParadigmsHye.gf | 6 ++++++ src/armenian/ResHye.gf | 4 +--- 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf index e6344c19..1783c119 100644 --- a/src/armenian/CatHye.gf +++ b/src/armenian/CatHye.gf @@ -32,7 +32,7 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat PN = {s : Str} ; lincat Predet = {s : Str} ; lincat Prep = Compl ; - lincat Pron = {s : Str; a : Agr} ; + lincat Pron = {s : Str; empty : Str; a : Agr} ; lincat QCl = {s : Str} ; lincat QS = {s : Str} ; lincat Quant = {s : Str; sp : Species} ; diff --git a/src/armenian/GrammarHye.gf b/src/armenian/GrammarHye.gf index 7bfc4c54..14e44c22 100644 --- a/src/armenian/GrammarHye.gf +++ b/src/armenian/GrammarHye.gf @@ -2,5 +2,6 @@ concrete GrammarHye of Grammar = TenseX, PhraseHye, NounHye, - AdjectiveHye ** { -} \ No newline at end of file + AdjectiveHye, + StructuralHye ** { +} diff --git a/src/armenian/LexiconHye.gf b/src/armenian/LexiconHye.gf index 8e4aab26..6baed73e 100644 --- a/src/armenian/LexiconHye.gf +++ b/src/armenian/LexiconHye.gf @@ -1,2 +1,5 @@ concrete LexiconHye of Lexicon = CatHye ** open ParadigmsHye in { -} \ No newline at end of file +lin apple_N = mkN001 "խնձոր" ; +lin man_N = mkN047 "տղամարդ" ; +lin woman_N = mkN034 "կին" ; +} diff --git a/src/armenian/NounHye.gf b/src/armenian/NounHye.gf index 9dc13fed..3fbbcdc2 100644 --- a/src/armenian/NounHye.gf +++ b/src/armenian/NounHye.gf @@ -11,7 +11,7 @@ concrete NounHye of Noun = CatHye ** open ResHye in { lin IndefArt = {s = []; sp = Indef} ; lin NumPl = {s = []; n = Pl} ; lin NumSg = {s = []; n = Sg} ; - lin PossPron pron = {s = pron.s; sp = Poss pron.a.p} ; + lin PossPron pron = {s = pron.empty; sp = Poss pron.a.p} ; lin UseN n = n ** { s = \\sp,c,num => case of { @@ -22,4 +22,5 @@ concrete NounHye of Noun = CatHye ** open ResHye in { _ => n.s ! c ! num } } ; + lin UsePron pron = {s = \\c => pron.s; a=pron.a} ; } diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf index a929e22d..d2764823 100644 --- a/src/armenian/ParadigmsHye.gf +++ b/src/armenian/ParadigmsHye.gf @@ -487,4 +487,10 @@ oper mkSN : Str -> SN = \s -> lin SN {s=s} ; mkPN : Str -> PN = \s -> lin PN {s=s} ; + mkPron : Str -> Number -> Person -> Pron = \s,n,p -> + lin Pron { + s = s ; + empty = [] ; + a = {n = n; p = p} + } ; } diff --git a/src/armenian/ResHye.gf b/src/armenian/ResHye.gf index 50e207cb..90164740 100644 --- a/src/armenian/ResHye.gf +++ b/src/armenian/ResHye.gf @@ -1,8 +1,6 @@ -resource ResHye = { +resource ResHye = ParamX ** { param Aspect = Non_Past | Perfect ; -param Person = P1 | P3 | P2 ; -param Number = Sg | Pl ; param Case = Nom | Dat | Ablat | Instr | Loc ; param PartType = Resultative | Subject ; oper Verb = {s: Str; causative: Str; conditional: Aspect => Person => Number => Str; converb: {imperfective: Str; futCon1: Str; futCon2: Str; negative: Str; perfective: Str; simultaneous: Str}; imperative: Number => Str; passive: Str; past: Person => Number => Str; participle: PartType => Str; subjunctive: Aspect => Person => Number => Str} ; -- 898 From 27ff3935c579761fa04c7318bdaec306a37b99e7 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 19:34:44 +0200 Subject: [PATCH 147/169] added mkDet --- src/armenian/ParadigmsHye.gf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf index d2764823..7629fb78 100644 --- a/src/armenian/ParadigmsHye.gf +++ b/src/armenian/ParadigmsHye.gf @@ -469,6 +469,9 @@ oper mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Dat} ; + + singular : Number = Sg ; + plural : Number = Pl ; mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; mkIP : Str -> IP = \s -> lin IP {s=s} ; @@ -476,6 +479,7 @@ oper mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; mkQuant : Str -> Quant = \s -> lin Quant {s=s; sp=Indef} ; + mkDet : Str -> Number -> Det = \s,n -> lin Det {s=s; n=n; sp=Indef} ; mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; mkCard : Str -> Card = \s -> lin Card {s=s} ; mkConj : Str -> Conj = \s -> lin Conj {s=s} ; From 7e8e6dbf34d7ab9d4f3d0bde482bee91f4a60408 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 20:46:06 +0200 Subject: [PATCH 148/169] added conjunctions --- src/macedonian/CatMkd.gf | 4 +- src/macedonian/ConjunctionMkd.gf | 104 +++++++++++++++++++++++++++++++ src/macedonian/GrammarMkd.gf | 2 +- src/macedonian/ParadigmsMkd.gf | 4 +- src/macedonian/ResMkd.gf | 12 +++- 5 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 src/macedonian/ConjunctionMkd.gf diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index e8bf6e81..7c4f367d 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -1,4 +1,4 @@ -concrete CatMkd of Cat = CommonX - [Temp,Tense] ** open ParamX, ResMkd, Prelude in { +concrete CatMkd of Cat = CommonX - [Temp,Tense] ** open ParamX, ResMkd, Prelude, Predef in { lincat Temp = {s : Str ; t : ResMkd.Tense ; a : Anteriority} ; @@ -49,4 +49,6 @@ lincat Subj = {s : Str} ; lincat Imp = {s : Polarity => GenNum => Str} ; lincat Comp = {s : GenNum => Str} ; +lincat Conj = {s : Str; sep : Ints 3; n : Number} ; + } diff --git a/src/macedonian/ConjunctionMkd.gf b/src/macedonian/ConjunctionMkd.gf new file mode 100644 index 00000000..6874da7d --- /dev/null +++ b/src/macedonian/ConjunctionMkd.gf @@ -0,0 +1,104 @@ +--# -coding=utf8 +concrete ConjunctionMkd of Conjunction = + CatMkd ** open ResMkd, Coordination, Prelude, Predef in { + + lin + ConjS conj ss = { + s = linCoord []!conj.sep ++ ss.s!conj.sep ++ conj.s ++ ss.s!4; + } ; + + ConjAdv conj ss = { + s = linCoord []!conj.sep ++ ss.s!conj.sep ++ conj.s ++ ss.s!4; + } ; + + ConjAdV conj ss = { + s = linCoord []!conj.sep ++ ss.s!conj.sep ++ conj.s ++ ss.s!4; + } ; + + ConjIAdv conj ss = { + s = linCoord []!conj.sep ++ ss.s!conj.sep ++ conj.s ++ ss.s!4; + } ; + + ConjNP conj ss = { + s = \\role => linCoord []!conj.sep ++ ss.s!role!conj.sep ++ conj.s ++ ss.s!role!4; + vocative = linCoord []!conj.sep ++ ss.vocative!conj.sep ++ conj.s ++ ss.vocative!4; + a = {g = conjGenNum (genNum Masc conj.n) ss.gn; p = ss.p} + } ; + + ConjAP conj ss = { + s = \\sp,gn => linCoord []!conj.sep ++ ss.s!sp!gn!conj.sep ++ conj.s ++ ss.s!sp!gn!4; + isPre = ss.isPre + } ; + + ConjRS conj ss = { + s = \\gn => linCoord []!conj.sep ++ ss.s!gn!conj.sep ++ conj.s ++ ss.s!gn!4; + } ; + + ConjCN conj ss = { + s = \\sp,n => linCoord []!conj.sep ++ ss.s!sp!n!conj.sep ++ conj.s ++ ss.s!sp!n!4; + count_form = linCoord []!conj.sep ++ ss.count_form!conj.sep ++ conj.s ++ ss.s!Indef!Pl!4; + vocative = \\n => linCoord []!conj.sep ++ ss.vocative!n!conj.sep ++ conj.s ++ ss.vocative!n!4; + g = ss.g + } ; + +-- These fun's are generated from the list cat's. + BaseS x y = {s = table {4 => y.s; _ => x.s}} ; + ConsS x xs = {s = table {4 => xs.s!4; t => x.s++linCoord bindComma!t++xs.s!t}} ; + + BaseAdv x y = {s = table {4 => y.s; _ => x.s}} ; + ConsAdv x xs = {s = table {4 => xs.s!4; t => x.s++linCoord bindComma!t++xs.s!t}} ; + + BaseAdV x y = {s = table {4 => y.s; _ => x.s}} ; + ConsAdV x xs = {s = table {4 => xs.s!4; t => x.s++linCoord bindComma!t++xs.s!t}} ; + + BaseIAdv x y = {s = table {4 => y.s; _ => x.s}} ; + ConsIAdv x xs = {s = table {4 => xs.s!4; t => x.s++linCoord bindComma!t++xs.s!t}} ; + + BaseNP x y = + {s = \\role=>table {4 => y.s!role; _ => x.s!role}; + vocative = table {4 => y.vocative; _ => x.vocative}; + gn = conjGenNum x.a.g y.a.g; + p = x.a.p} ; + ConsNP x xs = + {s = \\role=>table {4 => xs.s!role!4; t => x.s!role++linCoord bindComma!t++xs.s!role!t}; + vocative = table {4 => xs.vocative!4; t => x.vocative++linCoord bindComma!t++xs.vocative!t}; + gn = conjGenNum xs.gn x.a.g; + p = x.a.p} ; + + BaseAP x y = + {s = \\sp,gn => table {4 => y.s!sp!gn; _ => x.s!sp!gn} ; + isPre = andB x.isPre y.isPre} ; + ConsAP x xs = + {s = \\sp,gn => table {4 => xs.s!sp!gn!4; t => x.s!sp!gn++linCoord bindComma!t++xs.s!sp!gn!t}; + isPre = andB x.isPre xs.isPre} ; + + BaseRS x y = + {s = \\gn=>table {4 => y.s!gn; _ => x.s!gn}} ; + ConsRS x xs = + {s = \\gn=>table {4 => xs.s!gn!4; t => x.s!gn++linCoord bindComma!t++xs.s!gn!t}} ; + + BaseCN x y = + {s = \\sp,n=>table {4 => y.s!sp!n; _ => x.s!sp!n}; + count_form = table {4 => y.count_form; t => x.count_form}; + vocative = \\n=>table {4 => y.vocative!n; t => x.vocative!n}; + g = x.g} ; + ConsCN x xs = + {s = \\sp,n=>table {4 => xs.s!sp!n!4; t => x.s!sp!n++linCoord bindComma!t++xs.s!sp!n!t}; + count_form = table {4 => xs.count_form!4; t => x.count_form++linCoord bindComma!t++xs.count_form!t}; + vocative = \\n=>table {4 => xs.vocative!n!4; t => x.vocative!n++linCoord bindComma!t++xs.vocative!n!t}; + g = x.g} ; + + lincat + [S] = {s : Ints 4 => Str} ; + [Adv] = {s : Ints 4 => Str} ; + [AdV] = {s : Ints 4 => Str} ; + [IAdv] = {s : Ints 4 => Str} ; + [NP] = {s : Role => Ints 4 => Str; vocative : Ints 4 => Str; gn : GenNum; p : Person} ; + [AP] = {s : Species => GenNum => Ints 4 => Str; isPre : Bool} ; + [RS] = {s : GenNum => Ints 4 => Str} ; + [CN] = {s : Species => Number => Ints 4 => Str ; + count_form : Ints 4 => Str ; + vocative : Number => Ints 4 => Str ; + g : Gender} ; + +} diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 4d593af1..3ffea411 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,2 +1,2 @@ -concrete GrammarMkd of Grammar = NamesMkd,VerbMkd,SentenceMkd,QuestionMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { +concrete GrammarMkd of Grammar = NamesMkd,VerbMkd,SentenceMkd,QuestionMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd,ConjunctionMkd ** { } diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index 8eb17207..f4f7936e 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1218,7 +1218,9 @@ mkDet = overload { } ; } ; -mkConj : Str -> Conj = \s -> lin Conj {s=s} ; +mkConj : Str -> Number -> Conj = + \s,n -> lin Conj {s = s; sep = 3; n = n} ; + mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; mkCAdv : Str -> CAdv = \s -> lin CAdv {s=s; p=""} ; diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index c02754ec..8868ae10 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -1,4 +1,4 @@ -resource ResMkd = ParamX - [Tense] ** open Prelude in { +resource ResMkd = ParamX - [Tense] ** open Prelude, Predef in { oper Compl = {s : Str; c : Case} ; @@ -175,6 +175,12 @@ oper Pronoun = { a : {g : GenNum; p : Person} } ; +conjGenNum : GenNum -> GenNum -> GenNum = \a,b -> + case of { + => GSg g ; + _ => GPl + } ; + genNum : Gender -> Number -> GenNum = \g,n -> case n of { Sg => GSg g ; @@ -323,4 +329,8 @@ mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Order => Tense => Anter Quest => "ли" } } ; + +linCoord : Str -> Ints 4 => Str ; +linCoord comma = table {0 => "и"; 1=>"или"; 2=>"нито"; 3=>comma; 4=>[]} ; + } From b7275a2bacc3800542ca7569a52379121675a801 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 13 Apr 2026 20:54:46 +0200 Subject: [PATCH 149/169] added conjuncts --- src/macedonian/StructuralMkd.gf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf index 3591c9fe..0e4b24ec 100644 --- a/src/macedonian/StructuralMkd.gf +++ b/src/macedonian/StructuralMkd.gf @@ -21,5 +21,9 @@ lin where_IAdv = mkIAdv "каде" ; lin which_IQuant = mkIQuant "кој" "која" "кое" "кои" ; lin whoSg_IP = mkIP "кој" (GSg Masc) ; lin whoPl_IP = mkIP "кои" GPl ; +lin and_Conj = mkConj "и" Pl ; +lin or_Conj = mkConj "или" Sg ; +lin both7and_DConj = mkConj "и" Pl ** {sep=0} ; +lin either7or_DConj = mkConj "или" Sg ** {sep=1} ; } From 36bc768f264a526b31b9ceb7116ff5852eefe177 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 14 Apr 2026 07:16:06 +0200 Subject: [PATCH 150/169] forgot Structural --- src/armenian/StructuralHye.gf | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/armenian/StructuralHye.gf diff --git a/src/armenian/StructuralHye.gf b/src/armenian/StructuralHye.gf new file mode 100644 index 00000000..f631711c --- /dev/null +++ b/src/armenian/StructuralHye.gf @@ -0,0 +1,8 @@ +concrete StructuralHye of Structural = CatHye ** open ResMkd, ParadigmsHye in { +lin i_Pron = mkPron "ես" Sg P1 ; +lin youSg_Pron = mkPron "դու" Sg P2 ; +lin he_Pron, she_Pron, it_Pron = mkPron "նա" Sg P3 ; +lin we_Pron = mkPron "մեք" Pl P1 ; +lin youPl_Pron = mkPron "դուք" Pl P2 ; +lin they_Pron = mkPron "նոքա" Pl P3 ; +} From 76b27152f936e019a3ba677dc96bb53681e652e4 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 14 Apr 2026 07:23:19 +0200 Subject: [PATCH 151/169] ResMkd->ResHye --- src/armenian/StructuralHye.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/armenian/StructuralHye.gf b/src/armenian/StructuralHye.gf index f631711c..a25516dd 100644 --- a/src/armenian/StructuralHye.gf +++ b/src/armenian/StructuralHye.gf @@ -1,4 +1,4 @@ -concrete StructuralHye of Structural = CatHye ** open ResMkd, ParadigmsHye in { +concrete StructuralHye of Structural = CatHye ** open ResHye, ParadigmsHye in { lin i_Pron = mkPron "ես" Sg P1 ; lin youSg_Pron = mkPron "դու" Sg P2 ; lin he_Pron, she_Pron, it_Pron = mkPron "նա" Sg P3 ; From 8a8c1c6b42e835314da56a3e4c420b8973ee04b4 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 14 Apr 2026 08:59:01 +0200 Subject: [PATCH 152/169] added copula --- src/macedonian/VerbMkd.gf | 160 +++++++++----------------------------- 1 file changed, 36 insertions(+), 124 deletions(-) diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index b49a9dcc..75a3eb91 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -37,7 +37,7 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { lin ComplVA va ap = va ** {compl = \\agr => ap.s ! Indef ! agr.g} ; lin ComplVQ vq qs = vq ** {compl = \\_ => qs.s} ; lin ComplVS vs s = vs ** {compl = \\_ => s.s} ; - lin ComplVV vv vp = vv ** {compl = \\agr => vp.compl ! agr} ; + lin ComplVV vv vp = vv ** {compl = \\agr => "да" ++ vp.present ! Perfective ! genNum2num agr.g ! agr.p ++ vp.compl ! agr} ; lin ExtAdvVP vp a = vp ** {compl = \\agr => vp.compl ! agr ++ SOFT_BIND++"," ++ a.s} ; lin Slash2V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p ++ np.s ! RSubj; @@ -75,130 +75,42 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { compl = \\v => v3.present ! Imperfective ! Sg ! v.p ++ np.s ! RSubj; c2 = {s = v3.c2.s ++ np.s ! RSubj; c = v3.c2.c}} ; - lin SlashV2A v ap = {present = \\a,n,p => v.present ! a ! n ! p - ++ ap.s ! Indef ! GSg Masc; - aorist = \\n,p => v.aorist ! n ! p ++ ap.s ! Indef ! GSg Masc; - imperfect = \\a,n,p => v.imperfect ! a ! n ! p - ++ ap.s ! Indef ! GSg Masc; - imperative = \\a,n => v.imperative ! a ! n - ++ ap.s ! Indef ! GSg Masc; - participle = {aorist = \\a,g => v.participle.aorist ! a ! g - ++ ap.s ! Indef ! g; - imperfect = \\a,g => v.participle.imperfect ! a ! g - ++ ap.s ! Indef ! g; - perfect = \\a => v.participle.perfect ! a - ++ ap.s ! Indef ! GSg Masc; - adjectival = \\a => v.participle.adjectival ! a - ++ ap.s ! Indef ! GSg Masc; - adverbial = v.participle.adverbial ++ ap.s ! Indef ! GSg Masc}; - noun_from_verb = v.noun_from_verb ++ ap.s ! Indef ! GSg Masc; - vtype = v.vtype; - compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p - ++ ap.s ! Indef ! v2.g; - c2 = {s = v.c2.s ++ ap.s ! Indef ! GSg Masc; c = v.c2.c}} ; - lin SlashV2Q v qs = {present = \\a,n,p => v.present ! a ! n ! p - ++ qs.s; - aorist = \\n,p => v.aorist ! n ! p ++ qs.s; - imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ qs.s; - imperative = \\a,n => v.imperative ! a ! n ++ qs.s; - participle = {aorist = \\a,g => v.participle.aorist ! a ! g - ++ qs.s; - imperfect = \\a,g => v.participle.imperfect ! a ! g ++ qs.s; - perfect = \\a => v.participle.perfect ! a ++ qs.s; - adjectival = \\a => v.participle.adjectival ! a ++ qs.s; - adverbial = v.participle.adverbial ++ qs.s}; - noun_from_verb = v.noun_from_verb ++ qs.s; vtype = v.vtype; - compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p ++ qs.s; - c2 = {s = v.c2.s ++ qs.s; c = v.c2.c}} ; - lin SlashV2S v s = {present = \\a,n,p => v.present ! a ! n ! p - ++ s.s; - aorist = \\n,p => v.aorist ! n ! p ++ s.s; - imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ s.s; - imperative = \\a,n => v.imperative ! a ! n ++ s.s; - participle = {aorist = \\a,g => v.participle.aorist ! a ! g ++ s.s; - imperfect = \\a,g => v.participle.imperfect ! a ! g ++ s.s; - perfect = \\a => v.participle.perfect ! a ++ s.s; - adjectival = \\a => v.participle.adjectival ! a ++ s.s; - adverbial = v.participle.adverbial ++ s.s}; - noun_from_verb = v.noun_from_verb ++ s.s; vtype = v.vtype; - compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p ++ s.s; - c2 = {s = v.c2.s ++ s.s; c = v.c2.c}} ; - lin SlashV2V v vp = {present = \\a,n,p => v.present ! a ! n ! p - ++ vp.present ! a ! n ! p; - aorist = \\n,p => v.aorist ! n ! p ++ vp.aorist ! n ! p; - imperfect = \\a,n,p => v.imperfect ! a ! n ! p - ++ vp.imperfect ! a ! n ! p; - imperative = \\a,n => v.imperative ! a ! n - ++ vp.imperative ! a ! n; - participle = {aorist = \\a,g => v.participle.aorist ! a ! g - ++ vp.participle.aorist ! a ! g; - imperfect = \\a,g => v.participle.imperfect ! a ! g - ++ vp.participle.imperfect ! a ! g; - perfect = \\a => v.participle.perfect ! a - ++ vp.participle.perfect ! a; - adjectival = \\a => v.participle.adjectival ! a - ++ vp.participle.adjectival ! a; - adverbial = v.participle.adverbial ++ vp.participle.adverbial}; - noun_from_verb = v.noun_from_verb ++ vp.noun_from_verb; - vtype = vp.vtype; - compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p - ++ vp.compl ! {g = GSg Masc; p = P1}; - c2 = {s = v.c2.s ++ vp.present ! Imperfective ! Sg ! P1; - c = v.c2.c}} ; - lin SlashV2VNP v np v2 = {present = \\a,n,p => v.present ! a ! n - ! p - ++ np.s ! RSubj ++ v2.present ! a ! n ! p; - aorist = \\n,p => v.aorist ! n ! p - ++ np.s ! RSubj ++ v2.aorist ! n ! p; - imperfect = \\a,n,p => v.imperfect ! a ! n ! p - ++ np.s ! RSubj ++ v2.imperfect ! a ! n ! p; - imperative = \\a,n => v.imperative ! a ! n - ++ np.s ! RSubj ++ v2.imperative ! a ! n; - participle = {aorist = \\a,g => v.participle.aorist ! a ! g - ++ np.s ! RSubj - ++ v2.participle.aorist ! a ! g; - imperfect = \\a,g => v.participle.imperfect ! a ! g - ++ np.s ! RSubj - ++ v2.participle.imperfect ! a - ! g; - perfect = \\a => v.participle.perfect ! a - ++ np.s ! RSubj - ++ v2.participle.perfect ! a; - adjectival = \\a => v.participle.adjectival ! a - ++ np.s ! RSubj - ++ v2.participle.adjectival - ! a; - adverbial = v.participle.adverbial - ++ np.s ! RSubj ++ v2.participle.adverbial}; - noun_from_verb = v.noun_from_verb - ++ np.s ! RSubj ++ v2.noun_from_verb; - vtype = v2.vtype; - compl = \\v3 => v.present ! Imperfective ! Sg ! v3.p - ++ np.s ! RSubj ++ v2.compl ! {g = GSg Masc; p = P1}; - c2 = {s = v.c2.s ++ np.s ! RSubj ++ v2.c2.s; c = v2.c2.c}} ; + lin SlashV2A v ap = v ** {compl = \\agr => ap.s ! Indef ! agr.g} ; + lin SlashV2Q v qs = v ** {compl = \\_ => qs.s} ; + lin SlashV2S v s = v ** {compl = \\_ => s.s} ; + lin SlashV2V v vp = v ** {compl = \\agr => "да" ++ vp.present ! Perfective ! genNum2num agr.g ! agr.p ++ vp.compl ! agr}; lin SlashV2a v = v ** {compl = \\_ => []} ; - lin SlashVV vv v = {present = \\a,n,p => vv.present ! a ! n ! p - ++ v.present ! a ! n ! p; - aorist = \\n,p => vv.aorist ! n ! p ++ v.aorist ! n ! p; - imperfect = \\a,n,p => vv.imperfect ! a ! n ! p - ++ v.imperfect ! a ! n ! p; - imperative = \\a,n => vv.imperative ! a ! n - ++ v.imperative ! a ! n; - participle = {aorist = \\a,g => vv.participle.aorist ! a ! g - ++ v.participle.aorist ! a ! g; - imperfect = \\a,g => vv.participle.imperfect ! a ! g - ++ v.participle.imperfect ! a ! g; - perfect = \\a => vv.participle.perfect ! a - ++ v.participle.perfect ! a; - adjectival = \\a => vv.participle.adjectival ! a - ++ v.participle.adjectival ! a; - adverbial = vv.participle.adverbial ++ v.participle.adverbial}; - noun_from_verb = vv.noun_from_verb ++ v.noun_from_verb; - vtype = v.vtype; - compl = \\v2 => vv.present ! Imperfective ! Sg ! v2.p - ++ v.compl ! {g = GSg Masc; p = P1}; - c2 = {s = vv.present ! Imperfective ! Sg ! P1 ++ v.c2.s; - c = v.c2.c}} ; + + lin UseComp comp = { + present = \\_=>auxBe.present ; + aorist = auxBe.imperfect ; + imperfect = \\_=>auxBe.imperfect ; + imperative = \\_=>auxBe.imperative ; + participle = {aorist = \\_=>auxBe.participle.aorist ; + imperfect = \\_=>auxBe.participle.imperfect ; + perfect = \\_=>nonExist ; + adjectival = \\_=>nonExist ; + adverbial = nonExist} ; + noun_from_verb = nonExist ; + compl = \\agr=>comp.s ! agr.g ; + vtype=VNormal + } ; + + lin UseCopula = { + present = \\_=>auxBe.present ; + aorist = auxBe.imperfect ; + imperfect = \\_=>auxBe.imperfect ; + imperative = \\_=>auxBe.imperative ; + participle = {aorist = \\_=>auxBe.participle.aorist ; + imperfect = \\_=>auxBe.participle.imperfect ; + perfect = \\_=>nonExist ; + adjectival = \\_=>nonExist ; + adverbial = nonExist} ; + noun_from_verb = nonExist ; + compl = \\_=>[] ; + vtype=VNormal + } ; + lin UseV v = v ** {compl = \\_ => []} ; lin VPSlashPrep vp p = {present = \\a,n,p2 => vp.present ! a ! n ! p2 From 2c613bfc832d7861a41ae152f91883f13ea88900 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 14 Apr 2026 09:06:11 +0200 Subject: [PATCH 153/169] added dummy ExtendMlt --- src/maltese/AllMlt.gf | 4 ++-- src/maltese/AllMltAbs.gf | 2 +- src/maltese/ExtendMlt.gf | 7 +++++++ 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 src/maltese/ExtendMlt.gf diff --git a/src/maltese/AllMlt.gf b/src/maltese/AllMlt.gf index 1a37a34f..58334086 100644 --- a/src/maltese/AllMlt.gf +++ b/src/maltese/AllMlt.gf @@ -10,7 +10,7 @@ concrete AllMlt of AllMltAbs = LangMlt, DictMlt, IrregMlt, - ExtraMlt - ** { + ExtendMlt + ** open ExtraMlt in { } ; diff --git a/src/maltese/AllMltAbs.gf b/src/maltese/AllMltAbs.gf index 5a545fc6..dcd022b3 100644 --- a/src/maltese/AllMltAbs.gf +++ b/src/maltese/AllMltAbs.gf @@ -10,5 +10,5 @@ abstract AllMltAbs = Lang, DictMltAbs, IrregMltAbs, - ExtraMltAbs + Extend ** {} ; diff --git a/src/maltese/ExtendMlt.gf b/src/maltese/ExtendMlt.gf new file mode 100644 index 00000000..fdfd8856 --- /dev/null +++ b/src/maltese/ExtendMlt.gf @@ -0,0 +1,7 @@ +concrete ExtendMlt of Extend = + CatMlt ** ExtendFunctor - [ + ComplDirectVS, + ComplDirectVQ + ] + with (Grammar = GrammarMlt) ** { +} From 14c7db642707570448df535460289fd1dcba36d2 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 14 Apr 2026 09:07:16 +0200 Subject: [PATCH 154/169] =?UTF-8?q?=D0=BD=D0=B8=D1=82=D0=BE=20->=20=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/macedonian/ResMkd.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 8868ae10..0f5ef050 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -331,6 +331,6 @@ mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Order => Tense => Anter } ; linCoord : Str -> Ints 4 => Str ; -linCoord comma = table {0 => "и"; 1=>"или"; 2=>"нито"; 3=>comma; 4=>[]} ; +linCoord comma = table {0 => "и"; 1=>"или"; 2=>"ниту"; 3=>comma; 4=>[]} ; } From 8b462bdbfb8010771b3d27a13bfa26c14376e20d Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 14 Apr 2026 09:30:18 +0200 Subject: [PATCH 155/169] added feminine pronouns --- src/maltese/ExtendMlt.gf | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/maltese/ExtendMlt.gf b/src/maltese/ExtendMlt.gf index fdfd8856..dfb744f0 100644 --- a/src/maltese/ExtendMlt.gf +++ b/src/maltese/ExtendMlt.gf @@ -1,7 +1,17 @@ concrete ExtendMlt of Extend = CatMlt ** ExtendFunctor - [ ComplDirectVS, - ComplDirectVQ + ComplDirectVQ, + iFem_Pron, youFem_Pron, weFem_Pron, youPlFem_Pron, + theyFem_Pron, youPolFem_Pron ] - with (Grammar = GrammarMlt) ** { + with (Grammar = GrammarMlt) ** open ParadigmsMlt, MorphoMlt, ResMlt in { + +lin iFem_Pron = mkPron "jien" "i" singular P1 feminine ; --- also JIENA + youFem_Pron = mkPron "int" "ek" singular P2 feminine ; --- also INTI + weFem_Pron = mkPron "aħna" "na" plural P1 feminine ; + youPlFem_Pron = mkPron "intom" "kom" plural P2 feminine ; + theyFem_Pron = mkPron "huma" "hom" plural P3 feminine ; + youPolFem_Pron = mkPron "int" "ek" singular P2 feminine ; --- also INTI + } From 9b6b94ec1d9950cb490b1d23ea2d31f01dec6621 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 14 Apr 2026 11:34:12 +0200 Subject: [PATCH 156/169] fix lincat AP --- src/armenian/CatHye.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf index 1783c119..9e5944ac 100644 --- a/src/armenian/CatHye.gf +++ b/src/armenian/CatHye.gf @@ -2,7 +2,7 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat A = Adj ; lincat A2 = Adj ** {c2 : Compl} ; lincat ACard = {s : Str} ; - lincat AP = {} ; + lincat AP = Adj ; lincat CN = {s : Species => Case => Number => Str; poss1 : Case => Number => Str; poss2 : Case => Number => Str} ; From 43f19f283e5116ff9c98abc2b8f8ee0c56d545fa Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 15 Apr 2026 06:45:39 +0200 Subject: [PATCH 157/169] fix AdVVP, AdVVPSlash --- src/macedonian/VerbMkd.gf | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index 75a3eb91..3365e586 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -11,8 +11,9 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { perfect = \\a2 => a.s ++ vp.participle.perfect ! a2; adjectival = \\a2 => a.s ++ vp.participle.adjectival ! a2; adverbial = a.s ++ vp.participle.adverbial}; - noun_from_verb = a.s ++ vp.noun_from_verb; vtype = vp.vtype; - compl = \\v => a.s ++ vp.compl ! {g = GSg Masc; p = P1}} ; + noun_from_verb = a.s ++ vp.noun_from_verb; + vtype = vp.vtype; + compl = vp.compl} ; lin AdVVPSlash a v = {present = \\a2,n,p => a.s ++ v.present ! a2 ! n ! p; aorist = \\n,p => a.s ++ v.aorist ! n ! p; @@ -24,9 +25,10 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { perfect = \\a2 => a.s ++ v.participle.perfect ! a2; adjectival = \\a2 => a.s ++ v.participle.adjectival ! a2; adverbial = a.s ++ v.participle.adverbial}; - noun_from_verb = a.s ++ v.noun_from_verb; vtype = v.vtype; - compl = \\v2 => a.s ++ v.compl ! {g = GSg Masc; p = P1}; - c2 = {s = a.s ++ v.c2.s; c = v.c2.c}} ; + noun_from_verb = a.s ++ v.noun_from_verb; + vtype = v.vtype; + compl = v.compl; + c2 = v.c2} ; lin AdvVP vp adv = vp ** {compl = \\a => vp.compl ! a ++ adv.s} ; lin AdvVPSlash vps adv = vps ** {compl = \\a => vps.compl ! a ++ adv.s} ; lin CompAP ap = {s = \\gn => ap.s ! Indef ! gn} ; From 15df5ed37e43de11445e9cb4e19644b7ce1d840b Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 15 Apr 2026 07:24:17 +0200 Subject: [PATCH 158/169] fix PossNP --- src/macedonian/NounMkd.gf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index 87f0fb97..a2082e2e 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -104,9 +104,12 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { lin PartNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; count_form = cn.count_form ++ np.s ! RSubj; vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; - lin PossNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; - count_form = cn.count_form ++ np.s ! RSubj; - vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; + lin PossNP cn np = { + s = \\s,n => cn.s ! s ! n ++ "на" ++ np.s ! RObj Acc; + count_form = cn.count_form ++ "на" ++ np.s ! RObj Acc; + vocative = \\n => cn.vocative ! n ++ "на" ++ np.s ! RObj Acc; + g = cn.g + } ; lin PossPron p = {s = p.poss ! Def Unspecified; sp = Indef} ; lin PredetNP p np = { s = \\r => p.s ++ np.s ! r; From 26abc639537b81b1a036a914fd418ecf934b29c2 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 15 Apr 2026 07:37:33 +0200 Subject: [PATCH 159/169] fix ordinals --- src/english/NounEng.gf | 6 +++--- src/macedonian/AdjectiveMkd.gf | 2 +- src/macedonian/CatMkd.gf | 1 + src/macedonian/NounMkd.gf | 15 +++++++++------ 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/english/NounEng.gf b/src/english/NounEng.gf index 760460e9..4122341e 100644 --- a/src/english/NounEng.gf +++ b/src/english/NounEng.gf @@ -39,9 +39,9 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in { DetQuant quant num = { s = quant.s ! num.hasCard ! num.n ++ num.s ! quant.isDef ! Nom; - sp = \\g,hasAdj,c => case of { - => quant.sp ! g ! hasAdj ! num.n ! c ++ num.s ! quant.isDef ! Nom ; - _ => quant.s ! True ! num.n ++ num.sp ! quant.isDef ! npcase2case c + sp = \\g,hasAdj,c => case num.hasCard of { + False => quant.sp ! g ! hasAdj ! num.n ! c ++ num.s ! quant.isDef ! Nom ; + _ => quant.s ! True ! num.n ++ num.sp ! quant.isDef ! npcase2case c } ; n = num.n ; hasNum = num.hasCard diff --git a/src/macedonian/AdjectiveMkd.gf b/src/macedonian/AdjectiveMkd.gf index 2f59be84..460121d0 100644 --- a/src/macedonian/AdjectiveMkd.gf +++ b/src/macedonian/AdjectiveMkd.gf @@ -2,7 +2,7 @@ concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in { lin AdAP a ap = {s = \\s,g => a.s ++ ap.s ! s ! g; isPre = ap.isPre} ; - lin AdjOrd o = {s = \\s,g => o.s; isPre = False} ; + lin AdjOrd o = {s = o.s; isPre = False} ; lin AdvAP ap adv = { s = \\s,g => ap.s ! s ! g ++ adv.s; isPre = False diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 7c4f367d..6a92fd06 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -32,6 +32,7 @@ lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; lincat NP = {s : Role => Str; vocative: Str; a : Agr} ; lincat Num = {s : Str; n : NNumber} ; lincat Quant = {s : GenNum => Str; sp : Species} ; +lincat Ord = {s : Species => GenNum => Str} ; lincat Det, DAP = {s : Gender => Str; n : NNumber; sp : Species} ; lincat VP = Verb ** {compl : Agr => Str} ; diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index a2082e2e..6c9a84d3 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -68,8 +68,11 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s; n = num.n; sp = q.sp} ; - lin DetQuantOrd q n o = {s = \\g => q.s ! GSg Masc ++ n.s ++ o.s; - n = n.n; sp = q.sp} ; + lin DetQuantOrd q n o = { + s = \\g => q.s ! GSg Masc ++ n.s ++ o.s ! q.sp ! genNum g (nnum2num n.n); + n = n.n; + sp = Indef + } ; lin ExtAdvNP np a = { s = \\r => np.s ! r ++ SOFT_BIND++"," ++ a.s; vocative = np.vocative ++ SOFT_BIND++"," ++ a.s; @@ -93,10 +96,10 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { vocative = np.vocative ++ rs.s ! np.a.g ; a = np.a; } ; - lin OrdDigits d = {s = d.s} ; - lin OrdNumeral n = {s = n.s} ; - lin OrdNumeralSuperl n a = {s = n.s ++ "нај" ++ BIND ++ a.s ! Indef ! GSg Masc} ; - lin OrdSuperl a = {s = "нај" ++ BIND ++ a.s ! Indef ! GSg Masc} ; + lin OrdDigits d = {s = \\s,gn => d.s} ; + lin OrdNumeral n = {s = \\s,gn => n.s} ; + lin OrdNumeralSuperl n a = {s = \\s,gn => n.s ++ "нај" ++ BIND ++ a.s ! s ! gn} ; + lin OrdSuperl a = {s = \\s,gn => "нај" ++ BIND ++ a.s ! s ! gn} ; lin PPartNP np v2 = {s = \\r => np.s ! r ++ v2.present ! Imperfective ! Sg ! np.a.p; vocative = np.vocative ++ v2.present ! Imperfective ! Sg ! np.a.p; From 27c2d7cbb3c6d9668d28af56daa57f75cf937341 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 15 Apr 2026 07:47:42 +0200 Subject: [PATCH 160/169] medial verbs --- src/macedonian/ResMkd.gf | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index 0f5ef050..14647b8f 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -300,19 +300,19 @@ mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Order => Tense => Anter } in \\o,t,a,p => case of { - => subj ++ neg ++ vp.present ! Imperfective ! n ! agr.p ++ li ++ vp.compl ! agr ; + => subj ++ neg ++ se ++ vp.present ! Imperfective ! n ! agr.p ++ li ++ vp.compl ! agr ; => case o of { - Main => subj ++ neg ++ auxBe.present ! n ! agr.p ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; - Quest => subj ++ neg ++ vp.participle.imperfect ! Perfective ! agr.g ++ li ++ auxBe.present ! n ! agr.p ++ vp.compl ! agr + Main => subj ++ neg ++ auxBe.present ! n ! agr.p ++ se ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + Quest => subj ++ neg ++ se ++ vp.participle.imperfect ! Perfective ! agr.g ++ li ++ auxBe.present ! n ! agr.p ++ vp.compl ! agr } ; - => subj ++ neg ++ vp.aorist ! n ! agr.p ++ li ++ vp.compl ! agr ; - => subj ++ neg ++ auxBe.imperfect ! n ! agr.p ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; - => subj ++ neg ++ vp.imperfect ! Perfective ! n ! agr.p ++ li ++ vp.compl ! agr ; - => subj ++ neg ++ auxBe.imperfect ! n ! agr.p ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; - => subj ++ fut.p1 ++ vp.present ! Perfective ! n ! agr.p ++ fut.p2 ++ vp.compl ! agr ; - => subj ++ fut.p1 ++ auxHave.present ! n ! agr.p ++ fut.p2 ++ vp.participle.perfect ! Perfective ++ vp.compl ! agr ; - => subj ++ neg ++ "би" ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; - => subj ++ neg ++ "би" ++ li ++ auxHave.participle.imperfect ! agr.g ++ vp.participle.perfect ! Perfective ++ vp.compl ! agr + => subj ++ neg ++ se ++ vp.aorist ! n ! agr.p ++ li ++ vp.compl ! agr ; + => subj ++ neg ++ se ++ auxBe.imperfect ! n ! agr.p ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + => subj ++ neg ++ se ++ vp.imperfect ! Perfective ! n ! agr.p ++ li ++ vp.compl ! agr ; + => subj ++ neg ++ se ++ auxBe.imperfect ! n ! agr.p ++ li ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + => subj ++ fut.p1 ++ se ++ vp.present ! Perfective ! n ! agr.p ++ fut.p2 ++ vp.compl ! agr ; + => subj ++ fut.p1 ++ se ++ auxHave.present ! n ! agr.p ++ fut.p2 ++ vp.participle.perfect ! Perfective ++ vp.compl ! agr ; + => subj ++ neg ++ "би" ++ li ++ se ++ vp.participle.imperfect ! Perfective ! agr.g ++ vp.compl ! agr ; + => subj ++ neg ++ "би" ++ li ++ auxHave.participle.imperfect ! agr.g ++ se ++ vp.participle.perfect ! Perfective ++ vp.compl ! agr } where { neg = case p of { Pos => "" ; @@ -327,6 +327,11 @@ mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Order => Tense => Anter li = case o of { Main => "" ; Quest => "ли" + } ; + se = case vp.vtype of { + VNormal => "" ; + VMedial Acc => "се" ; + VMedial Dat => "си" } } ; From 34f5e625e3d20cd9cc45c1d0af6c686583d17793 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 16 Apr 2026 08:43:22 +0200 Subject: [PATCH 161/169] added QuantityNP --- src/turkish/NounTur.gf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/turkish/NounTur.gf b/src/turkish/NounTur.gf index 286f7d1c..47aab179 100644 --- a/src/turkish/NounTur.gf +++ b/src/turkish/NounTur.gf @@ -243,4 +243,9 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, ParamX, a = np.a } ; + QuantityNP n m = { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard ! Sg ! Nom) ; + h = mkHar I_Har SVow ; -- guessed + a = agrP3 n.n + } ; } From 8a84ca1a454e7df1566e0ed8bb7e682f4d20dc49 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 16 Apr 2026 08:50:21 +0200 Subject: [PATCH 162/169] added QuantityNP --- src/maltese/NounMlt.gf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/maltese/NounMlt.gf b/src/maltese/NounMlt.gf index 408e7aa8..2b7a6585 100644 --- a/src/maltese/NounMlt.gf +++ b/src/maltese/NounMlt.gf @@ -310,6 +310,13 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude, Maybe in { isDefn = np.isDefn ; } ; + QuantityNP n m = { -- quessed + s = \\c => preOrPost m.isPre m.s (n.s ! NumNom) ; + a = agrP3 (numform2num n.n) Masc ; + isPron = False ; + isDefn = False ; + } ; + oper -- Overwrite the s field in an NP overwriteNPs : NounPhrase -> (NPCase => Str) -> NounPhrase = \np,tbl -> { From 48ec088faaf943c647c7d0119d502b40ca3f01d3 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 16 Apr 2026 16:20:18 +0200 Subject: [PATCH 163/169] more syntax --- src/armenian/AdjectiveHye.gf | 19 ++++++++++++++-- src/armenian/AdverbHye.gf | 6 +++++ src/armenian/CatHye.gf | 44 ++++++++++++++++-------------------- src/armenian/GrammarHye.gf | 3 +++ src/armenian/NounHye.gf | 13 +++++++---- src/armenian/ParadigmsHye.gf | 2 +- src/armenian/SentenceHye.gf | 14 ++++++++++++ src/armenian/VerbHye.gf | 34 ++++++++++++++++++++++++++++ 8 files changed, 103 insertions(+), 32 deletions(-) create mode 100644 src/armenian/AdverbHye.gf create mode 100644 src/armenian/SentenceHye.gf create mode 100644 src/armenian/VerbHye.gf diff --git a/src/armenian/AdjectiveHye.gf b/src/armenian/AdjectiveHye.gf index ab87d3f9..09800923 100644 --- a/src/armenian/AdjectiveHye.gf +++ b/src/armenian/AdjectiveHye.gf @@ -1,4 +1,19 @@ -concrete AdjectiveHye of Adjective = CatHye ** { +concrete AdjectiveHye of Adjective = CatHye ** open ResHye, Prelude in { lin - PositA a = a ; + AdAP ada ap = { + s = \\sp,c,num => ada.s ++ ap.s ! sp ! c ! num; + isPre = ap.isPre + } ; + PositA a = { + s = \\sp,c,num => + case of { + => a.def_nom ! num ; + => a.def_dat ! num ; + => a.poss1 ! c ! num ; + => a.poss2 ! c ! num ; + _ => a.s ! c ! num + } ; + isPre = True + } ; + } diff --git a/src/armenian/AdverbHye.gf b/src/armenian/AdverbHye.gf new file mode 100644 index 00000000..15f39b74 --- /dev/null +++ b/src/armenian/AdverbHye.gf @@ -0,0 +1,6 @@ +concrete AdverbHye of Adverb = CatHye ** open Prelude,ResHye in { + lin PrepNP p np = {s = case p.isPre of { + False => np.s ! p.c ++ p.s; + True => p.s ++ np.s ! p.c + }} ; +} diff --git a/src/armenian/CatHye.gf b/src/armenian/CatHye.gf index 9e5944ac..3b1f7362 100644 --- a/src/armenian/CatHye.gf +++ b/src/armenian/CatHye.gf @@ -2,12 +2,17 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat A = Adj ; lincat A2 = Adj ** {c2 : Compl} ; lincat ACard = {s : Str} ; - lincat AP = Adj ; - lincat CN = {s : Species => Case => Number => Str; - poss1 : Case => Number => Str; - poss2 : Case => Number => Str} ; + lincat AP = {s : Species => Case => Number => Str; isPre : Bool} ; + lincat CN = {s : Species => Case => Number => Str} ; lincat Card = {s : Str} ; - lincat Cl = {s : Str} ; + lincat Cl = {s : Str; + conditional : Aspect => Number => Str; + converb : {imperfective : Str; futCon1 : Str; + futCon2 : Str; negative : Str; + perfective : Str; simultaneous : Str}; + passive : Str; past : Person => Number => Str; + participle : PartType => Str; + subjunctive : Aspect => Number => Str} ; lincat ClSlash = {s : Str} ; lincat Comp = {s : Str} ; lincat Conj = {s : Str} ; @@ -31,7 +36,7 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat Ord = {s : Str} ; lincat PN = {s : Str} ; lincat Predet = {s : Str} ; - lincat Prep = Compl ; + lincat Prep = Compl ** {isPre : Bool} ; lincat Pron = {s : Str; empty : Str; a : Agr} ; lincat QCl = {s : Str} ; lincat QS = {s : Str} ; @@ -47,23 +52,12 @@ concrete CatHye of Cat = CommonX ** open Prelude,ResHye in { lincat VV,VS,VQ,VA = Verb ; lincat V2 = Verb ** {c2 : Compl} ; lincat V3,V2A,V2S,V2Q,V2V = Verb ** {c2,c3 : Compl} ; - lincat VP = {s : Case => Number => Str; - conditional : Aspect => Person => Number => Case => Number => Str; - converb : {imperfective : Case => Number => Str; - futCon1 : Case => Number => Str; FutCon2 : Case => Number => Str; - negative : Case => Number => Str; - perfective : Case => Number => Str; - simultaneous : Case => Number => Str}; - imperative : Number => Number => Str; - passive : Case => Number => Str; - past : Person => Number => Case => Number => Str; - participle : PartType => Case => Number => Str; - subjunctive : Aspect => Person => Number => Case => Number => Str} ; - lincat VPSlash = {s : Str; causative : Str; - conditional : Aspect => Person => Number => Str; - converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; - negative : Str; perfective : Str; simultaneous : Str}; - imperative : Number => Str; passive : Str; - past : Person => Number => Str; participle : PartType => Str; - subjunctive : Aspect => Person => Number => Str; lock_V : {}} ; + lincat VP = {s : Str; + conditional : Aspect => Person => Number => Str; + converb : {imperfective : Str; futCon1 : Str; futCon2 : Str; + negative : Str; perfective : Str; simultaneous : Str}; + imperative : Number => Str; passive : Str; + past : Person => Number => Str; participle : PartType => Str; + subjunctive : Aspect => Person => Number => Str} ; + lincat VPSlash = Verb ** {c2 : Compl} ; } diff --git a/src/armenian/GrammarHye.gf b/src/armenian/GrammarHye.gf index 14e44c22..2a7211a2 100644 --- a/src/armenian/GrammarHye.gf +++ b/src/armenian/GrammarHye.gf @@ -2,6 +2,9 @@ concrete GrammarHye of Grammar = TenseX, PhraseHye, NounHye, + VerbHye, AdjectiveHye, + AdverbHye, + SentenceHye, StructuralHye ** { } diff --git a/src/armenian/NounHye.gf b/src/armenian/NounHye.gf index 3fbbcdc2..1f4805f0 100644 --- a/src/armenian/NounHye.gf +++ b/src/armenian/NounHye.gf @@ -1,8 +1,13 @@ concrete NounHye of Noun = CatHye ** open ResHye in { + lin AdjCN ap cn = { + s = \\sp,c,n => + case ap.isPre of { + True => ap.s ! Indef ! Nom ! Sg ++ cn.s ! sp ! c ! n; + False => cn.s ! sp ! c ! n ++ ap.s ! Indef ! Nom ! Sg + } + } ; lin AdvCN cn adv = { - s = \\sp,c,num => cn.s ! sp ! c ! num ++ adv.s ; - poss1 = \\c,num => cn.poss1 ! c ! num ++ adv.s ; - poss2 = \\c,num => cn.poss2 ! c ! num ++ adv.s + s = \\sp,c,num => adv.s ++ cn.s ! sp ! c ! num } ; lin DefArt = {s = []; sp = Def} ; lin DetCN det cn = {s = \\c => det.s ++ cn.s ! det.sp ! c ! det.n; @@ -12,7 +17,7 @@ concrete NounHye of Noun = CatHye ** open ResHye in { lin NumPl = {s = []; n = Pl} ; lin NumSg = {s = []; n = Sg} ; lin PossPron pron = {s = pron.empty; sp = Poss pron.a.p} ; - lin UseN n = n ** { + lin UseN n = { s = \\sp,c,num => case of { => n.def_nom ! num ; diff --git a/src/armenian/ParadigmsHye.gf b/src/armenian/ParadigmsHye.gf index 7629fb78..6f5e81bd 100644 --- a/src/armenian/ParadigmsHye.gf +++ b/src/armenian/ParadigmsHye.gf @@ -468,7 +468,7 @@ oper mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; - mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Dat} ; + mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Dat; isPre=False} ; singular : Number = Sg ; plural : Number = Pl ; diff --git a/src/armenian/SentenceHye.gf b/src/armenian/SentenceHye.gf new file mode 100644 index 00000000..9deae436 --- /dev/null +++ b/src/armenian/SentenceHye.gf @@ -0,0 +1,14 @@ +concrete SentenceHye of Sentence = CatHye ** open Prelude,ResHye in { + lin PredVP np vp = {s = np.s ! Nom ++ vp.s; + conditional = \\a,n => np.s ! Nom ++ vp.conditional ! a ! P3 ! n; + converb = {imperfective = np.s ! Nom ++ vp.converb.imperfective; + futCon1 = np.s ! Nom ++ vp.converb.futCon1; + futCon2 = np.s ! Nom ++ vp.converb.futCon2; + negative = np.s ! Nom ++ vp.converb.negative; + perfective = np.s ! Nom ++ vp.converb.perfective; + simultaneous = np.s ! Nom ++ vp.converb.simultaneous}; + passive = np.s ! Nom ++ vp.passive; + past = \\_,n => np.s ! Nom ++ vp.past ! P3 ! n; + participle = \\p => np.s ! Nom ++ vp.participle ! p; + subjunctive = \\a,n => np.s ! Nom ++ vp.subjunctive ! a ! P3 ! n} ; +} diff --git a/src/armenian/VerbHye.gf b/src/armenian/VerbHye.gf new file mode 100644 index 00000000..a0e93b07 --- /dev/null +++ b/src/armenian/VerbHye.gf @@ -0,0 +1,34 @@ +concrete VerbHye of Verb = CatHye ** open Prelude,ResHye in { + lin AdvVP vp adv = {s = adv.s ++ vp.s; + conditional = \\a,p,n => adv.s ++ vp.conditional ! a ! p ! n; + converb = {imperfective = adv.s ++ vp.converb.imperfective; + futCon1 = adv.s ++ vp.converb.futCon1; + futCon2 = adv.s ++ vp.converb.futCon2; + negative = adv.s ++ vp.converb.negative; + perfective = adv.s ++ vp.converb.perfective; + simultaneous = adv.s ++ vp.converb.simultaneous}; + imperative = \\n => vp.imperative ! n ++ adv.s; + passive = adv.s ++ vp.passive; + past = \\p,n => adv.s ++ vp.past ! p ! n; + participle = \\p => adv.s ++ vp.participle ! p; + subjunctive = \\a,p,n => adv.s ++ vp.subjunctive ! a ! p ! n} ; + lin ComplSlash vp np = {s = vp.s ++ vp.c2.s ++ np.s ! vp.c2.c; + conditional = \\a,p,n => vp.conditional ! a ! p ! n + ++ vp.c2.s ++ np.s ! vp.c2.c; + converb = {imperfective = vp.converb.imperfective + ++ vp.c2.s ++ np.s ! vp.c2.c; + futCon1 = vp.converb.futCon1 ++ vp.c2.s ++ np.s ! vp.c2.c; + futCon2 = vp.converb.futCon2 ++ vp.c2.s ++ np.s ! vp.c2.c; + negative = vp.converb.negative ++ vp.c2.s ++ np.s ! vp.c2.c; + perfective = vp.converb.perfective + ++ vp.c2.s ++ np.s ! vp.c2.c; + simultaneous = vp.converb.simultaneous + ++ vp.c2.s ++ np.s ! vp.c2.c}; + imperative = \\n => vp.imperative ! n ++ vp.c2.s ++ np.s ! Nom; + passive = vp.passive ++ vp.c2.s ++ np.s ! vp.c2.c; + past = \\p,n => vp.past ! p ! n ++ vp.c2.s ++ np.s ! vp.c2.c; + participle = \\p => vp.participle ! p ++ vp.c2.s ++ np.s ! vp.c2.c; + subjunctive = \\a,p,n => vp.subjunctive ! a ! p ! n + ++ vp.c2.s ++ np.s ! vp.c2.c} ; + lin SlashV2a v = v ; +} From 7d73dd81951e87394d272cf9f01102c6f1acb216 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 16 Apr 2026 17:38:53 +0200 Subject: [PATCH 164/169] added UseV --- src/armenian/VerbHye.gf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/armenian/VerbHye.gf b/src/armenian/VerbHye.gf index a0e93b07..5b0466b1 100644 --- a/src/armenian/VerbHye.gf +++ b/src/armenian/VerbHye.gf @@ -31,4 +31,5 @@ concrete VerbHye of Verb = CatHye ** open Prelude,ResHye in { subjunctive = \\a,p,n => vp.subjunctive ! a ! p ! n ++ vp.c2.s ++ np.s ! vp.c2.c} ; lin SlashV2a v = v ; + lin UseV v = v ; } From be0fb1f7c16bfa4eef2c0c6288b24638d9624acd Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Thu, 16 Apr 2026 19:15:34 +0200 Subject: [PATCH 165/169] indefinite article and MassNP --- src/armenian/NounHye.gf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/armenian/NounHye.gf b/src/armenian/NounHye.gf index 1f4805f0..3d6c639a 100644 --- a/src/armenian/NounHye.gf +++ b/src/armenian/NounHye.gf @@ -13,9 +13,13 @@ concrete NounHye of Noun = CatHye ** open ResHye in { lin DetCN det cn = {s = \\c => det.s ++ cn.s ! det.sp ! c ! det.n; a = {n=det.n; p=P3}} ; lin DetQuant quant num = {s = quant.s ++ num.s; n = num.n; sp=quant.sp} ; - lin IndefArt = {s = []; sp = Indef} ; + lin IndefArt = {s = "մի"; sp = Indef} ; lin NumPl = {s = []; n = Pl} ; lin NumSg = {s = []; n = Sg} ; + lin MassNP cn = { + s = \\c => cn.s ! Indef ! c ! Sg; + a = {n=Sg; p=P3} + } ; lin PossPron pron = {s = pron.empty; sp = Poss pron.a.p} ; lin UseN n = { s = \\sp,c,num => From 90d8897bf9666c5d31ff9e2363a9f7514edc2d8e Mon Sep 17 00:00:00 2001 From: Abdirahman Ahmed Date: Fri, 17 Apr 2026 12:00:51 +0200 Subject: [PATCH 166/169] Fix AdjCN to include comparative NP (ComparA) AdjCN currently ignores the 'compar' field from AP, causing the NP in comparative constructions (ComparA) to be dropped. Example: - Expected: "guri ka weyn baabuur" - Actual: "guri ka weyn" This change appends ap.compar in AdjCN, preserving the comparison NP. A corresponding test has been added to src/somali/unittest/ap.gftest. --- src/somali/NounSom.gf | 2 +- src/somali/unittest/ap.gftest | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/somali/NounSom.gf b/src/somali/NounSom.gf index 925117ff..eb03c339 100644 --- a/src/somali/NounSom.gf +++ b/src/somali/NounSom.gf @@ -250,7 +250,7 @@ concrete NounSom of Noun = CatSom ** open ResSom, Prelude in { mod = \\st,n,c => cn.mod ! st ! n ! Abs -- If there was something before, it is now in Abs ++ andConj st cn.modtype -- If the sentence is already modified, any new modifier needs to be introduced with conjunction - ++ ap.s ! AF n c ; + ++ ap.s ! AF n c ++ " " ++ ap.compar ; modtype = AMod } ; diff --git a/src/somali/unittest/ap.gftest b/src/somali/unittest/ap.gftest index baf20a2f..7ee5d098 100644 --- a/src/somali/unittest/ap.gftest +++ b/src/somali/unittest/ap.gftest @@ -23,6 +23,10 @@ Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQ LangSom: bisad BIND daasi bisad BIND dan waa ka weyn tahay Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant that_Quant NumSg) (UseN cat_N)) (UseComp (CompAP (ComparA big_A (DetCN (DetQuant this_Quant NumSg) (UseN cat_N)))))))) NoVoc +-- LangEng: house bigger than car +LangSom: guri ka weyn baabuur +Lang: PhrUtt NoPConj (UttNP (AdjCN (ComparA big_A (MassNP (UseN car_N))) (UseN house_N))) NoVoc + -- LangEng: that cat is biggest LangSom: bisad BIND daasi waa ugu weyn tahay Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant that_Quant NumSg) (UseN cat_N)) (UseComp (CompAP (AdjOrd (OrdSuperl big_A))))))) NoVoc From e7e7f12ad89e566a0d2dd7e2583417122148b6dd Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Fri, 17 Apr 2026 20:08:42 +0200 Subject: [PATCH 167/169] added documentation --- src/somali/DocumentationSom.gf | 155 +++++++++++++++++++++++++++++++++ src/somali/LangSom.gf | 3 +- 2 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 src/somali/DocumentationSom.gf diff --git a/src/somali/DocumentationSom.gf b/src/somali/DocumentationSom.gf new file mode 100644 index 00000000..340115f1 --- /dev/null +++ b/src/somali/DocumentationSom.gf @@ -0,0 +1,155 @@ +concrete DocumentationSom of Documentation = CatSom ** open ResSom,Prelude,HTML in { + lincat Definition = {s : Str} ; + lincat Document = {s : Str} ; + lincat Inflection = {t : Str; s1 : Str; s2 : Str} ; + lincat Tag = {s : Str} ; + lin InflectionA, InflectionA2 = \adj -> { + t = "a"; + s1 = heading1 "Adjective"; + s2 = frameTable (tr (td "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Nom" ++ td (adj.s ! AF Sg Nom) ++ td (adj.s ! AF Pl Nom)) ++ + tr (th "Abs" ++ td (adj.s ! AF Sg Abs) ++ td (adj.s ! AF Pl Abs))) + } ; + lin InflectionAdA, InflectionAdN, InflectionAdV = \adv -> { + t = "adv"; + s1 = heading1 "Adverb"; + s2 = paragraph adv.s + } ; + lin InflectionAdv adv = {t = "adv"; s1 = heading1 "Adverb"; + s2 = frameTable (tr (th "sii" ++ td adv.sii) + ++ tr (th "dhex" ++ td adv.dhex) + ++ tr (th "berri" ++ td adv.berri) + ++ tr (th "miscAdv" ++ td adv.miscAdv) + ++ tr (th "np" ++ td adv.np.s))} ; + lin InflectionGN pn = {t = "pn"; s1 = heading1 "Name"; + s2 = frameTable (tr (th "" ++ td pn.s))} ; + lin InflectionLN pn = {t = "pn"; s1 = heading1 "Name"; + s2 = frameTable (tr (th "" ++ td pn.s))} ; + lin InflectionN,InflectionN2,InflectionN3 = \noun -> { + t = "n"; + s1 = heading1 "Noun"; + s2 = frameTable (tr (th "Def" ++ td (noun.s ! Def Sg) ++ td (noun.s ! Def Pl)) ++ + tr (th "Indef" ++ td (noun.s ! Indef Sg) ++ td (noun.s ! Indef Pl)) ++ + tr (th "Nom" ++ td (noun.s ! NomSg) ++ td []) ++ + tr (th "Numerative" ++ td (noun.s ! Numerative))) + } ; + lin InflectionPN pn = {t = "pn"; s1 = heading1 "Name"; + s2 = frameTable (tr (th "" ++ td pn.s))} ; + lin InflectionPrep prep = {t = "prep"; s1 = heading1 "Preposition"; + s2 = frameTable (tr (th "Sg1Obj" ++ td (prep.s ! Sg1Obj)) + ++ tr (th "Sg2Obj" ++ td (prep.s ! Sg2Obj)) + ++ tr (th "(Pl1Obj Excl)" + ++ td (prep.s ! Pl1Obj Excl)) + ++ tr (th "(Pl1Obj Incl)" + ++ td (prep.s ! Pl1Obj Incl)) + ++ tr (th "Pl2Obj" + ++ td (prep.s ! Pl2Obj)) + ++ tr (th "ReflexiveObj" + ++ td (prep.s + ! ReflexiveObj)) + ++ tr (th "ZeroObj" + ++ td (prep.s + ! ZeroObj)) + ++ tr (th "berri" + ++ td prep.berri) + ++ tr (th "sii" + ++ td prep.sii) + ++ tr (th "dhex" + ++ td prep.dhex) + ++ tr (th "hoostiisa Sg1" + ++ td (prep.hoostiisa + ! Sg1)) + ++ tr (th "hoostiisa Sg2" + ++ td (prep.hoostiisa + ! Sg2)) + ++ tr (th "hoostiisa (Sg3 Masc)" + ++ td (prep.hoostiisa + ! Sg3 Masc)) + ++ tr (th "hoostiisa (Sg3 Fem)" + ++ td (prep.hoostiisa + ! Sg3 Fem)) + ++ tr (th "hoostiisa (Pl1 Excl)" + ++ td (prep.hoostiisa + ! Pl1 Excl)) + ++ tr (th "hoostiisa (Pl1 Incl)" + ++ td (prep.hoostiisa + ! Pl1 Incl)) + ++ tr (th "hoostiisa Pl2" + ++ td (prep.hoostiisa + ! Pl2)) + ++ tr (th "hoostiisa Pl3" + ++ td (prep.hoostiisa + ! Pl3)) + ++ tr (th "hoostiisa Impers" + ++ td (prep.hoostiisa + ! Impers)))} ; + lin InflectionSN pn = {t = "pn"; s1 = heading1 "Name"; + s2 = frameTable (tr (th "" ++ td pn.s))} ; + lin InflectionV v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionV2 v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionV2A v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionV2Q v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionV2S v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionV2V v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionV3 v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionVA v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionVQ v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionVS v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin InflectionVV v = {t = "v"; s1 = heading1 "Verb"; s2 = inflectV v} ; + lin MkDefinition t d = {s = "

Definition:" + ++ t.s ++ d.s ++ "

"} ; + lin MkDefinitionEx t d e = {s = "

Definition:" + ++ t.s ++ d.s ++ "

Example:" ++ t.s ++ "

"} ; + lin MkDocument d i e = {s = i.s1 ++ i.s2} ; + lin MkTag i = {s = i.t} ; + lin NoDefinition t = t ; + + oper inflectV : Verb -> Str = \v -> + heading2 "Infinitive" ++ + paragraph (v.s ! VInf) ++ + heading2 "Present" ++ + heading3 "Simple" ++ + frameTable (tr (td "" ++ th "Pos" ++ th "Neg") ++ + tr (th "Sg1_Sg3Masc" ++ td (v.s ! VPres Simple Sg1_Sg3Masc Pos) ++ td (v.s ! VPres Simple Sg1_Sg3Masc Neg)) ++ + tr (th "Sg2_Sg3Fem" ++ td (v.s ! VPres Simple Sg2_Sg3Fem Pos) ++ td (v.s ! VPres Simple Sg2_Sg3Fem Neg)) ++ + tr (th "Pl1" ++ td (v.s ! VPres Simple Pl1_ Pos) ++ td (v.s ! VPres Simple Pl1_ Neg)) ++ + tr (th "Pl2" ++ td (v.s ! VPres Simple Pl2_ Pos) ++ td (v.s ! VPres Simple Pl2_ Neg)) ++ + tr (th "Pl3" ++ td (v.s ! VPres Simple Pl3_ Pos) ++ td (v.s ! VPres Simple Pl3_ Neg))) ++ + heading3 "Progressive" ++ + frameTable (tr (td "" ++ th "Pos" ++ th "Neg") ++ + tr (th "Sg1_Sg3Masc" ++ td (v.s ! VPres Progressive Sg1_Sg3Masc Pos) ++ td (v.s ! VPres Progressive Sg1_Sg3Masc Neg)) ++ + tr (th "Sg2_Sg3Fem" ++ td (v.s ! VPres Progressive Sg2_Sg3Fem Pos) ++ td (v.s ! VPres Progressive Sg2_Sg3Fem Neg)) ++ + tr (th "Pl1" ++ td (v.s ! VPres Progressive Pl1_ Pos) ++ td (v.s ! VPres Progressive Pl1_ Neg)) ++ + tr (th "Pl2" ++ td (v.s ! VPres Progressive Pl2_ Pos) ++ td (v.s ! VPres Progressive Pl2_ Neg)) ++ + tr (th "Pl3" ++ td (v.s ! VPres Progressive Pl3_ Pos) ++ td (v.s ! VPres Progressive Pl3_ Neg))) ++ + heading2 "Past" ++ + heading3 "Simple" ++ + frameTable (tr (td "" ++ th "Pos" ++ th "Neg") ++ + tr (th "Sg1_Sg3Masc" ++ td (v.s ! VPast Simple Sg1_Sg3Masc) ++ intagAttr "td" "rowspan=5" (v.s ! VNegPast Simple)) ++ + tr (th "Sg2_Sg3Fem" ++ td (v.s ! VPast Simple Sg2_Sg3Fem)) ++ + tr (th "Pl1" ++ td (v.s ! VPast Simple Pl1_)) ++ + tr (th "Pl2" ++ td (v.s ! VPast Simple Pl2_)) ++ + tr (th "Pl3" ++ td (v.s ! VPast Simple Pl3_))) ++ + heading3 "Progressive" ++ + frameTable (tr (td "" ++ th "Pos" ++ th "Neg") ++ + tr (th "Sg1_Sg3Masc" ++ td (v.s ! VPast Progressive Sg1_Sg3Masc) ++ intagAttr "td" "rowspan=5" (v.s ! VNegPast Progressive)) ++ + tr (th "Sg2_Sg3Fem" ++ td (v.s ! VPast Progressive Sg2_Sg3Fem)) ++ + tr (th "Pl1" ++ td (v.s ! VPast Progressive Pl1_)) ++ + tr (th "Pl2" ++ td (v.s ! VPast Progressive Pl2_)) ++ + tr (th "Pl3" ++ td (v.s ! VPast Progressive Pl3_))) ++ + heading2 "Imperative" ++ + frameTable (tr (td "" ++ th "Pos" ++ th "Neg") ++ + tr (th "Sg" ++ td (v.s ! VImp Sg Pos) ++ td (v.s ! VImp Sg Neg)) ++ + tr (th "Pl" ++ td (v.s ! VImp Pl Pos) ++ td (v.s ! VImp Pl Neg))) ++ + heading2 "Relative" ++ + frameTable (tr (td "" ++ th "Pos" ++ th "Neg") ++ + tr (th "SgMasc" ++ td (v.s ! VRel SgMasc) ++ intagAttr "td" "rowspan=3" (v.s ! VRelNeg)) ++ + tr (th "SgFem" ++ td (v.s ! VRel SgFem)) ++ + tr (th "PlInv" ++ td (v.s ! VRel PlInv))) ++ + heading2 "Negative Conditional" ++ + frameTable (tr (th "SgMasc" ++ td (v.s ! VNegCond SgMasc)) ++ + tr (th "SgFem" ++ td (v.s ! VNegCond SgFem)) ++ + tr (th "PlInv" ++ td (v.s ! VNegCond PlInv))) ++ + frameTable (tr (th "sii" ++ td v.sii) ++ + tr (th "dhex" ++ td v.dhex)) ; +} diff --git a/src/somali/LangSom.gf b/src/somali/LangSom.gf index fb9ebeb4..4d1a4ae6 100644 --- a/src/somali/LangSom.gf +++ b/src/somali/LangSom.gf @@ -1,4 +1,5 @@ concrete LangSom of Lang = GrammarSom, LexiconSom, - ConstructionSom ; + ConstructionSom, + DocumentationSom ; From 3943089d3db392bc10744d1158ce212d056cb785 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 20 Apr 2026 08:17:18 +0200 Subject: [PATCH 168/169] cosmetic changes in the tables --- src/somali/DocumentationSom.gf | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/somali/DocumentationSom.gf b/src/somali/DocumentationSom.gf index 340115f1..d207b1d0 100644 --- a/src/somali/DocumentationSom.gf +++ b/src/somali/DocumentationSom.gf @@ -28,10 +28,11 @@ concrete DocumentationSom of Documentation = CatSom ** open ResSom,Prelude,HTML lin InflectionN,InflectionN2,InflectionN3 = \noun -> { t = "n"; s1 = heading1 "Noun"; - s2 = frameTable (tr (th "Def" ++ td (noun.s ! Def Sg) ++ td (noun.s ! Def Pl)) ++ + s2 = frameTable (tr (td "" ++ th "Sg" ++ th "Pl") ++ + tr (th "Def" ++ td (noun.s ! Def Sg) ++ td (noun.s ! Def Pl)) ++ tr (th "Indef" ++ td (noun.s ! Indef Sg) ++ td (noun.s ! Indef Pl)) ++ tr (th "Nom" ++ td (noun.s ! NomSg) ++ td []) ++ - tr (th "Numerative" ++ td (noun.s ! Numerative))) + tr (th "Numerative" ++ intagAttr "td" "colspan=2" (noun.s ! Numerative))) } ; lin InflectionPN pn = {t = "pn"; s1 = heading1 "Name"; s2 = frameTable (tr (th "" ++ td pn.s))} ; @@ -149,7 +150,5 @@ concrete DocumentationSom of Documentation = CatSom ** open ResSom,Prelude,HTML heading2 "Negative Conditional" ++ frameTable (tr (th "SgMasc" ++ td (v.s ! VNegCond SgMasc)) ++ tr (th "SgFem" ++ td (v.s ! VNegCond SgFem)) ++ - tr (th "PlInv" ++ td (v.s ! VNegCond PlInv))) ++ - frameTable (tr (th "sii" ++ td v.sii) ++ - tr (th "dhex" ++ td v.dhex)) ; + tr (th "PlInv" ++ td (v.s ! VNegCond PlInv))) ; } From 922f664f7435c4b15adc32e83bd239bd5b62dcbe Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Mon, 20 Apr 2026 09:12:27 +0200 Subject: [PATCH 169/169] imperative as linref for lexical verb categories --- src/somali/CatSom.gf | 1 + 1 file changed, 1 insertion(+) diff --git a/src/somali/CatSom.gf b/src/somali/CatSom.gf index 3f97933d..06e7b48a 100644 --- a/src/somali/CatSom.gf +++ b/src/somali/CatSom.gf @@ -125,6 +125,7 @@ concrete CatSom of Cat = CommonX - [Adv,IAdv] ** open ResSom, Prelude in { linref -- Cl = linCl ; + V, VS, VQ, VA, VV, V2A, V2V, V2S, V2Q, V2, V3 = \v -> v.s ! VImp Sg Pos ; VP = infVP ; CN = linCN ; Prep = \prep -> prep.s ! ZeroObj ++ prep.sii ++ prep.dhex ++ prep.hoostiisa ! Sg3 Masc ;