From c8ceed08efcc0bdc1fcbd89bce643d9f52f0991b Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 9 Dec 2009 09:47:16 +0000 Subject: moving a few things to deprecated --- old-lib/resource/bulgarian/AdjectiveBul.gf | 44 - old-lib/resource/bulgarian/AdverbBul.gf | 20 - old-lib/resource/bulgarian/AllBul.gf | 8 - old-lib/resource/bulgarian/AllBulAbs.gf | 8 - old-lib/resource/bulgarian/CatBul.gf | 126 --- old-lib/resource/bulgarian/ConjunctionBul.gf | 56 - old-lib/resource/bulgarian/ExtraBul.gf | 68 -- old-lib/resource/bulgarian/ExtraBulAbs.gf | 33 - old-lib/resource/bulgarian/GrammarBul.gf | 23 - old-lib/resource/bulgarian/IdiomBul.gf | 65 -- old-lib/resource/bulgarian/LangBul.gf | 12 - old-lib/resource/bulgarian/LexiconBul.gf | 380 ------- old-lib/resource/bulgarian/MorphoBul.gf | 178 ---- old-lib/resource/bulgarian/MorphoFunsBul.gf | 184 ---- old-lib/resource/bulgarian/NounBul.gf | 187 ---- old-lib/resource/bulgarian/NumeralBul.gf | 134 --- old-lib/resource/bulgarian/ParadigmsBul.gf | 1460 -------------------------- old-lib/resource/bulgarian/PhraseBul.gf | 25 - old-lib/resource/bulgarian/QuestionBul.gf | 63 -- old-lib/resource/bulgarian/RelativeBul.gf | 34 - old-lib/resource/bulgarian/ResBul.gf | 626 ----------- old-lib/resource/bulgarian/SentenceBul.gf | 72 -- old-lib/resource/bulgarian/StructuralBul.gf | 122 --- old-lib/resource/bulgarian/TextBul.gf | 13 - old-lib/resource/bulgarian/VerbBul.gf | 92 -- 25 files changed, 4033 deletions(-) delete mode 100644 old-lib/resource/bulgarian/AdjectiveBul.gf delete mode 100644 old-lib/resource/bulgarian/AdverbBul.gf delete mode 100644 old-lib/resource/bulgarian/AllBul.gf delete mode 100644 old-lib/resource/bulgarian/AllBulAbs.gf delete mode 100644 old-lib/resource/bulgarian/CatBul.gf delete mode 100644 old-lib/resource/bulgarian/ConjunctionBul.gf delete mode 100644 old-lib/resource/bulgarian/ExtraBul.gf delete mode 100644 old-lib/resource/bulgarian/ExtraBulAbs.gf delete mode 100644 old-lib/resource/bulgarian/GrammarBul.gf delete mode 100644 old-lib/resource/bulgarian/IdiomBul.gf delete mode 100644 old-lib/resource/bulgarian/LangBul.gf delete mode 100644 old-lib/resource/bulgarian/LexiconBul.gf delete mode 100644 old-lib/resource/bulgarian/MorphoBul.gf delete mode 100644 old-lib/resource/bulgarian/MorphoFunsBul.gf delete mode 100644 old-lib/resource/bulgarian/NounBul.gf delete mode 100644 old-lib/resource/bulgarian/NumeralBul.gf delete mode 100644 old-lib/resource/bulgarian/ParadigmsBul.gf delete mode 100644 old-lib/resource/bulgarian/PhraseBul.gf delete mode 100644 old-lib/resource/bulgarian/QuestionBul.gf delete mode 100644 old-lib/resource/bulgarian/RelativeBul.gf delete mode 100644 old-lib/resource/bulgarian/ResBul.gf delete mode 100644 old-lib/resource/bulgarian/SentenceBul.gf delete mode 100644 old-lib/resource/bulgarian/StructuralBul.gf delete mode 100644 old-lib/resource/bulgarian/TextBul.gf delete mode 100644 old-lib/resource/bulgarian/VerbBul.gf (limited to 'old-lib/resource/bulgarian') diff --git a/old-lib/resource/bulgarian/AdjectiveBul.gf b/old-lib/resource/bulgarian/AdjectiveBul.gf deleted file mode 100644 index dfdf19763..000000000 --- a/old-lib/resource/bulgarian/AdjectiveBul.gf +++ /dev/null @@ -1,44 +0,0 @@ -concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in { - flags coding=cp1251 ; - - lin - PositA a = { - s = \\aform => a.s ! aform ; - adv = a.adv ; - isPre = True - } ; - - ComparA a np = { - s = \\aform => "по" ++ "-" ++ a.s ! aform ++ "от" ++ np.s ! RObj Acc ; - adv = "по" ++ "-" ++ a.adv ++ "от" ++ np.s ! RObj Acc ; - isPre = True - } ; - --- $SuperlA$ belongs to determiner syntax in $Noun$. - - ComplA2 a np = { - s = \\aform => a.s ! aform ++ a.c2 ++ np.s ! RObj Acc ; - adv = a.adv ++ a.c2 ++ np.s ! RObj Acc ; - isPre = True - } ; - - ReflA2 a = { - s = \\aform => a.s ! aform ++ a.c2 ++ ["себе си"] ; - adv = a.adv ++ a.c2 ++ ["себе си"] ; - isPre = False - } ; - - SentAP ap sc = { - s = \\a => ap.s ! a ++ sc.s ; - adv = ap.adv ++ sc.s ; - isPre = False - } ; - - AdAP ada ap = { - s = \\a => ada.s ++ ap.s ! a ; - adv = ada.s ++ ap.adv ; - isPre = ap.isPre - } ; - - UseA2 a = a ; -} diff --git a/old-lib/resource/bulgarian/AdverbBul.gf b/old-lib/resource/bulgarian/AdverbBul.gf deleted file mode 100644 index f886575aa..000000000 --- a/old-lib/resource/bulgarian/AdverbBul.gf +++ /dev/null @@ -1,20 +0,0 @@ -concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in { - flags coding=cp1251 ; - - lin - PositAdvAdj a = {s = a.adv} ; - ComparAdvAdj cadv a np = { - s = cadv.s ++ "по" ++ "-" ++ a.s ! ASg Neut Indef ++ "от" ++ np.s ! RObj Acc - } ; - ComparAdvAdjS cadv a s = { - s = cadv.s ++ "по" ++ "-" ++ a.s ! ASg Neut Indef ++ "от" ++ "колкото" ++ s.s - } ; - - PrepNP prep np = {s = prep.s ++ np.s ! RObj prep.c} ; - - AdAdv = cc2 ; - - SubjS = cc2 ; - - AdnCAdv cadv = {s = cadv.sn ++ "от"} ; -} diff --git a/old-lib/resource/bulgarian/AllBul.gf b/old-lib/resource/bulgarian/AllBul.gf deleted file mode 100644 index 80ad02165..000000000 --- a/old-lib/resource/bulgarian/AllBul.gf +++ /dev/null @@ -1,8 +0,0 @@ ---# -path=.:../abstract:../common:prelude - -concrete AllBul of AllBulAbs = - LangBul, - ExtraBul - ** { - flags coding=cp1251 ; -} ; diff --git a/old-lib/resource/bulgarian/AllBulAbs.gf b/old-lib/resource/bulgarian/AllBulAbs.gf deleted file mode 100644 index 34156982b..000000000 --- a/old-lib/resource/bulgarian/AllBulAbs.gf +++ /dev/null @@ -1,8 +0,0 @@ ---# -path=.:../abstract:../common:prelude - -abstract AllBulAbs = - Lang, - ExtraBulAbs - ** { - flags coding=cp1251 ; -} ; diff --git a/old-lib/resource/bulgarian/CatBul.gf b/old-lib/resource/bulgarian/CatBul.gf deleted file mode 100644 index e9202f095..000000000 --- a/old-lib/resource/bulgarian/CatBul.gf +++ /dev/null @@ -1,126 +0,0 @@ -concrete CatBul of Cat = open ResBul, Prelude, (R = ParamX) in { - flags coding=cp1251 ; - - - flags optimize=all_subs ; - - - lincat - --- Text, Phrase, Utterance - - Text = {s : Str} ; - Phr = {s : Str} ; - Utt = {s : Str} ; - Voc = {s : Str} ; - PConj = {s : Str} ; - --- Tense, Anteriority, Polarity - - Tense = {s : Str ; t : R.Tense} ; - Ant = {s : Str ; a : R.Anteriority} ; - Pol = {s : Str ; p : R.Polarity} ; - --- Tensed/Untensed - - S = {s : Str} ; - QS = {s : QForm => Str} ; - RS = {s : Agr => Str} ; - SC = {s : Str} ; - SSlash = {s : Agr => Str ; c2 : Preposition} ; - --- Sentence - - Cl = {s : ResBul.Tense => Anteriority => Polarity => Order => Str} ; - ClSlash = { - s : Agr => ResBul.Tense => Anteriority => Polarity => Order => Str ; - c2 : Preposition - } ; - Imp = {s : Polarity => GenNum => Str} ; - --- Question - - QCl = {s : ResBul.Tense => Anteriority => Polarity => QForm => Str} ; - IP = {s : Role => QForm => Str; gn : GenNum} ; - IComp = {s : QForm => Str} ; - IDet = {s : DGender => QForm => Str; n : Number ; nonEmpty : Bool} ; - IQuant = {s : GenNum => QForm => Str} ; - --- Relative - - RCl = {s : ResBul.Tense => Anteriority => Polarity => Agr => Str} ; - RP = {s : GenNum => Str} ; - --- Verb - - VP = ResBul.VP ; - VPSlash = ResBul.VPSlash ; - - Comp = {s : Agr => Str} ; - AdV = {s : Str} ; --lock_AdV : {}} ; - --- Adjective - - AP = {s : AForm => Str; adv : Str; isPre : Bool} ; - --- Adjective - - Adv = {s : Str} ; - CAdv = {s : Str; sn : Str} ; - IAdv = {s : QForm => Str} ; - AdA = {s : Str} ; - --- Noun - - CN = {s : NForm => Str; g : DGender} ; - NP = {s : Role => Str; a : Agr} ; - Pron = {s : Role => Str; gen : AForm => Str; a : Agr} ; - Det = {s : DGender => Role => Str ; n : Number; countable : Bool; spec : Species} ; - Predet = {s : GenNum => Str} ; - Ord = {s : AForm => Str} ; - Num = {s : DGenderSpecies => Str; n : Number; nonEmpty : Bool} ; - Card = {s : DGenderSpecies => Str; n : Number} ; - Quant = {s : AForm => Str} ; - Art = {s : Str; spec : Species} ; - --- Numeral - - Numeral = {s : CardOrd => Str; n : Number} ; - Digits = {s : CardOrd => Str; n : Number; tail : DTail} ; - AdN = {s : Str} ; - --- Structural - - Conj = {s : Str; distr : Bool; conj : Bool; n : Number} ; - Subj = {s : Str} ; - Prep = {s : Str; c : Case} ; - --- Open lexical classes, e.g. Lexicon - - V, VS, VQ, VA = Verb ; - V2, V2A = Verb ** {c2 : Preposition} ; - V2V, V2S, V2Q = Verb ** {c2 : Preposition} ; --- AR - V3 = Verb ** {c2, c3 : Preposition} ; - VV = Verb ; - - A = {s : AForm => Str; adv : Str} ; - A2 = {s : AForm => Str; adv : Str; c2 : Str} ; - - N = {s : NForm => Str; g : DGender} ; - N2 = {s : NForm => Str; g : DGender} ** {c2 : Preposition} ; - N3 = {s : NForm => Str; g : DGender} ** {c2,c3 : Preposition} ; - PN = {s : Str; g : Gender} ; - - --- Tense, Anteriority and Polarity functions - - lin - PPos = {s = []} ** {p = R.Pos} ; - PNeg = {s = []} ** {p = R.Neg} ; - TPres = {s = []} ** {t = R.Pres} ; - TPast = {s = []} ** {t = R.Past} ; --# notpresent - TFut = {s = []} ** {t = R.Fut} ; --# notpresent - TCond = {s = []} ** {t = R.Cond} ; --# notpresent - ASimul = {s = []} ** {a = R.Simul} ; - AAnter = {s = []} ** {a = R.Anter} ; --# notpresent -} diff --git a/old-lib/resource/bulgarian/ConjunctionBul.gf b/old-lib/resource/bulgarian/ConjunctionBul.gf deleted file mode 100644 index 23664cd1f..000000000 --- a/old-lib/resource/bulgarian/ConjunctionBul.gf +++ /dev/null @@ -1,56 +0,0 @@ -concrete ConjunctionBul of Conjunction = - CatBul ** open ResBul, Coordination, Prelude in { - flags coding=cp1251 ; - - - flags optimize=all_subs ; - - lin - ConjS conj ss = { - s = (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj; - } ; - - ConjAdv conj ss = { - s = (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj; - } ; - - ConjNP conj ss = { - s = \\role => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!role; - a = {gn = conjGenNum (gennum DMasc conj.n) ss.a.gn; p = ss.a.p} - } ; - - ConjAP conj ss = { - s = \\aform => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!aform; - adv = (linCoordSep [])!conj.distr!conj.conj++ss.adv!conj.distr!conj.conj; - isPre = ss.isPre - } ; - --- These fun's are generated from the list cat's. - BaseS x y = {s = \\d,t=>x.s++linCoord!t++ y.s} ; - ConsS x xs = {s = \\d,t=>x.s++(linCoordSep comma)!d!t++xs.s!d!t} ; - - BaseAdv x y = {s = \\d,t=>x.s++linCoord!t++ y.s} ; - ConsAdv x xs = {s = \\d,t=>x.s++(linCoordSep comma)!d!t++xs.s!d!t} ; - - BaseNP x y = - {s = \\d,t,role=>x.s!role++linCoord!t++y.s!role; - a = conjAgr x.a y.a} ; - ConsNP x xs = - {s = \\d,t,role=>x.s!role++(linCoordSep comma)!d!t++xs.s!d!t!role; - a = conjAgr xs.a x.a} ; - - BaseAP x y = - {s = \\d,t,aform=>x.s!aform++linCoord!t++y.s!aform; - adv= \\d,t =>x.adv ++linCoord!t++y.adv; - isPre = andB x.isPre y.isPre} ; - ConsAP x xs = - {s = \\d,t,aform=>x.s!aform++(linCoordSep comma)!d!t++xs.s!d!t!aform; - adv= \\d,t =>x.adv ++(linCoordSep comma)!d!t++xs.adv!d!t; - isPre = andB x.isPre xs.isPre} ; - - lincat - [S] = {s : Bool => Bool => Str} ; - [Adv] = {s : Bool => Bool => Str} ; - [NP] = {s : Bool => Bool => Role => Str; a : Agr} ; - [AP] = {s : Bool => Bool => AForm => Str; adv : Bool => Bool => Str; isPre : Bool} ; -} diff --git a/old-lib/resource/bulgarian/ExtraBul.gf b/old-lib/resource/bulgarian/ExtraBul.gf deleted file mode 100644 index 1e15a19de..000000000 --- a/old-lib/resource/bulgarian/ExtraBul.gf +++ /dev/null @@ -1,68 +0,0 @@ -concrete ExtraBul of ExtraBulAbs = CatBul ** - open ResBul, Coordination, Prelude in { - flags coding=cp1251 ; - - - lin - PossIndefPron p = { - s = \\aform => p.gen ! (indefAForm ! aform) ; - spec = Indef - } ; - - ReflQuant = { - s = \\aform => reflPron ! aform ; - spec = Indef - } ; - - ReflIndefQuant = { - s = \\aform => reflPron ! (indefAForm ! aform) ; - spec = Indef - } ; - - i8fem_Pron = mkPron "аз" "мен" "ми" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Fem) P1 ; - i8neut_Pron = mkPron "аз" "мен" "ми" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Neut) P1 ; - - whatSg8fem_IP = mkIP "каква" "каква" (GSg Fem) ; - whatSg8neut_IP = mkIP "какво" "какво" (GSg Neut) ; - - whoSg8fem_IP = mkIP "коя" "кого" (GSg Fem) ; - whoSg8neut_IP = mkIP "кое" "кого" (GSg Neut) ; - - youSg8fem_Pron = mkPron "ти" "теб" "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Fem) P2 ; - youSg8neut_Pron = mkPron "ти" "теб" "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Neut) P2 ; - - youPol8fem_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" (GSg Fem) P2 ; - youPol8neut_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" (GSg Neut) P2 ; - - onePl_Num = {s = table { - DMascIndef | DMascPersonalIndef | DFemIndef | DNeutIndef => "едни" ; - DMascDef | DMascDefNom | DMascPersonalDef | DMascPersonalDefNom | DFemDef | DNeutDef => "едните" - } ; - n = Pl; - nonEmpty = True - } ; - - UttImpSg8fem pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ; - UttImpSg8neut pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ; - - oper - reflPron : AForm => Str = - table { - ASg Masc Indef => "свой" ; - ASg Masc Def => "своя" ; - ASgMascDefNom => "своят" ; - ASg Fem Indef => "своя" ; - ASg Fem Def => "своята" ; - ASg Neut Indef => "свое" ; - ASg Neut Def => "своето" ; - APl Indef => "свои" ; - APl Def => "своите" - } ; - - indefAForm : AForm => AForm = - table { - ASg g _ => ASg g Indef ; - ASgMascDefNom => ASg Masc Indef ; - APl _ => APl Indef - } ; -} diff --git a/old-lib/resource/bulgarian/ExtraBulAbs.gf b/old-lib/resource/bulgarian/ExtraBulAbs.gf deleted file mode 100644 index fe57f33b1..000000000 --- a/old-lib/resource/bulgarian/ExtraBulAbs.gf +++ /dev/null @@ -1,33 +0,0 @@ -abstract ExtraBulAbs = Extra ** { - flags coding=cp1251 ; - - -fun --- Feminine variants of pronouns (those in $Structural$ are --- masculine, which is the default when gender is unknown). - - PossIndefPron : Pron -> Quant ; - - ReflQuant : Quant ; - ReflIndefQuant : Quant ; - - i8fem_Pron : Pron ; - i8neut_Pron : Pron ; - - whatSg8fem_IP : IP ; - whatSg8neut_IP : IP ; - - whoSg8fem_IP : IP ; - whoSg8neut_IP : IP ; - - youSg8fem_Pron : Pron ; - youSg8neut_Pron : Pron ; - - youPol8fem_Pron : Pron ; - youPol8neut_Pron : Pron ; - - onePl_Num : Num ; - - UttImpSg8fem : Pol -> Imp -> Utt; - UttImpSg8neut : Pol -> Imp -> Utt; -} diff --git a/old-lib/resource/bulgarian/GrammarBul.gf b/old-lib/resource/bulgarian/GrammarBul.gf deleted file mode 100644 index 21e437b74..000000000 --- a/old-lib/resource/bulgarian/GrammarBul.gf +++ /dev/null @@ -1,23 +0,0 @@ ---# -path=.:../abstract:../common:prelude - -concrete GrammarBul of Grammar = - NounBul, - VerbBul, - AdjectiveBul, - AdverbBul, - NumeralBul, - SentenceBul, - QuestionBul, - RelativeBul, - ConjunctionBul, - PhraseBul, - TextBul, - StructuralBul, - IdiomBul - ** { - flags coding=cp1251 ; - - -flags startcat = Phr ; unlexer = text ; lexer = text ; - -} ; diff --git a/old-lib/resource/bulgarian/IdiomBul.gf b/old-lib/resource/bulgarian/IdiomBul.gf deleted file mode 100644 index cd22f7908..000000000 --- a/old-lib/resource/bulgarian/IdiomBul.gf +++ /dev/null @@ -1,65 +0,0 @@ -concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in { - flags coding=cp1251 ; - - flags optimize=all_subs ; - - lin - ImpersCl vp = mkClause [] (agrP3 (GSg Neut)) vp ; - GenericCl vp = mkClause "някой" (agrP3 (GSg Neut)) vp ; - - CleftNP np rs = - mkClause (np.s ! RSubj) - {gn=GSg Neut; p=np.a.p} - (insertObj (\\_ => thisRP ! np.a.gn ++ rs.s ! np.a) (predV verbBe)) ; - - CleftAdv ad s = {s = \\t,a,p,o => case p of {Pos=>[]; Neg=>"не"} ++ ad.s ++ s.s } ; - - ExistNP np = - { s = \\t,a,p,o => - let verb = case p of { - Pos => mkV186 "имам" ; - Neg => mkV186 "нямам" - } ; - - agr=agrP3 (GSg Neut); - - present = verb ! (VPres (numGenNum agr.gn) agr.p) ; - aorist = verb ! (VAorist (numGenNum agr.gn) agr.p) ; - perfect = verb ! (VPerfect (aform agr.gn Indef (RObj Acc))) ; - - auxPres = auxBe ! VPres (numGenNum agr.gn) agr.p ; - auxAorist = auxBe ! VAorist (numGenNum agr.gn) agr.p ; - auxCondS = auxWould ! VAorist (numGenNum agr.gn) agr.p ; - - v : {aux1:Str; aux2:Str; main:Str} - = case of { - => {aux1=[]; aux2=[]; main=present} ; - => {aux1=[]; aux2=auxPres; main=perfect} ; - => {aux1=[]; aux2=[]; main=aorist} ; - => {aux1=[]; aux2=auxAorist; main=perfect} ; - => {aux1="ще"; aux2=[]; main=present} ; - => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; - => {aux1=auxCondS; aux2=[]; main=perfect} - } ; - - in case o of { - Main => v.aux1 ++ v.main ++ v.aux2 ++ np.s ! RObj Acc ; - Inv => np.s ! RObj Acc ++ v.aux1 ++ v.main ++ v.aux2 ; - Quest => v.aux1 ++ v.main ++ "ли" ++ v.aux2 ++ np.s ! RObj Acc - } - } ; - - ExistIP ip = - mkQuestion {s = ip.s ! RSubj} - (mkClause "тук" (agrP3 ip.gn) (predV verbBe)) ; - - ProgrVP vp = { - s = \\_ => vp.s ! Imperf ; - ad = vp.ad ; - compl = vp.compl ; - vtype = vp.vtype - } ; - - ImpPl1 vp = {s = "нека" ++ daComplex vp ! Perf ! {gn = GPl ; p = P1}} ; -} - diff --git a/old-lib/resource/bulgarian/LangBul.gf b/old-lib/resource/bulgarian/LangBul.gf deleted file mode 100644 index dcfaacdc1..000000000 --- a/old-lib/resource/bulgarian/LangBul.gf +++ /dev/null @@ -1,12 +0,0 @@ ---# -path=.:../abstract:../common:prelude - -concrete LangBul of Lang = - GrammarBul, - LexiconBul - ** { - flags coding=cp1251 ; - - -flags startcat = Phr ; unlexer = text ; lexer = text ; erasing = on ; coding = cp1251 ; - -} ; diff --git a/old-lib/resource/bulgarian/LexiconBul.gf b/old-lib/resource/bulgarian/LexiconBul.gf deleted file mode 100644 index a02db0153..000000000 --- a/old-lib/resource/bulgarian/LexiconBul.gf +++ /dev/null @@ -1,380 +0,0 @@ ---# -path=.:prelude - -concrete LexiconBul of Lexicon = CatBul ** - open ParadigmsBul, ResBul, Prelude in { - flags coding=cp1251 ; - - -flags - optimize=values ; - -lin - airplane_N = mkN007 "самолет" ; - answer_V2S = mkV2S (actionV (mkV187 "отговарям") (mkV173 "отговоря")) naP ; - apartment_N = mkN007 "апартамент" ; - apple_N = mkN041 "ябълка" ; - art_N = mkN054 "изкуство" ; - ask_V2Q = mkV2Q (stateV (mkV186 "питам")) noPrep ; - baby_N = mkN065 "бебе" ; - bad_A = mkA076 "лош" ; - bank_N = mkN041 "банка" ; - beautiful_A = mkA076 "красив" ; - become_VA = mkVA (actionV (mkV186 "ставам") (mkV152 "стана")) ; - beer_N = mkN041 "бира" ; - beg_V2V = mkV2V (stateV (mkV173 "моля")) noPrep zaP ; - big_A = mkA081 "голям" ; - bike_N = mkN061 "колело" ; - bird_N = mkN041 "птица" ; - black_A = mkA079 "черен" ; - blue_A = mkA086 "син" ; - boat_N = mkN007 "кораб" ; - book_N = mkN041 "книга" ; - boot_N = mkN041 "обувка" ; - boss_N = mkN001 "шеф" ; - boy_N = mkN065 "момче" ; - bread_N = mkN001 "хляб" ; - break_V2 = dirV2 (actionV (mkV173 "чупя") (mkV173 "счупя")) ; - broad_A = mkA079 "обширен" ; - brother_N2 = prepN2 (mkN025 "брат") naP ; - brown_A = mkA076 "кафяв" ; - butter_N = mkN054 "масло" ; - buy_V2 = dirV2 (actionV (mkV186 "купувам") (mkV173 "купя")) ; - camera_N = mkN041 "камера" ; - cap_N = mkN041 "шапка" ; - car_N = mkN041 "кола" ; - carpet_N = mkN007 "килим" ; - cat_N = mkN041 "котка" ; - ceiling_N = mkN007 "таван" ; - chair_N = mkN001 "стол" ; - cheese_N = mkN066 "сирене" ; - child_N = mkN067 "дете" ; - church_N = mkN041 "църква" ; - city_N = mkN001 "град" ; - clean_A = mkA076 "чист" ; - clever_A = mkA079 "умен" ; - close_V2 = dirV2 (actionV (mkV187 "затварям") (mkV173 "затворя")) ; - coat_N = mkN054 "палто" ; - cold_A = mkA076 "студен" ; - come_V = actionV (mkV186 "идвам") (table { -- special case "дойди", "дойдете" are archaic - VImperative Sg => "ела"; - VImperative Pl => "елате"; - vform => mkV146a "дойда" ! vform}) ; - computer_N = mkN009 "компютър" ; - country_N = mkN041 "държава" ; - cousin_N = mkN007a "братовчед" ; - cow_N = mkN041 "крава" ; - die_V = actionV (mkV186 "умирам") (mkV150a "умра") ; - dirty_A = mkA079 "мръсен" ; - distance_N3 = prepN3 (mkN072 "разстояние") otP doP ; - doctor_N = mkN007a "доктор" ; - dog_N = mkN065 "куче" ; - door_N = mkN041 "врата" ; - drink_V2 = dirV2 (stateV (mkV163 "пия")) ; - easy_A2V = mkA2V (mkA079 "лесен") zaP ; - eat_V2 = dirV2 (stateV (mkV169 "ям")) ; - empty_A = mkA079 "празен" ; - enemy_N = mkN001 "враг" ; - factory_N = mkN041 "фабрика" ; - father_N2 = prepN2 (mkN038 "баща") naP ; - fear_VS = mkVS (stateV (mkV186 "страхувам")) ; - find_V2 = dirV2 (actionV (mkV186 "намирам") (mkV173 "намеря")) ; - fish_N = mkN041 "риба" ; - floor_N = mkN007 "етаж" ; - fridge_N = mkN007 "фризер" ; - friend_N = mkN031a "приятел" ; - fruit_N = mkN001 "плод" ; - fun_AV = mkAV (mkA079 "забавен") ; - forget_V2 = dirV2 (actionV (mkV187 "забравям") (mkV173 "забравя")) ; - garden_N = mkN041 "градина" ; - girl_N = mkN065 "момиче" ; - glove_N = mkN041 "ръкавица" ; - gold_N = mkN054 "злато" ; - good_A = adjAdv (mkA080 "добър") "добре" ; - go_V = actionV (mkV186 "отивам") (mkV146 "отида") ; - green_A = mkA076 "зелен" ; - harbour_N = mkN066 "пристанище" ; - hate_V2 = dirV2 (stateV (mkV173 "мразя")) ; - hat_N = mkN041 "шапка" ; - have_V2 = dirV2 (stateV (mkV186 "имам")) ; - hear_V2 = dirV2 (actionV (mkV186 "чувам") (mkV163 "чуя")) ; - hill_N = mkN001 "хълм" ; - hope_VS = mkVS (medialV (stateV (mkV186 "надявам")) Acc) ; - horse_N = mkN035 "кон" ; - hot_A = mkA076 "горещ" ; - house_N = mkN041 "къща" ; - important_A = mkA079 "важен" ; - industry_N = mkN047 "индустрия" ; - iron_N = mkN057 "желязо" ; - king_N = mkN035a "цар" ; - know_V2 = dirV2 { - s = \\_,vform => case vform of { - VPassive aform => (mkA079 "известен").s ! aform ; - _ => mkV162 "зная" ! vform - } ; - vtype = VNormal ; - lock_V = <> - } ; - lake_N = mkN054 "езеро" ; - lamp_N = mkN041 "лампа" ; - learn_V2 = dirV2 (actionV (mkV176 "уча") (mkV176 "науча")) ; - leather_N = mkN041 "кожа" ; - leave_V2 = dirV2 (actionV (mkV187 "оставям") (mkV173 "оставя")) ; - like_V2 = dirV2 (actionV (mkV186 "харесвам") (mkV186 "харесам")) ; - listen_V2 = dirV2 (stateV (mkV186 "слушам")) ; - live_V = stateV (mkV160 "живея") ; - long_A = mkA080 "дълъг" ; - lose_V2 = dirV2 (actionV (mkV173 "губя") (mkV173 "загубя")) ; - love_N = mkN049 "любов" ; - love_V2 = dirV2 (stateV (mkV186 "обичам")) ; - man_N = mkN024 "мъж" ; - married_A2 = mkA2 (mkA076 "женен") zaP ; - meat_N = mkN054 "месо" ; - milk_N = mkN057 "мляко" ; - moon_N = mkN041 "луна" ; - mother_N2 = prepN2 (mkN041a "майка") naP ; - mountain_N = mkN041 "планина" ; - music_N = mkN041 "музика" ; - narrow_A = mkA084 "тесен" ; - new_A = mkA076 "нов" ; - newspaper_N = mkN014 "вестник" ; - oil_N = mkN065 "олио" ; - old_A = mkA076 "стар" ; - open_V2 = dirV2 (actionV (mkV187 "отварям") (mkV173 "отворя")) ; - paint_V2A = mkV2A (actionV (mkV186 "рисувам") (mkV186 "нарисувам")) noPrep ; - paper_N = mkN047 "хартия" ; - paris_PN = mkPN "Париж" Masc ; - peace_N = mkN040a "мир" ; - pen_N = mkN041 "писалка" ; - planet_N = mkN041 "планета" ; - plastic_N = mkN041 "пластмаса" ; - play_V2 = dirV2 (stateV (mkV161 "играя")) ; - policeman_N = mkN032a "полицай" ; - priest_N = mkN014 "свещеник" ; - probable_AS = mkAS (mkA079 "вероятен") ; - queen_N = mkN041 "кралица" ; - radio_N = mkN054 "радио" ; - rain_V0 = mkV0 (stateV (mkV174 "вали")) ; - read_V2 = dirV2 (stateV (mkV145 "чета")) ; - red_A = mkA076 "червен" ; - religion_N = mkN047 "религия" ; - restaurant_N = mkN007 "ресторант" ; - river_N = mkN041 "река" ; - rock_N = mkN041 "скала" ; - roof_N = mkN007 "покрив" ; - rubber_N = mkN041 "гума" ; - run_V = stateV (mkV186 "бягам") ; - say_VS = mkVS (actionV (mkV186 "казвам") (mkV156 "кажа")) ; - school_N = mkN066 "училище" ; - science_N = mkN041 "наука" ; - sea_N = mkN065 "море" ; - seek_V2 = dirV2 (stateV (mkV173 "търся")) ; - see_V2 = dirV2 (actionV (mkV186 "виждам") (mkV181 "видя")) ; - sell_V3 = dirV3 (stateV (mkV186 "продавам")) naP ; - send_V3 = dirV3 (actionV (mkV186 "пращам") (mkV173 "пратя")) doP ; - sheep_N = mkN044 "овца" ; - ship_N = mkN007 "кораб" ; - shirt_N = mkN041 "риза" ; - shoe_N = mkN041 "обувка" ; - shop_N = mkN007 "магазин" ; - short_A = mkA076 "къс" ; - silver_N = mkN054 "сребро" ; - sister_N = mkN041a "сестра" ; - sleep_V = stateV (mkV182 "спя") ; - small_A = mkA080 "малък" ; - snake_N = mkN047 "змия" ; - sock_N = mkN007 "чорап" ; - speak_V2 = dirV2 (stateV (mkV173 "говоря")) ; - star_N = mkN041 "звезда" ; - steel_N = mkN041 "стомана" ; - stone_N = mkN017 "камък" ; - stove_N = mkN041 "печка" ; - student_N = mkN007a "студент" ; - stupid_A = mkA076 "глупав" ; - sun_N = mkN066 "слънце" ; - switch8off_V2 = dirV2 (actionV (mkV186 "изключвам") (mkV176 "изключа")) ; - switch8on_V2 = dirV2 (actionV (mkV186 "включвам") (mkV176 "включа")) ; - table_N = mkN041 "маса" ; - talk_V3 = mkV3 (stateV (mkV173 "говоря")) naP zaP ; - teacher_N = mkN031a "учител" ; - teach_V2 = dirV2 (actionV (mkV186 "преподавам") (mkV168 "преподам")) ; - television_N = mkN047 "телевизия" ; - thick_A = mkA076 "дебел" ; - thin_A = mkA080 "тънък" ; - train_N = mkN001 "влак" ; - travel_V = stateV (mkV186 "пътувам") ; - tree_N = mkN061 "дърво" ; - ugly_A = mkA076 "глупав" ; - understand_V2 = dirV2 (actionV (mkV186 "разбирам") (mkV170 "разбера")) ; - university_N = mkN007 "университет" ; - village_N = mkN054 "село" ; - wait_V2 = prepV2 (stateV (mkV186 "чакам")) zaP ; - walk_V = stateV (mkV173 "ходя") ; - warm_A = mkA080 "топъл" ; - war_N = mkN041 "война" ; - watch_V2 = dirV2 (stateV (mkV186 "гледам")) ; - water_N = mkN041 "вода" ; - white_A = mkA081 "бял" ; - window_N = mkN008 "прозорец" ; - wine_N = mkN054 "вино" ; - win_V2 = dirV2 (actionV (mkV186 "побеждавам") (mkV174 "победя")) ; - woman_N = mkN041a "жена" ; - wonder_VQ = mkVQ (medialV (actionV (mkV186 "учудвам") (mkV173 "чудя")) Acc) ; - wood_N = mkN041 "дървесина" ; - write_V2 = dirV2 (stateV (mkV159 "пиша")) ; - yellow_A = mkA076 "жълт" ; - young_A = mkA076 "млад" ; - do_V2 = dirV2 (actionV (mkV173 "правя") (mkV173 "направя")) ; - now_Adv = mkAdv "сега" ; - already_Adv = mkAdv "вече" ; - song_N = mkN050 "песен" ; - add_V3 = dirV3 (actionV (mkV186 "събирам") (mkV170 "събера")) sP ; - number_N = mkN054 "число" ; - put_V2 = prepV2 (actionV (mkV186 "слагам") (mkV176 "сложа")) noPrep ; - stop_V = actionV (mkV186 "спирам") (mkV150 "спра") ; - jump_V = actionV (mkV186 "скачам") (mkV176 "скоча") ; - left_Ord = mkA081 "ляв" ** {nonEmpty=True} ; - right_Ord = mkA084 "десен" ** {nonEmpty=True} ; - far_Adv = mkAdv "далече" ; - correct_A = mkA079 "правилен" ; - dry_A = mkA076 "сух" ; - dull_A = mkA076 "тъп" ; - full_A = mkA079 "пълен" ; - heavy_A = mkA080 "тежък" ; - near_A = mkA080 "близък" ; - rotten_A = mkA076 "прогнил" ; - round_A = mkA080 "кръгъл" ; - sharp_A = mkA080 "остър" ; - smooth_A = mkA080 "гладък" ; - straight_A = mkA081 "пряк" ; - wet_A = mkA080 "мокър" ; ---- - wide_A = mkA076 "широк" ; - animal_N = mkN062 "животно" ; - ashes_N = mkN049 "пепeл" ; - back_N = mkN003 "гръб" ; - bark_N = mkN028 "лай" ; - belly_N = mkN007 "корем" ; - blood_N = mkN053 "кръв" ; - bone_N = mkN049 "кост" ; - breast_N = mkN041 "гърда" ; - cloud_N = mkN014 "облак" ; - day_N = mkN033 "ден" ; - dust_N = mkN001 "прах" ; - ear_N = mkN064 "ухо" ; - earth_N = mkN047 "земя" ; - egg_N = mkN066 "яйце" ; - eye_N = mkN063 "око" ; - fat_N = mkN041 "мазнина" ; - feather_N = mkN038 "баща" ; - fingernail_N = mkN034 "нокът" ; - fire_N = mkN030 "огън" ; - flower_N = mkN068 "цвете" ; - fog_N = mkN041 "мъгла" ; - foot_N = mkN041 "стъпка" ; - forest_N = mkN041 "гора" ; - grass_N = mkN041 "трева" ; - guts_N = mkN054 "черво" ; - hair_N = mkN041 "коса" ; - hand_N = mkN045 "ръка" ; - head_N = mkN041 "глава" ; - heart_N = mkN066 "сърце" ; - horn_N = mkN001 "рог" ; - husband_N = mkN015 "съпруг" ; -- personal - ice_N = mkN001 "лед" ; - knee_N = mkN058 "коляно" ; - leaf_N = mkN054 "листо" ; - leg_N = mkN022 "крак" ; - liver_N = mkN001 "дроб" ; - louse_N = mkN041 "въшка" ; - mouth_N = mkN042 "уста" ; - name_N = mkN069 "име" ; - neck_N = mkN003 "гръб" ; - night_N = mkN049 "нощ" ; - nose_N = mkN001 "нос" ; - person_N = mkN014 "човек" ; - rain_N = mkN001 "дъжд" ; - road_N = mkN037 "път" ; - root_N = mkN007 "корен" ; - rope_N = mkN065 "въже" ; - salt_N = mkN049 "сол" ; - sand_N = mkN014 "пясък" ; - seed_N = mkN069 "семе" ; - skin_N = mkN041 "кожа" ; - sky_N = mkN070 "небе" ; - smoke_N = mkN014 "пушек" ; - snow_N = mkN002 "сняг" ; - stick_N = mkN041 "пръчка" ; - tail_N = mkN041 "опашка" ; - tongue_N = mkN014 "език" ; - tooth_N = mkN007 "зъб" ; - wife_N = mkN041 "съпруга" ; - wind_N = mkN004 "вятър" ; - wing_N = mkN056 "крило" ; - worm_N = mkN032 "червей" ; - year_N = mkN041 "година" ; - blow_V = stateV (mkV186 "духам") ; - breathe_V = dirV2 (stateV (mkV186 "дишам")) ; - burn_V = actionV (mkV187 "изгарям") (mkV177 "изгоря") ; - dig_V = stateV (mkV161 "копая") ; - fall_V = actionV (mkV186 "падам") (mkV152 "падна") ; - float_V = stateV (mkV186 "плавам") ; - flow_V = stateV (mkV148 "тека") ; - fly_V = stateV (mkV177 "летя") ; - freeze_V = stateV (mkV186 "замръзвам") ; - give_V3 = dirV3 (actionV (mkV186 "давам") (mkV186 "дам")) naP ; - laugh_V = medialV (stateV (mkV160 "смея")) Acc ; - lie_V = stateV (mkV178 "лежа") ; - play_V = stateV (mkV161 "играя") ; - sew_V = stateV (mkV163 "шия") ; - sing_V = stateV (mkV164 "пея") ; - sit_V = stateV (mkV177 "седя") ; - smell_V = stateV (mkV159 "мириша") ; - spit_V = stateV (mkV163 "плюя") ; - stand_V = stateV (mkV180 "стоя") ; - swell_V = actionV (mkV186 "надувам") (mkV163 "надуя") ; - swim_V = stateV (mkV186 "плувам") ; - think_V = stateV (mkV173 "мисля") ; - turn_V = actionV (mkV186 "обръщам") (mkV152 "обърна") ; - vomit_V = actionV (mkV186 "повръщам") (mkV152 "повърна") ; - - bite_V2 = dirV2 (stateV (mkV154 "хапя")) ; - count_V2 = dirV2 (stateV (mkV175 "броя")) ; - cut_V2 = dirV2 (stateV (mkV157 "режа")) ; - fear_V2 = dirV2 (medialV (stateV (mkV186 "страхувам")) Acc) ; - fight_V2 = dirV2 (medialV (stateV (mkV173 "боря")) Acc) ; - hit_V2 = dirV2 (actionV (mkV187 "удрям") (mkV173 "ударя")) ; - hold_V2 = dirV2 (stateV (mkV179 "държа")) ; - hunt_V2 = dirV2 (stateV (mkV174 "ловя")) ; - kill_V2 = dirV2 (actionV (mkV186 "убивам") (mkV163 "убия")) ; - pull_V2 = dirV2 (stateV (mkV186 "дърпам")) ; - push_V2 = dirV2 (stateV (mkV186 "бутам")) ; - rub_V2 = dirV2 (stateV (mkV163 "трия")) ; - scratch_V2 = dirV2 (actionV (mkV186 "драскам") (mkV152 "драсна")) ; - split_V2 = dirV2 (actionV (mkV187 "разделям") (mkV174 "разделя")) ; - squeeze_V2 = dirV2 (actionV (mkV186 "стискам") (mkV152 "стисна")) ; - stab_V2 = dirV2 (actionV (mkV186 "промушвам") (mkV176 "промуша")) ; - suck_V2 = dirV2 (stateV (mkV155 "суча")) ; - throw_V2 = dirV2 (actionV (mkV187 "хвърлям") (mkV173 "хвърля")) ; - tie_V2 = dirV2 (actionV (mkV186 "връзвам") (mkV156 "вържа")) ; - wash_V2 = dirV2 (stateV (mkV163 "мия")) ; - wipe_V2 = dirV2 (stateV (mkV159 "бърша")) ; - - grammar_N = mkN041 "граматика" ; - language_N = mkN014 "език" ; - rule_N = mkN054 "правило" ; - - john_PN = mkPN "Джон" Masc ; - question_N = mkN007 "въпрос" ; - ready_A = mkA076 "готов" ; - reason_N = mkN041 "причина" ; - today_Adv = mkAdv "днес" ; - uncertain_A = mkA079 "неясен" ; - -oper - zaP = mkPrep "за" Acc ; - naP = mkPrep [] Dat ; - otP = mkPrep "от" Acc ; - doP = mkPrep "до" Acc ; - sP = mkPrep (pre { "с" ; - "със" / strs {"с" ; "з" ; "С" ; "З"} - }) Acc ; -} ; diff --git a/old-lib/resource/bulgarian/MorphoBul.gf b/old-lib/resource/bulgarian/MorphoBul.gf deleted file mode 100644 index c8459d0f5..000000000 --- a/old-lib/resource/bulgarian/MorphoBul.gf +++ /dev/null @@ -1,178 +0,0 @@ ---# -path=.:../../prelude - ---1 A Simple English Resource Morphology --- --- Aarne Ranta 2002 -- 2005 --- --- This resource morphology contains definitions needed in the resource --- syntax. To build a lexicon, it is better to use $ParadigmsEng$, which --- gives a higher-level access to this module. - -resource MorphoBul = ResBul ** open - Predef, - Prelude, - CatBul - in { - flags coding=cp1251 ; - - - flags optimize=all ; - -oper ---2 Determiners - - mkDeterminerSg : Str -> Str -> Str -> {s : DGender => Role => Str; n : Number; countable : Bool ; spec : Species} = \vseki,vsiaka,vsiako -> - {s = \\g,_ => table DGender [vseki;vseki;vsiaka;vsiako] ! g; n = Sg; countable = False; spec = Indef} ; - mkDeterminerPl : Str -> {s : DGender => Role => Str ; n : Number; countable : Bool ; spec : Species} = \vsicki -> - {s = \\_,_ => vsicki; n = Pl; countable = False; spec = Indef} ; - - mkQuant : Str -> Str -> Str -> Str -> {s : AForm => Str} = \tozi,tazi,towa,tezi -> { - s = \\aform => case aform of { - ASg Masc _ => tozi ; - ASgMascDefNom => tozi ; - ASg Fem _ => tazi ; - ASg Neut _ => towa ; - APl _ => tezi - } - } ; - - ---2 Verbs - - mkVerb : (_,_,_,_,_,_,_,_,_:Str) -> VTable = - \cheta,chete,chetoh,chetqh,chel,chetql,cheten,chetqst,cheti -> - table { - VPres Sg P1 => cheta; - VPres Sg P2 => chete + "ш"; - VPres Sg P3 => chete; - VPres Pl P1 => case chete of { - _ + ("а"|"я") => chete + "ме"; - _ => chete + "м" - }; - VPres Pl P2 => chete + "те"; - VPres Pl P3 => case cheta of { - vika + "м" => case chete of { - dad + "е" => dad + "ат"; - vika => vika + "т" - }; - _ => cheta + "т" - }; - VAorist Sg P1 => chetoh; - VAorist Sg _ => case chetoh of { - chet+"ох" => chete; - zova+ "х" => zova - }; - VAorist Pl P1 => chetoh + "ме"; - VAorist Pl P2 => chetoh + "те"; - VAorist Pl P3 => chetoh + "а"; - VImperfect Sg P1 => chetqh; - VImperfect Sg _ => case chete of { - rabot + "и" => rabot + "eше"; - _ => chete + "ше" - }; - VImperfect Pl P1 => chetqh + "ме"; - VImperfect Pl P2 => chetqh + "те"; - VImperfect Pl P3 => chetqh + "а"; - VPerfect aform =>let chel1 : Str = - case chel of { - pas+"ъл" => pas+"л"; - _ => chel - } - in (mkAdjective chel - (chel+"ия") - (chel+"ият") - (chel1+"a") - (chel1+"ата") - (chel1+"о") - (chel1+"ото") - (ia2e chel1+"и") - (ia2e chel1+"ите")).s ! aform ; - VPluPerfect aform => regAdjective chetql ! aform ; - VPassive aform => regAdjective cheten ! aform ; - VPresPart aform => regAdjective chetqst ! aform ; - VImperative Sg => cheti; - VImperative Pl => case cheti of { - chet + "и" => chet + "ете"; - ela => ela + "те" - }; - VGerund => case chete of { - rabot + "и" => rabot + "ейки"; - _ => chete + "йки" - } - } ; - - ---2 Nouns - - mkNoun : Str -> Str -> Str -> Str -> DGender -> N = \sg,pl,count,voc,g -> { - s = table { - NF Sg Indef => sg ; - NF Sg Def => case sg of { - _+"а"=>sg+"та" ; - _+"я"=>sg+"та" ; - _+"о"=>sg+"то" ; - _+"е"=>sg+"то" ; - _+"и"=>sg+"то" ; - s+"й"=>s +"я" ; - _+("тел"|"ар"|"яр"|"ден" - |"път"|"огън"|"сън" - |"кон"|"крал"|"цар" - |"зет"|"лакът"|"нокът") - =>sg +"я" ; - _ =>case g of { - DFem => sg+"та" ; - _ => sg+"а" - } - } ; - NF Pl Indef => pl ; - NF Pl Def => case pl of { - _+"а"=>pl+"та" ; - _+"е"=>pl+"те" ; - _+"и"=>pl+"те" ; - s+"я"=>s +"та" ; - s =>s +"те" - } ; - NFSgDefNom => case sg of { - _+"а"=>sg+"та" ; - _+"я"=>sg+"та" ; - _+"о"=>sg+"то" ; - _+"е"=>sg+"то" ; - _+"и"=>sg+"то" ; - s+"й"=>s +"ят" ; - _+("тел"|"ар"|"яр"|"ден" - |"път"|"огън"|"сън" - |"кон"|"крал"|"цар" - |"зет"|"лакът"|"нокът") - =>sg+"ят" ; - _ =>case g of { - DFem => sg+"та" ; - _ => sg+"ът" - } - } ; - NFPlCount => count ; - NFVocative => voc - } ; - g = g ; - lock_N = <> - } ; - - ---2 Adjectives - - mkAdjective : (_,_,_,_,_,_,_,_,_ : Str) -> A = - \dobyr,dobria,dobriat,dobra,dobrata,dobro,dobroto,dobri,dobrite -> { - s = table { - ASg Masc Indef => dobyr ; - ASg Masc Def => dobria ; - ASgMascDefNom => dobriat ; - ASg Fem Indef => dobra ; - ASg Fem Def => dobrata ; - ASg Neut Indef => dobro ; - ASg Neut Def => dobroto ; - APl Indef => dobri ; - APl Def => dobrite - } ; - adv = dobro ; - lock_A = <> - } ; -} \ No newline at end of file diff --git a/old-lib/resource/bulgarian/MorphoFunsBul.gf b/old-lib/resource/bulgarian/MorphoFunsBul.gf deleted file mode 100644 index 678479d8e..000000000 --- a/old-lib/resource/bulgarian/MorphoFunsBul.gf +++ /dev/null @@ -1,184 +0,0 @@ ---# -path=.:../abstract:../../prelude:../common - -resource MorphoFunsBul = open - Prelude, - CatBul, - MorphoBul - in { - flags coding=cp1251 ; - - -oper ---2 Adverbs - --- Adverbs are not inflected. Most lexical ones have position --- after the verb. Some can be preverbal (e.g. "always"). - - mkAdv : Str -> Adv = \x -> ss x ** {lock_Adv = <>} ; - mkAdV : Str -> AdV = \x -> ss x ** {lock_AdV = <>} ; - --- Adverbs modifying adjectives and sentences can also be formed. - - mkAdA : Str -> AdA = \x -> ss x ** {lock_AdA = <>} ; - - ---2 Adjectives --- - - AS, A2S, AV : Type = A ; - A2V : Type = A2 ; - - mkA2 : A -> Prep -> A2 ; - mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ; - - mkAS : A -> AS ; - mkAS v = v ** {lock_A = <>} ; - - mkA2S : A -> Prep -> A2S ; - mkA2S v p = mkA2 v p ** {lock_A = <>} ; - - mkAV : A -> AV ; - mkAV v = v ** {lock_A = <>} ; - - mkA2V : A -> Prep -> A2V ; - mkA2V v p = mkA2 v p ** {lock_A2 = <>} ; - - ---2 Verbs --- - - medialV : V -> Case -> V ; - medialV v c = {s = v.s; vtype = VMedial c; lock_V=<>} ; - - phrasalV : V -> Case -> V ; - phrasalV v c = {s = v.s; vtype = VPhrasal c; lock_V=<>} ; - - actionV : VTable -> VTable -> V ; - actionV imperf perf = { - s = table {Imperf=>imperf; Perf=>perf}; - vtype = VNormal; - lock_V=<> - } ; - - stateV : VTable -> V ; - stateV vtable = { - s = \\_=>vtable; - vtype = VNormal; - lock_V=<> - } ; - ---3 Zero-place verbs --- - - V0 : Type = V ; - mkV0 : V -> V0 ; - mkV0 v = v ** {lock_V = <>} ; - - ---3 Two-place verbs --- - - prepV2 : V -> Prep -> V2 ; - prepV2 v p = {s = v.s; c2 = p; vtype = v.vtype; lock_V2 = <>} ; - - dirV2 : V -> V2 ; - dirV2 v = prepV2 v noPrep ; - - ---3 Three-place verbs --- --- Three-place (ditransitive) verbs need two prepositions, of which --- the first one or both can be absent. - - mkV3 : V -> Prep -> Prep -> V3 ; -- speak, with, about - mkV3 v p q = {s = v.s; s1 = v.s1; c2 = p; c3 = q; vtype = v.vtype; lock_V3 = <>} ; - - dirV3 : V -> Prep -> V3 ; -- give,_,to - dirV3 v p = mkV3 v noPrep p ; - - dirdirV3 : V -> V3 ; -- give,_,_ - dirdirV3 v = dirV3 v noPrep ; - - ---3 Other verbs --- - --- V2S, V2V, V2Q : Type = V2 ; - - mkV2S : V -> Prep -> V2S ; - mkV2S v p = prepV2 v p ** {lock_V2S = <>} ; - - mkV2V : V -> Prep -> Prep -> V2V ; - mkV2V v p t = prepV2 v p ** {s4 = t ; lock_V2V = <>} ; - - mkV2A : V -> Prep -> V2A ; - mkV2A v p = prepV2 v p ** {lock_V2A = <>} ; - - mkV2Q : V -> Prep -> V2Q ; - mkV2Q v p = prepV2 v p ** {lock_V2Q = <>} ; - - mkVS : V -> VS ; - mkVS v = v ** {lock_VS = <>} ; - - mkVV : V -> VV ; - mkVV v = v ** {lock_VV = <>} ; - - mkVA : V -> VA ; - mkVA v = v ** {lock_VA = <>} ; - - mkV2A : V -> Prep -> V2A ; - mkV2A v p = prepV2 v p ** {lock_V2A = <>} ; - - mkVQ : V -> VQ ; - mkVQ v = v ** {lock_VQ = <>} ; - - mkV2Q : V -> Prep -> V2Q ; - mkV2Q v p = prepV2 v p ** {lock_V2Q = <>} ; - - ---2 Nouns - ---3 Two-place Nouns --- - - prepN2 : N -> Prep -> N2 ; - prepN2 n p = {s = n.s; g = n.g; c2 = p; lock_N2 = <>} ; - - dirN2 : N -> N2 ; - dirN2 n = prepN2 n noPrep ; - - ---3 Three-place Nouns --- - - prepN3 : N -> Prep -> Prep -> N3 ; - prepN3 n p q = {s = n.s; g = n.g; c2 = p; c3 = q; lock_N3 = <>} ; - - dirN3 : N -> Prep -> N3 ; - dirN3 n p = prepN3 n noPrep p ; - - dirdirN3 : N -> N3 ; - dirdirN3 n = dirN3 n noPrep ; - - ---2 Prepositions --- --- A preposition as used for rection in the lexicon, as well as to --- build $PP$s in the resource API, just requires a string. - - mkPrep : Str -> Case -> Prep = \p,c -> {s = p; c = c; lock_Prep = <>} ; - noPrep : Prep = mkPrep [] Acc ; - - ---2 Proper Names --- - mkPN : Str -> Gender -> PN ; - mkPN s g = {s = s; g = g ; lock_PN = <>} ; - - ---2 IAdv --- - - mkIAdv : Str -> IAdv ; - mkIAdv s = {s = table {QDir=>s;QIndir=>s+"то"}; lock_IAdv = <>} ; -} diff --git a/old-lib/resource/bulgarian/NounBul.gf b/old-lib/resource/bulgarian/NounBul.gf deleted file mode 100644 index 80aa20e22..000000000 --- a/old-lib/resource/bulgarian/NounBul.gf +++ /dev/null @@ -1,187 +0,0 @@ -concrete NounBul of Noun = CatBul ** open ResBul, Prelude in { - flags coding=cp1251 ; - - - flags optimize=all_subs ; - - lin - DetCN = detCN ; - - DetNP det = detCN det {s = \\_ => [] ; g = DNeut} ; ---- FIXME AR - - oper - detCN : - {s : DGender => Role => Str ; n : Number; countable : Bool; spec : Species} -> - {s : NForm => Str; g : DGender} -> - {s : Role => Str; a : Agr} - = - \det,cn -> - { s = \\role => let nf = case of { - => case role of { - RSubj => NFSgDefNom ; - RVoc => NFVocative ; - _ => NF Sg Def - } ; - => case role of { - RVoc => NFVocative ; - _ => NF Sg Indef - } ; - => NF det.n det.spec ; - => case cn.g of { - DMascPersonal => NF Pl Indef; - _ => case det.countable of { - True => NFPlCount ; - False => NF Pl Indef - } - } - } ; - s = det.s ! cn.g ! role ++ cn.s ! nf - in case role of { - RObj Dat => "на" ++ s; - _ => s - } ; - a = {gn = gennum cn.g det.n; p = P3} ; - } ; - - lin - UsePN pn = { s = \\role => case role of { - RObj Dat => "на" ++ pn.s; - _ => pn.s - } ; - a = {gn = GSg pn.g; p = P3} - } ; - UsePron p = {s = p.s; a=p.a} ; - - PredetNP pred np = { - s = \\c => pred.s ! np.a.gn ++ np.s ! c ; - a = np.a - } ; - - PPartNP np v2 = { - s = \\c => np.s ! c ++ v2.s ! Perf ! VPassive (aform np.a.gn Indef c) ; - a = np.a - } ; - - AdvNP np adv = { - s = \\c => np.s ! c ++ adv.s ; - a = np.a - } ; - - DetQuant quant num = { - s = \\g,c => quant.s ! aform (gennum g num.n) (case c of {RVoc=>Indef; _=>Def}) c ++ - num.s ! dgenderSpecies g Indef c ; - n = num.n ; - countable = num.nonEmpty ; - spec=Indef - } ; - - DetQuantOrd = \quant, num, ord -> { - s = \\g,c => quant.s ! aform (gennum g num.n) (case c of {RVoc=>Indef; _=>Def}) c ++ - num.s ! dgenderSpecies g Indef c ++ - ord.s ! aform (gennum g num.n) Indef c ; - n = num.n ; - countable = num.nonEmpty ; - spec=Indef - } ; - - DetArtCard art card = { - s = \\g,c => art.s ++ - card.s ! dgenderSpecies g art.spec c ; - n = card.n ; - countable = True ; - spec=Indef - } ; - - DetArtOrd art num ord = { - s = \\g,c => art.s ++ - num.s ! dgenderSpecies g art.spec c ++ - ord.s ! aform (gennum g num.n) (case num.nonEmpty of {False => art.spec; _ => Indef}) c ; - n = num.n ; - countable = num.nonEmpty ; - spec=Indef - } ; - - DetArtPl art = detCN { - s = \\g,c => art.s ; - n = Pl ; - countable = False ; - spec=art.spec; - } ; - - DetArtSg art = detCN { - s = \\g,c => art.s ; - n = Sg ; - countable = False ; - spec=art.spec; - } ; - - PossPron p = { - s = p.gen - } ; - - NumSg = {s = \\_ => []; n = Sg; nonEmpty = False} ; - NumPl = {s = \\_ => []; n = Pl; nonEmpty = False} ; - - NumCard n = n ** {nonEmpty = True} ; - - NumDigits n = {s = \\gspec => n.s ! NCard gspec; n = n.n} ; - OrdDigits n = {s = \\aform => n.s ! NOrd aform} ; - - NumNumeral numeral = {s = \\gspec => numeral.s ! NCard gspec; n = numeral.n; nonEmpty = True} ; - OrdNumeral numeral = {s = \\aform => numeral.s ! NOrd aform} ; - - AdNum adn num = {s = \\gspec => adn.s ++ num.s ! gspec; n = num.n; nonEmpty = num.nonEmpty} ; - - OrdSuperl a = {s = \\aform => "най" ++ "-" ++ a.s ! aform} ; - - DefArt = { - s = [] ; - spec = ResBul.Def - } ; - - IndefArt = { - s = [] ; - spec = ResBul.Indef - } ; - - MassNP = detCN { - s = \\_,_ => [] ; - spec = Indef ; - countable = False ; n = Sg ---- FIXME is this correct? AR - } ; - - UseN noun = noun ; - UseN2 noun = noun ; - - ComplN2 f x = {s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c; g=f.g} ; - ComplN3 f x = {s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c; c2 = f.c3; g=f.g} ; - - Use2N3 f = {s = f.s ; g=f.g ; c2 = f.c2} ; - Use3N3 f = {s = f.s ; g=f.g ; c2 = f.c3} ; - - - AdjCN ap cn = { - s = \\nf => case ap.isPre of { - True => (ap.s ! nform2aform nf cn.g) ++ (cn.s ! (indefNForm nf)) ; - False => (cn.s ! nf) ++ (ap.s ! nform2aform (indefNForm nf) cn.g) - } ; - g = cn.g - } ; - RelCN cn rs = { - s = \\nf => cn.s ! nf ++ rs.s ! {gn=gennum cn.g (numNForm nf); p=P3} ; - g = cn.g - } ; - AdvCN cn ad = { - s = \\nf => cn.s ! nf ++ ad.s ; - g = cn.g - } ; - - SentCN cn sc = {s = \\nf => cn.s ! nf ++ sc.s; g=DNeut} ; - - ApposCN cn np = {s = \\nf => cn.s ! nf ++ np.s ! RSubj; g=cn.g} ; - - RelNP np rs = { - s = \\r => np.s ! r ++ rs.s ! np.a ; - a = np.a - } ; -} diff --git a/old-lib/resource/bulgarian/NumeralBul.gf b/old-lib/resource/bulgarian/NumeralBul.gf deleted file mode 100644 index bf89fbe21..000000000 --- a/old-lib/resource/bulgarian/NumeralBul.gf +++ /dev/null @@ -1,134 +0,0 @@ -concrete NumeralBul of Numeral = CatBul ** open Prelude, ResBul in { - flags coding=cp1251 ; - - -lincat - Digit = {s : DForm => CardOrd => Str} ; - Sub10 = {s : DForm => CardOrd => Str; n : Number} ; - Sub100 = {s : CardOrd => Str; n : Number; i : Bool} ; - Sub1000 = {s : CardOrd => Str; n : Number; i : Bool} ; - Sub1000000 = {s : CardOrd => Str; n : Number} ; - -lin num x = x ; -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 pot01 = - {s = table { - unit => table { - NCard DMascIndef => "един" ; - NCard DMascDef => "единия" ; - NCard DMascDefNom => "единият" ; - NCard DMascPersonalIndef => "един" ; - NCard DMascPersonalDef => "единия" ; - NCard DMascPersonalDefNom => "единият" ; - NCard DFemIndef => "една" ; - NCard DFemDef => "едната" ; - NCard DNeutIndef => "едно" ; - NCard DNeutDef => "едното" ; - NOrd aform => case aform of { - ASg Masc Indef => "първи" ; - ASg Masc Def => "първия" ; - ASgMascDefNom => "първият" ; - ASg Fem Indef => "първа" ; - ASg Fem Def => "първата" ; - ASg Neut Indef => "първо" ; - ASg Neut Def => "първото" ; - APl Indef => "първи" ; - APl Def => "първите" - } - } ; - teen => mkCardOrd "единадесет" "единадесетима" "единадесет" "единадесети" ; - ten => mkCardOrd "десет" "десетима" "десет" "десети" ; - hundred => mkCardOrd "сто" "стотина" "сто" "стотен" - } - ;n = Sg - } ; -lin pot0 d = d ** {n = Pl} ; - -lin pot110 = {s=pot01.s ! ten; n = Pl; i = True} ; -lin pot111 = {s=pot01.s ! teen; n = Pl; i = True} ; -lin pot1to19 d = {s = d.s ! teen; n = Pl; i = True} ; -lin pot0as1 n = {s = n.s ! unit; n = n.n; i = True} ; -lin pot1 d = {s = d.s ! ten; n = Pl; i = True} ; -lin pot1plus d e = { - s = \\c => d.s ! ten ! NCard DMascIndef ++ "и" ++ e.s ! unit ! c ; n = Pl; i = False} ; - -lin pot1as2 n = n ; -lin pot2 n = {s = \\c => n.s ! hundred ! c; n = Pl; i = True} ; -lin pot2plus d e = { - s = \\c => d.s ! hundred ! NCard DMascIndef ++ case e.i of {False => []; True => "и"} ++ e.s ! c ; - n = Pl ; - i = False - } ; - -lin pot2as3 n = n ; -lin pot3 n = { - s = \\c => case n.n of { - Sg => mkCardOrd "хиляда" "хиляда" "хиляда" "хиляден" ! c ; - Pl => n.s ! NCard DFemIndef ++ mkCardOrd "хиляди" "хиляди" "хиляди" "хиляден" ! c - } ; - n = Pl - } ; -lin pot3plus n m = { - s = \\c => (pot3 (n ** {lock_Sub1000=<>})).s ! NCard DMascIndef ++ case m.i of {False => []; True => "и"} ++ m.s ! c ; - n = Pl - } ; - - --- numerals as sequences of digits - - lincat - Dig = TDigit ; - - lin - IDig d = d ** {tail = T1} ; - - IIDig d i = { - s = \\o => d.s ! NCard DMascIndef ++ commaIf i.tail ++ i.s ! o ; - n = Pl ; - tail = inc i.tail - } ; - - D_0 = mk2Dig "0" "0в" ; - D_1 = mk3Dig "1" "1ви" Sg ; - D_2 = mk2Dig "2" "2ри" ; - D_3 = mkDig "3" ; - D_4 = mkDig "4" ; - D_5 = mkDig "5" ; - D_6 = mkDig "6" ; - D_7 = mk2Dig "7" "7ми" ; - D_8 = mk2Dig "8" "8ми" ; - D_9 = mkDig "9" ; - - oper - commaIf : DTail -> Str = \t -> case t of { - T3 => "," ; - _ => [] - } ; - - 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 + "ти") ; - - mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> { - s = table {NCard _ => c ; NOrd aform => regAdjective o ! aform} ; - n = n - } ; - - TDigit = { - n : Number ; - s : CardOrd => Str - } ; -} diff --git a/old-lib/resource/bulgarian/ParadigmsBul.gf b/old-lib/resource/bulgarian/ParadigmsBul.gf deleted file mode 100644 index a22cc6fe9..000000000 --- a/old-lib/resource/bulgarian/ParadigmsBul.gf +++ /dev/null @@ -1,1460 +0,0 @@ -resource ParadigmsBul = MorphoFunsBul ** open - Predef, - Prelude, - MorphoBul, - CatBul - in { - flags coding=cp1251 ; - -oper - mkN001 : Str -> N ; - mkN001 base = let v0 = base - in mkNoun (v0) - (v0+"ове") - (v0+"а") - (v0+"-") - DMasc ; - mkN002 : Str -> N ; - mkN002 base = let v0 = tk 2 base; - v1 = last (base) - in mkNoun (v0+"я"+v1) - (v0+"е"+v1+"ове") - (v0+"я"+v1+"а") - (v0+"-") - DMasc ; - mkN002a : Str -> N ; - mkN002a base = let v0 = tk 2 base; - v1 = last (base) - in mkNoun (v0+"я"+v1) - (v0+"е"+v1+"ове") - (v0+"я"+v1+"а") - (v0+"-") - DMasc ; - mkN003 : Str -> N ; - mkN003 base = let v0 = tk 3 base; - v1 = last (base) - in mkNoun (v0+"ръ"+v1) - (v0+"ър"+v1+"ове") - (v0+"ър"+v1+"а") - (v0+"-") - DMasc ; - mkN004 : Str -> N ; - mkN004 base = let v0 = tk 4 base - in mkNoun (v0+"ятър") - (v0+"етрове") - (v0+"ятъра") - (v0+"-") - DMasc ; - mkN005 : Str -> N ; - mkN005 base = let v0 = base - in mkNoun (v0) - (v0+"ове") - (v0+"а") - (v0+"-") - DMasc ; - mkN006 : Str -> N ; - mkN006 base = let v0 = base - in mkNoun (v0) - (v0+"ове") - (v0+"а") - (v0+"-") - DMasc ; - mkN007 : Str -> N ; - mkN007 base = let v0 = base - in mkNoun (v0) - (v0+"и") - (v0+"а") - (v0+"-") - DMasc ; - mkN007b : Str -> N ; - mkN007b base = let v0 = base - in mkNoun (v0) - (v0+"и") - (v0+"а") - (v0+"о") - DMasc ; - mkN007a : Str -> N ; - mkN007a base = let v0 = base - in mkNoun (v0) - (v0+"и") - (v0+"а") - (v0+"е") - DMascPersonal ; - mkN008 : Str -> N ; - mkN008 base = let v0 = tk 2 base; - v1 = last (base) - in mkNoun (v0+"е"+v1) - (v0+v1+"и") - (v0+"е"+v1+"а") - (v0+"-") - DMasc ; - mkN008a : Str -> N ; - mkN008a base = let v0 = tk 2 base - in mkNoun (v0+"ец") - (v0+"ци") - (v0+"-") - (v0+"ецо") - DMasc ; - mkN009 : Str -> N ; - mkN009 base = let v0 = tk 2 base; - v1 = last (base) - in mkNoun (v0+"ъ"+v1) - (v0+v1+"и") - (v0+"ъ"+v1+"а") - (v0+"-") - DMasc ; - mkN009a : Str -> N ; - mkN009a base = let v0 = tk 2 base - in mkNoun (v0+"ър") - (v0+"рове") - (v0+"ъра") - (v0+"-") - DMasc ; - mkN010 : Str -> N ; - mkN010 base = let v0 = tk 2 base - in mkNoun (v0+"ър") - (v0+"ри") - (v0+"ра") - (v0+"-") - DMasc ; - mkN011 : Str -> N ; - mkN011 base = let v0 = tk 2 base - in mkNoun (v0+"ъм") - (v0+"ми") - (v0+"ъма") - (v0+"-") - DMasc ; - mkN012 : Str -> N ; - mkN012 base = let v0 = tk 3 base - in mkNoun (v0+"рък") - (v0+"ърци") - (v0+"-") - (v0+"ърко") - DMasc ; - mkN013 : Str -> N ; - mkN013 base = let v0 = tk 2 base - in mkNoun (v0+"ец") - (v0+"йци") - (v0+"-") - (v0+"ецо") - DMasc ; - mkN014 : Str -> N ; - mkN014 base = let v0 = tk 1 base - in mkNoun (v0+"к") - (v0+"ци") - (v0+"ка") - (v0+"-") - DMasc ; - mkN014a : Str -> N ; - mkN014a base = let v0 = tk 1 base - in mkNoun (v0+"к") - (v0+"ци") - (v0+"ка") - (v0+"ко") - DMasc ; - mkN015 : Str -> N ; - mkN015 base = let v0 = tk 1 base - in mkNoun (v0+"г") - (v0+"зи") - (v0+"га") - (v0+"-") - DMasc ; - mkN016 : Str -> N ; - mkN016 base = let v0 = tk 1 base - in mkNoun (v0+"х") - (v0+"си") - (v0+"ха") - (v0+"-") - DMasc ; - mkN017 : Str -> N ; - mkN017 base = let v0 = tk 1 base - in mkNoun (v0+"к") - (v0+"ни") - (v0+"ка") - (v0+"-") - DMasc ; - mkN018 : Str -> N ; - mkN018 base = let v0 = tk 2 base - in mkNoun (v0+"ин") - (v0+"и") - (v0+"-") - (v0+"ино") - DMasc ; - mkN018a : Str -> N ; - mkN018a base = let v0 = tk 2 base; - v1 = last (base) - in mkNoun (v0+"и"+v1) - (v0+"и") - (v0+"-") - (v0+"-") - DMasc ; - mkN019 : Str -> N ; - mkN019 base = let v0 = tk 2 base - in mkNoun (v0+"ък") - (v0+"ци") - (v0+"-") - (v0+"ко") - DMasc ; - mkN019a : Str -> N ; - mkN019a base = let v0 = tk 2 base - in mkNoun (v0+"ек") - (v0+"йци") - (v0+"ека") - (v0+"-") - DMasc ; - mkN020 : Str -> N ; - mkN020 base = let v0 = tk 3 base; - v1 = last (tk 2 base) - in mkNoun (v0+v1+"ец") - (v0+"ъ"+v1+"ци") - (v0+"-") - (v0+v1+"ецо") - DMasc ; - mkN021 : Str -> N ; - mkN021 base = let v0 = tk 3 base - in mkNoun (v0+"чин") - (v0+"ци") - (v0+"-") - (v0+"чино") - DMasc ; - mkN022 : Str -> N ; - mkN022 base = let v0 = base - in mkNoun (v0) - (v0+"а") - (v0+"а") - (v0+"-") - DMasc ; - mkN023 : Str -> N ; - mkN023 base = let v0 = tk 2 base - in mkNoun (v0+"ин") - (v0+"а") - (v0+"-") - (v0+"ине") - DMasc ; - mkN024a : Str -> N ; - mkN024a base = let v0 = tk 1 base - in mkNoun (v0+"з") - (v0+"зе") - (v0+"-") - (v0+"же") - DMasc ; - mkN024 : Str -> N ; - mkN024 base = let v0 = base - in mkNoun (v0) - (v0+"е") - (v0+"е") - (v0+"о") - DMascPersonal ; - mkN025 : Str -> N ; - mkN025 base = let v0 = base - in mkNoun (v0) - (v0+"я") - (v0+"-") - (v0+"е") - DMascPersonal ; - mkN026 : Str -> N ; - mkN026 base = let v0 = base - in mkNoun (v0) - (v0+"илища") - (v0+"а") - (v0+"-") - DMasc ; - mkN027 : Str -> N ; - mkN027 base = let v0 = tk 2 base - in mkNoun (v0+"ец") - (v0+"овце") - (v0+"еца") - (v0+"-") - DMasc ; - mkN028 : Str -> N ; - mkN028 base = let v0 = tk 1 base - in mkNoun (v0+"й") - (v0+"еве") - (v0+"я") - (v0+"-") - DMasc ; - mkN028a : Str -> N ; - mkN028a base = let v0 = tk 1 base - in mkNoun (v0+"й") - (v0+"йове") - (v0+"я") - (v0+"-") - DMasc ; - mkN029 : Str -> N ; - mkN029 base = let v0 = base - in mkNoun (v0) - (v0+"ьове") - (v0+"-") - (v0+"ко") - DMasc ; - mkN030 : Str -> N ; - mkN030 base = let v0 = tk 2 base - in mkNoun (v0+"ън") - (v0+"ньове") - (v0+"ъня") - (v0+"-") - DMasc ; - mkN031 : Str -> N ; - mkN031 base = let v0 = base - in mkNoun (v0) - (v0+"и") - (v0+"я") - (v0+"-") - DMasc ; - mkN031a : Str -> N ; - mkN031a base = let v0 = base - in mkNoun (v0) - (v0+"и") - (v0+"я") - (v0+"ю") - DMascPersonal ; - mkN032 : Str -> N ; - mkN032 base = let v0 = tk 1 base - in mkNoun (v0+"й") - (v0+"и") - (v0+"я") - (v0+"-") - DMasc ; - mkN032a : Str -> N ; - mkN032a base = let v0 = tk 1 base - in mkNoun (v0+"й") - (v0+"и") - (v0+"я") - (v0+"ю") - DMascPersonal ; - mkN033 : Str -> N ; - mkN033 base = let v0 = tk 2 base - in mkNoun (v0+"ен") - (v0+"ни") - (v0+"ена") - (v0+"-") - DMasc ; - mkN034 : Str -> N ; - mkN034 base = let v0 = tk 2 base - in mkNoun (v0+"ът") - (v0+"ти") - (v0+"ътя") - (v0+"-") - DMasc ; - mkN035 : Str -> N ; - mkN035 base = let v0 = base - in mkNoun (v0) - (v0+"е") - (v0+"я") - (v0+"-") - DMasc ; - mkN035a : Str -> N ; - mkN035a base = let v0 = base - in mkNoun (v0) - (v0+"е") - (v0+"я") - (v0+"ю") - DMascPersonal ; - mkN036 : Str -> N ; - mkN036 base = let v0 = tk 1 base - in mkNoun (v0+"й") - (v0+"ища") - (v0+"я") - (v0+"-") - DMasc ; - mkN037 : Str -> N ; - mkN037 base = let v0 = base - in mkNoun (v0) - (v0+"ища") - (v0+"я") - (v0+"-") - DMasc ; - mkN038 : Str -> N ; - mkN038 base = let v0 = tk 1 base - in mkNoun (v0+"а") - (v0+"и") - (v0+"-") - (v0+"а") - DMascPersonal ; - mkN039 : Str -> N ; - mkN039 base = let v0 = tk 1 base - in mkNoun (v0+"я") - (v0+"и") - (v0+"-") - (v0+"-") - DMasc ; - mkN040 : Str -> N ; - mkN040 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"овци") - (v0+"-") - (v0+"о") - DMasc ; - mkN040a : Str -> N ; - mkN040a base = let v0 = base - in mkNoun (v0) - (v0+"-") - (v0+"-") - (v0+"-") - DMasc ; - mkN041 : Str -> N ; - mkN041 base = let v0 = tk 1 base - in mkNoun (v0+"а") - (v0+"и") - (v0+"и") - (v0+"-") - DFem ; - mkN041a : Str -> N ; - mkN041a base = let v0 = tk 1 base - in mkNoun (v0+"а") - (v0+"и") - (v0+"и") - (v0+"о") - DFem ; - mkN041b : Str -> N ; - mkN041b base = let v0 = tk 1 base - in mkNoun (v0+"а") - (v0+"и") - (v0+"и") - (v0+"е") - DFem ; - mkN042 : Str -> N ; - mkN042 base = let v0 = base - in mkNoun (v0) - (v0) - (v0) - (v0+"-") - DFem ; - mkN043 : Str -> N ; - mkN043 base = let v0 = tk 3 base; - v1 = last (tk 1 base) - in mkNoun (v0+"я"+v1+"а") - (v0+"е"+v1+"и") - (v0+"е"+v1+"и") - (v0+"-") - DFem ; - mkN043a : Str -> N ; - mkN043a base = let v0 = tk 4 base; - v1 = last (tk 2 base) - in mkNoun (v0+"я"+v1+"ка") - (v0+"е"+v1+"ки") - (v0+"е"+v1+"ки") - (v0+"-") - DFem ; - mkN044 : Str -> N ; - mkN044 base = let v0 = tk 1 base - in mkNoun (v0+"а") - (v0+"е") - (v0+"е") - (v0+"-") - DFem ; - mkN045 : Str -> N ; - mkN045 base = let v0 = tk 2 base - in mkNoun (v0+"ка") - (v0+"це") - (v0+"це") - (v0+"-") - DFem ; - mkN046 : Str -> N ; - mkN046 base = let v0 = tk 2 base - in mkNoun (v0+"га") - (v0+"зе") - (v0+"зе") - (v0+"-") - DFem ; - mkN047 : Str -> N ; - mkN047 base = let v0 = tk 1 base - in mkNoun (v0+"я") - (v0+"и") - (v0+"и") - (v0+"-") - DFem ; - mkN048 : Str -> N ; - mkN048 base = let v0 = tk 1 base - in mkNoun (v0+"я") - (v0+"е") - (v0+"е") - (v0+"ьо") - DFem ; - mkN049 : Str -> N ; - mkN049 base = let v0 = base - in mkNoun (v0) - (v0+"и") - (v0+"и") - (v0+"-") - DFem ; - mkN050 : Str -> N ; - mkN050 base = let v0 = tk 2 base - in mkNoun (v0+"ен") - (v0+"ни") - (v0+"ни") - (v0+"-") - DFem ; - mkN051 : Str -> N ; - mkN051 base = let v0 = tk 2 base; - v1 = last (base) - in mkNoun (v0+"ъ"+v1) - (v0+v1+"и") - (v0+v1+"и") - (v0+"-") - DFem ; - mkN052 : Str -> N ; - mkN052 base = let v0 = tk 5 base - in mkNoun (v0+"ялост") - (v0+"ялости") - (v0+"ялости") - (v0+"-") - DFem ; - mkN052a : Str -> N ; - mkN052a base = let v0 = tk 6 base - in mkNoun (v0+"ярност") - (v0+"ярности") - (v0+"ярности") - (v0+"-") - DFem ; - mkN053 : Str -> N ; - mkN053 base = let v0 = tk 3 base; - v1 = last (base) - in mkNoun (v0+"ръ"+v1) - (v0+"ър"+v1+"и") - (v0+"ър"+v1+"и") - (v0+"-") - DFem ; - mkN054 : Str -> N ; - mkN054 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"а") - (v0+"а") - (v0+"о") - DNeut ; - mkN055 : Str -> N ; - mkN055 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"а") - (v0+"а") - (v0+"о") - DNeut ; - mkN056 : Str -> N ; - mkN056 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"а") - (v0+"а") - (v0+"о") - DNeut ; - mkN057 : Str -> N ; - mkN057 base = let v0 = tk 3 base; - v1 = last (tk 1 base) - in mkNoun (v0+"я"+v1+"о") - (v0+"е"+v1+"а") - (v0+"е"+v1+"а") - (v0+"я"+v1+"о") - DNeut ; - mkN057a : Str -> N ; - mkN057a base = let v0 = tk 4 base - in mkNoun (v0+"ясто") - (v0+"еста") - (v0+"еста") - (v0+"ясто") - DNeut ; - mkN058 : Str -> N ; - mkN058 base = let v0 = tk 3 base - in mkNoun (v0+"яно") - (v0+"ена") - (v0+"ена") - (v0+"яно") - DNeut ; - mkN059 : Str -> N ; - mkN059 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"ене") - (v0+"ене") - (v0+"о") - DNeut ; - mkN060 : Str -> N ; - mkN060 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"еса") - (v0+"еса") - (v0+"о") - DNeut ; - mkN061 : Str -> N ; - mkN061 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"а") - (v0+"а") - (v0+"о") - DNeut ; - mkN062 : Str -> N ; - mkN062 base = let v0 = tk 1 base - in mkNoun (v0+"о") - (v0+"и") - (v0+"и") - (v0+"о") - DNeut ; - mkN063 : Str -> N ; - mkN063 base = let v0 = tk 2 base - in mkNoun (v0+"ко") - (v0+"чи") - (v0+"чи") - (v0+"ко") - DNeut ; - mkN064 : Str -> N ; - mkN064 base = let v0 = tk 2 base - in mkNoun (v0+"хо") - (v0+"ши") - (v0+"ши") - (v0+"хо") - DNeut ; - mkN065 : Str -> N ; - mkN065 base = let v0 = base - in mkNoun (v0) - (v0+"та") - (v0+"та") - (v0) - DNeut ; - mkN066 : Str -> N ; - mkN066 base = let v0 = tk 1 base - in mkNoun (v0+"е") - (v0+"а") - (v0+"а") - (v0+"е") - DNeut ; - mkN067 : Str -> N ; - mkN067 base = let v0 = tk 2 base - in mkNoun (v0+"те") - (v0+"ца") - (v0+"ца") - (v0+"те") - DNeut ; - mkN068 : Str -> N ; - mkN068 base = let v0 = tk 1 base - in mkNoun (v0+"е") - (v0+"я") - (v0+"я") - (v0+"е") - DNeut ; - mkN069 : Str -> N ; - mkN069 base = let v0 = base - in mkNoun (v0) - (v0+"на") - (v0+"на") - (v0) - DNeut ; - mkN070 : Str -> N ; - mkN070 base = let v0 = base - in mkNoun (v0) - (v0+"са") - (v0+"са") - (v0) - DNeut ; - mkN071 : Str -> N ; - mkN071 base = let v0 = tk 1 base - in mkNoun (v0+"е") - (v0+"ия") - (v0+"ия") - (v0+"е") - DNeut ; - mkN072 : Str -> N ; - mkN072 base = let v0 = tk 1 base - in mkNoun (v0+"е") - (v0+"я") - (v0+"я") - (v0+"е") - DNeut ; - mkN073 : Str -> N ; - mkN073 base = let v0 = base - in mkNoun (v0) - (v0+"та") - (v0+"та") - (v0) - DNeut ; - mkN074 : Str -> N ; - mkN074 base = let v0 = tk 1 base - in mkNoun (v0+"-") - (v0) - (v0) - (v0+"-") - DNeut ; - mkN075 : Str -> N ; - mkN075 base = let v0 = tk 1 base - in mkNoun (v0+"-") - (v0) - (v0) - (v0+"-") - DNeut ; - mkA076 : Str -> A ; - mkA076 base = let v0 = base - in mkAdjective (v0) - (v0+"ия") - (v0+"ият") - (v0+"а") - (v0+"ата") - (v0+"о") - (v0+"ото") - (v0+"и") - (v0+"ите") ; - mkA077 : Str -> A ; - mkA077 base = let v0 = base - in mkAdjective (v0) - (v0+"ия") - (v0+"ият") - (v0+"а") - (v0+"ата") - (v0+"е") - (v0+"ето") - (v0+"и") - (v0+"ите") ; - mkA078 : Str -> A ; - mkA078 base = let v0 = tk 1 base - in adjAdv (mkAdjective (v0+"и") - (v0+"ия") - (v0+"ият") - (v0+"а") - (v0+"ата") - (v0+"о") - (v0+"ото") - (v0+"и") - (v0+"ите")) (v0+"и") ; - mkA079 : Str -> A ; - mkA079 base = let v0 = tk 2 base - in mkAdjective (v0+"ен") - (v0+"ния") - (v0+"ният") - (v0+"на") - (v0+"ната") - (v0+"но") - (v0+"ното") - (v0+"ни") - (v0+"ните") ; - mkA080 : Str -> A ; - mkA080 base = let v0 = tk 2 base; - v1 = last (base) - in mkAdjective (v0+"ъ"+v1) - (v0+v1+"ия") - (v0+v1+"ият") - (v0+v1+"а") - (v0+v1+"ата") - (v0+v1+"о") - (v0+v1+"ото") - (v0+v1+"и") - (v0+v1+"ите") ; - mkA081 : Str -> A ; - mkA081 base = let v0 = tk 2 base; - v1 = last (base) - in mkAdjective (v0+"я"+v1) - (v0+"е"+v1+"ия") - (v0+"е"+v1+"ият") - (v0+"я"+v1+"а") - (v0+"я"+v1+"ата") - (v0+"я"+v1+"о") - (v0+"я"+v1+"ото") - (v0+"е"+v1+"и") - (v0+"е"+v1+"ите") ; - mkA082 : Str -> A ; - mkA082 base = let v0 = tk 3 base; - v1 = last (base) - in mkAdjective (v0+"ръ"+v1) - (v0+"ър"+v1+"ия") - (v0+"ър"+v1+"ият") - (v0+"ър"+v1+"а") - (v0+"ър"+v1+"ата") - (v0+"ър"+v1+"о") - (v0+"ър"+v1+"ото") - (v0+"ър"+v1+"и") - (v0+"ър"+v1+"ите") ; - mkA082a : Str -> A ; - mkA082a base = let v0 = tk 5 base - in mkAdjective (v0+"ързък") - (v0+"ръзкия") - (v0+"ръзкият") - (v0+"ръзка") - (v0+"ръзката") - (v0+"ръзко") - (v0+"ръзкото") - (v0+"ръзки") - (v0+"ръзките") ; - mkA083 : Str -> A ; - mkA083 base = let v0 = tk 4 base; - v1 = last (tk 2 base) - in mkAdjective (v0+"я"+v1+"ък") - (v0+"е"+v1+"кия") - (v0+"е"+v1+"кият") - (v0+"я"+v1+"ка") - (v0+"я"+v1+"ката") - (v0+"я"+v1+"ко") - (v0+"я"+v1+"кото") - (v0+"е"+v1+"ки") - (v0+"е"+v1+"ките") ; - mkA084 : Str -> A ; - mkA084 base = let v0 = tk 4 base; - v1 = last (tk 2 base) - in mkAdjective (v0+"е"+v1+"ен") - (v0+"е"+v1+"ния") - (v0+"е"+v1+"ният") - (v0+"я"+v1+"на") - (v0+"я"+v1+"ната") - (v0+"я"+v1+"но") - (v0+"я"+v1+"ното") - (v0+"е"+v1+"ни") - (v0+"е"+v1+"ните") ; - mkA084a : Str -> A ; - mkA084a base = let v0 = tk 5 base - in mkAdjective (v0+"естен") - (v0+"естния") - (v0+"естният") - (v0+"ястна") - (v0+"ястната") - (v0+"ястно") - (v0+"ястнота") - (v0+"естни") - (v0+"естните") ; - mkA085 : Str -> A ; - mkA085 base = let v0 = tk 2 base - in mkAdjective (v0+"ен") - (v0+"йния") - (v0+"йният") - (v0+"йна") - (v0+"йната") - (v0+"йно") - (v0+"йното") - (v0+"йни") - (v0+"йните") ; - mkA086 : Str -> A ; - mkA086 base = let v0 = base - in mkAdjective (v0) - (v0+"ия") - (v0+"ият") - (v0+"я") - (v0+"ята") - (v0+"ьо") - (v0+"ьото") - (v0+"и") - (v0+"ите") ; - mkA087 : Str -> A ; - mkA087 base = let v0 = tk 1 base - in mkAdjective (v0+"и") - (v0+"ия") - (v0+"ият") - (v0+"а") - (v0+"ата") - (v0+"е") - (v0+"ето") - (v0+"и") - (v0+"ите") ; - mkA088 : Str -> A ; - mkA088 base = let v0 = tk 1 base - in mkAdjective (v0+"и") - (v0+"ия") - (v0+"ият") - (v0+"я") - (v0+"ята") - (v0+"е") - (v0+"ето") - (v0+"и") - (v0+"ите") ; - mkA089 : Str -> A ; - mkA089 base = let v0 = tk 1 base - in mkAdjective (v0+"-") - (v0+"ия") - (v0+"ият") - (v0+"-") - (v0+"ата") - (v0+"-") - (v0+"ото") - (v0+"-") - (v0+"ите") ; - mkA089a : Str -> A ; - mkA089a base = let v0 = base - in mkAdjective (v0) - (v0) - (v0) - (v0) - (v0) - (v0) - (v0) - (v0) - (v0) ; - mkV142 : Str -> VTable ; - mkV142 base = let v0 = tk 3 base - in mkVerb (v0+"съм") - (v0+"е") - (v0+"бях") - (v0+"бях") - (v0+"бил") - (v0+"бил") - (v0+"-") - (v0+"-") - (v0+"бъди") ; - mkV143 : Str -> VTable ; - mkV143 base = let v0 = tk 3 base - in mkVerb (v0+"ъда") - (v0+"ъде") - (v0+"их") - (v0+"ъдех") - (v0+"ил") - (v0+"ъдел") - (v0+"-") - (v0+"ъдещ") - (v0+"ъди") ; - mkV144 : Str -> VTable ; - mkV144 base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"е") - (v0+"ях") - (v0+"ях") - (v0+"ял") - (v0+"ял") - (v0+"-") - (v0+"-") - (v0+"-") ; - mkV145 : Str -> VTable ; - mkV145 base = let v0 = tk 2 base; - v1 = last (tk 1 base) - in mkVerb (v0+v1+"а") - (v0+v1+"е") - (v0+v1+"ох") - (v0+v1+"ях") - (v0+"л") - (v0+v1+"ял") - (v0+v1+"ен") - (v0+v1+"ящ") - (v0+v1+"и") ; - mkV145a : Str -> VTable ; - mkV145a base = let v0 = tk 3 base; - v1 = last (tk 2 base) - in mkVerb (v0+v1+"са") - (v0+v1+"се") - (v0+v1+"сох") - (v0+v1+"сях") - (v0+v1+"съл") - (v0+v1+"сял") - (v0+v1+"сен") - (v0+v1+"сящ") - (v0+v1+"си") ; - mkV145b : Str -> VTable ; - mkV145b base = let v0 = tk 2 base - in mkVerb (v0+"та") - (v0+"те") - (v0+"тох") - (v0+"тях") - (v0+"ъл") - (v0+"тял") - (v0+"-") - (v0+"тящ") - (v0+"ти") ; - mkV146 : Str -> VTable ; - mkV146 base = let v0 = tk 2 base - in mkVerb (v0+"да") - (v0+"де") - (v0+"дох") - (v0+"дех") - (v0+"шъл") - (v0+"дел") - (v0+"-") - (v0+"-") - (v0+"ди") ; - mkV146a : Str -> VTable ; - mkV146a base = let v0 = tk 3 base - in mkVerb (v0+"йда") - (v0+"йде") - (v0+"йдох") - (v0+"йдех") - (v0+"шъл") - (v0+"йдел") - (v0+"-") - (v0+"-") - (v0+"йди") ; - mkV147 : Str -> VTable ; - mkV147 base = let v0 = tk 3 base - in mkVerb (v0+"яза") - (v0+"езе") - (v0+"язох") - (v0+"езех") - (v0+"язъл") - (v0+"езел") - (v0+"-") - (v0+"-") - (v0+"ез") ; - mkV148 : Str -> VTable ; - mkV148 base = let v0 = tk 2 base - in mkVerb (v0+"ка") - (v0+"че") - (v0+"кох") - (v0+"чех") - (v0+"къл") - (v0+"чел") - (v0+"чен") - (v0+"чащ") - (v0+"чи") ; - mkV149 : Str -> VTable ; - mkV149 base = let v0 = tk 3 base - in mkVerb (v0+"ека") - (v0+"ече") - (v0+"якох") - (v0+"ечех") - (v0+"якъл") - (v0+"ечел") - (v0+"ечен") - (v0+"-") - (v0+"ечи") ; - mkV150 : Str -> VTable ; - mkV150 base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"е") - (v0+"ях") - (v0+"ях") - (v0+"ял") - (v0+"ял") - (v0+"ян") - (v0+"-") - (v0+"и") ; - mkV150a : Str -> VTable ; - mkV150a base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"е") - (v0+"ях") - (v0+"ях") - (v0+"ял") - (v0+"ял") - (v0+"-") - (v0+"-") - (v0+"и") ; - mkV151 : Str -> VTable ; - mkV151 base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"е") - (v0+"ах") - (v0+"ях") - (v0+"ал") - (v0+"ял") - (v0+"ящ") - (v0+"ан") - (v0+"и") ; - mkV152 : Str -> VTable ; - mkV152 base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"е") - (v0+"ах") - (v0+"ех") - (v0+"ал") - (v0+"ел") - (v0+"ат") - (v0+"-") - (v0+"и") ; - mkV152a : Str -> VTable ; - mkV152a base = let v0 = tk 4 base - in mkVerb (v0+"ягна") - (v0+"егне") - (v0+"ягнах") - (v0+"ягнех") - (v0+"ягнал") - (v0+"ягнел") - (v0+"ягнат") - (v0+"-") - (v0+"егни") ; - mkV153 : Str -> VTable ; - mkV153 base = let v0 = tk 3 base - in mkVerb (v0+"яна") - (v0+"ене") - (v0+"янах") - (v0+"енех") - (v0+"янал") - (v0+"енел") - (v0+"янат") - (v0+"-") - (v0+"ени") ; - mkV154 : Str -> VTable ; - mkV154 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"е") - (v0+"ах") - (v0+"ех") - (v0+"ал") - (v0+"ел") - (v0+"ан") - (v0+"ещ") - (v0+"и") ; - mkV155 : Str -> VTable ; - mkV155 base = let v0 = tk 2 base - in mkVerb (v0+"ча") - (v0+"че") - (v0+"ках") - (v0+"чех") - (v0+"кал") - (v0+"чел") - (v0+"-") - (v0+"чещ") - (v0+"чи") ; - mkV156 : Str -> VTable ; - mkV156 base = let v0 = tk 2 base - in mkVerb (v0+"жа") - (v0+"же") - (v0+"зах") - (v0+"жех") - (v0+"зал") - (v0+"жел") - (v0+"зан") - (v0+"-") - (v0+"жи") ; - mkV157 : Str -> VTable ; - mkV157 base = let v0 = tk 3 base - in mkVerb (v0+"ежа") - (v0+"еже") - (v0+"язах") - (v0+"ежех") - (v0+"язал") - (v0+"ежел") - (v0+"язан") - (v0+"ежещ") - (v0+"ежи") ; - mkV158 : Str -> VTable ; - mkV158 base = let v0 = tk 2 base - in mkVerb (v0+"жа") - (v0+"же") - (v0+"гах") - (v0+"жех") - (v0+"гал") - (v0+"жел") - (v0+"ган") - (v0+"жещ") - (v0+"жи") ; - mkV159 : Str -> VTable ; - mkV159 base = let v0 = tk 2 base - in mkVerb (v0+"ша") - (v0+"ше") - (v0+"сах") - (v0+"шех") - (v0+"сал") - (v0+"шел") - (v0+"сан") - (v0+"шещ") - (v0+"ши") ; - mkV160 : Str -> VTable ; - mkV160 base = let v0 = tk 2 base - in mkVerb (v0+"ея") - (v0+"ее") - (v0+"ях") - (v0+"еех") - (v0+"ял") - (v0+"еел") - (v0+"ян") - (v0+"еещ") - (v0+"ей") ; - mkV160a : Str -> VTable ; - mkV160a base = let v0 = tk 2 base - in mkVerb (v0+"ея") - (v0+"ее") - (v0+"ах") - (v0+"еех") - (v0+"ал") - (v0+"еел") - (v0+"ан") - (v0+"еещ") - (v0+"ей") ; - mkV161 : Str -> VTable ; - mkV161 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"е") - (v0+"х") - (v0+"ех") - (v0+"л") - (v0+"ел") - (v0+"н") - (v0+"ещ") - (v0+"й") ; - mkV161a : Str -> VTable ; - mkV161a base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"е") - (v0+"х") - (v0+"ех") - (v0+"л") - (v0+"ел") - (v0+"т") - (v0+"ещ") - (v0+"й") ; - mkV162 : Str -> VTable ; - mkV162 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"е") - (v0+"ях") - (v0+"ех") - (v0+"ял") - (v0+"ел") - (v0+"-") - (v0+"ещ") - (v0+"й") ; - mkV163 : Str -> VTable ; - mkV163 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"е") - (v0+"х") - (v0+"ех") - (v0+"л") - (v0+"ел") - (v0+"т") - (v0+"ещ") - (v0+"й") ; - mkV164 : Str -> VTable ; - mkV164 base = let v0 = tk 2 base - in mkVerb (v0+"ея") - (v0+"ее") - (v0+"ях") - (v0+"еех") - (v0+"ял") - (v0+"еел") - (v0+"ят") - (v0+"еещ") - (v0+"ей") ; - mkV165 : Str -> VTable ; - mkV165 base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"е") - (v0+"ох") - (v0+"ех") - (v0+"-") - (v0+"ел") - (v0+"-") - (v0+"ещ") - (v0+"и") ; - mkV166 : Str -> VTable ; - mkV166 base = let v0 = tk 2 base - in mkVerb (v0+"га") - (v0+"же") - (v0+"жах") - (v0+"жех") - (v0+"гъл") - (v0+"жел") - (v0+"-") - (v0+"жещ") - (v0+"-") ; - mkV167 : Str -> VTable ; - mkV167 base = let v0 = tk 2 base - in mkVerb (v0+"ка") - (v0+"че") - (v0+"ках") - (v0+"чех") - (v0+"кал") - (v0+"чел") - (v0+"кан") - (v0+"чещ") - (v0+"чи") ; - mkV168 : Str -> VTable ; - mkV168 base = let v0 = tk 1 base - in mkVerb (v0+"м") - (v0+"де") - (v0+"дох") - (v0+"дях") - (v0+"л") - (v0+"дял") - (v0+"ден") - (v0+"-") - (v0+"й") ; - mkV169 : Str -> VTable ; - mkV169 base = let v0 = tk 1 base - in mkVerb (v0+"м") - (v0+"де") - (v0+"дох") - (v0+"дях") - (v0+"л") - (v0+"дял") - (v0+"ден") - (v0+"дещ") - (v0+"ж") ; - mkV170 : Str -> VTable ; - mkV170 base = let v0 = tk 3 base - in mkVerb (v0+"ера") - (v0+"ере") - (v0+"рах") - (v0+"ерях") - (v0+"рал") - (v0+"ерял") - (v0+"ран") - (v0+"ерящ") - (v0+"ери") ; - mkV171 : Str -> VTable ; - mkV171 base = let v0 = tk 2 base - in mkVerb (v0+"ма") - (v0+"ме") - (v0+"х") - (v0+"мех") - (v0+"л") - (v0+"мел") - (v0+"т") - (v0+"-") - (v0+"ми") ; - mkV172 : Str -> VTable ; - mkV172 base = let v0 = tk 4 base - in mkVerb (v0+"ълна") - (v0+"ълне") - (v0+"лех") - (v0+"ълнех") - (v0+"лел") - (v0+"ълнел") - (v0+"ълнат") - (v0+"ълнещ") - (v0+"ълни") ; - mkV173 : Str -> VTable ; - mkV173 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"и") - (v0+"их") - (v0+"ех") - (v0+"ил") - (v0+"ел") - (v0+"ен") - (v0+"ещ") - (v0+"и") ; - mkV174 : Str -> VTable ; - mkV174 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"и") - (v0+"их") - (v0+"ях") - (v0+"ил") - (v0+"ял") - (v0+"ен") - (v0+"ящ") - (v0+"и") ; - mkV175 : Str -> VTable ; - mkV175 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"и") - (v0+"их") - (v0+"ях") - (v0+"ил") - (v0+"ял") - (v0+"ен") - (v0+"ящ") - (v0+"й") ; - mkV176 : Str -> VTable ; - mkV176 base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"и") - (v0+"их") - (v0+"ех") - (v0+"ил") - (v0+"ел") - (v0+"ен") - (v0+"ещ") - (v0+"и") ; - mkV177 : Str -> VTable ; - mkV177 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"и") - (v0+"ях") - (v0+"ях") - (v0+"ял") - (v0+"ял") - (v0+"ян") - (v0+"ящ") - (v0+"и") ; - mkV178 : Str -> VTable ; - mkV178 base = let v0 = tk 1 base - in mkVerb (v0+"а") - (v0+"и") - (v0+"ах") - (v0+"ех") - (v0+"ал") - (v0+"ел") - (v0+"-") - (v0+"ащ") - (v0+"и") ; - mkV179 : Str -> VTable ; - mkV179 base = let v0 = tk 4 base - in mkVerb (v0+"ържа") - (v0+"ържи") - (v0+"ържах") - (v0+"ържех") - (v0+"ържал") - (v0+"ържел") - (v0+"ържан") - (v0+"ържащ") - (v0+"ръж") ; - mkV180 : Str -> VTable ; - mkV180 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"и") - (v0+"ях") - (v0+"ях") - (v0+"ял") - (v0+"ял") - (v0+"-") - (v0+"ящ") - (v0+"й") ; - mkV181 : Str -> VTable ; - mkV181 base = let v0 = tk 2 base - in mkVerb (v0+"дя") - (v0+"ди") - (v0+"дях") - (v0+"дех") - (v0+"дял") - (v0+"дел") - (v0+"дян") - (v0+"-") - (v0+"ж") ; - mkV182 : Str -> VTable ; - mkV182 base = let v0 = tk 1 base - in mkVerb (v0+"я") - (v0+"и") - (v0+"ах") - (v0+"ях") - (v0+"ал") - (v0+"ял") - (v0+"-") - (v0+"ящ") - (v0+"и") ; - mkV183 : Str -> VTable ; - mkV183 base = let v0 = tk 3 base - in mkVerb (v0+"ежа") - (v0+"ежи") - (v0+"язах") - (v0+"ежех") - (v0+"язал") - (v0+"ежел") - (v0+"язан") - (v0+"ежещ") - (v0+"ежи") ; - mkV184 : Str -> VTable ; - mkV184 base = let v0 = tk 3 base - in mkVerb (v0+"еля") - (v0+"ели") - (v0+"лях") - (v0+"елех") - (v0+"лял") - (v0+"елел") - (v0+"лян") - (v0+"елещ") - (v0+"ели") ; - mkV185 : Str -> VTable ; - mkV185 base = let v0 = tk 3 base - in mkVerb (v0+"оля") - (v0+"оли") - (v0+"лах") - (v0+"олех") - (v0+"лал") - (v0+"олел") - (v0+"лан") - (v0+"олещ") - (v0+"оли") ; - mkV186 : Str -> VTable ; - mkV186 base = let v0 = tk 2 base - in mkVerb (v0+"ам") - (v0+"а") - (v0+"ах") - (v0+"ах") - (v0+"ал") - (v0+"ал") - (v0+"ан") - (v0+"ащ") - (v0+"ай") ; - mkV187 : Str -> VTable ; - mkV187 base = let v0 = tk 2 base - in mkVerb (v0+"ям") - (v0+"я") - (v0+"ях") - (v0+"ях") - (v0+"ял") - (v0+"ял") - (v0+"ян") - (v0+"ящ") - (v0+"яй") ; - - adjAdv : A -> Str -> A = - \a,adv -> {s = a.s; adv = adv; lock_A=<>} ; -} \ No newline at end of file diff --git a/old-lib/resource/bulgarian/PhraseBul.gf b/old-lib/resource/bulgarian/PhraseBul.gf deleted file mode 100644 index 0d3524832..000000000 --- a/old-lib/resource/bulgarian/PhraseBul.gf +++ /dev/null @@ -1,25 +0,0 @@ -concrete PhraseBul of Phrase = CatBul ** open Prelude, ResBul in { - flags coding=cp1251 ; - - - lin - PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; - - UttS s = s ; - UttQS qs = {s = qs.s ! QDir} ; - UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Masc} ; - UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! GPl} ; - UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! GPl} ; - - UttIP ip = {s = ip.s ! RSubj ! QDir} ; - UttIAdv iadv = {s = iadv.s ! QDir} ; - UttNP np = {s = np.s ! RSubj} ; - UttVP vp = {s = daComplex vp ! Perf ! agrP3 (GSg Neut)} ; - UttAdv adv = adv ; - - NoPConj = {s = []} ; - PConjConj conj = {s = conj.s ++ linCoord!conj.conj} ; - - NoVoc = {s = []} ; - VocNP np = {s = "," ++ np.s ! RVoc} ; -} diff --git a/old-lib/resource/bulgarian/QuestionBul.gf b/old-lib/resource/bulgarian/QuestionBul.gf deleted file mode 100644 index 1032e6b44..000000000 --- a/old-lib/resource/bulgarian/QuestionBul.gf +++ /dev/null @@ -1,63 +0,0 @@ -concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in { - flags coding=cp1251 ; - - - flags optimize=all_subs ; - - lin - - QuestCl cl = { - s = \\t,a,p => - let cls = cl.s ! t ! a ! p - in table { - QDir => cls ! Quest ; - QIndir => "ако" ++ cls ! Main - } ---- "whether" in ExtEng - } ; - - QuestVP ip vp = { - s = \\t,a,b,qform => - (mkClause (ip.s ! RSubj ! qform) {gn = ip.gn ; p = P3} vp).s ! t ! a ! b ! Main - } ; - - QuestSlash ip slash = - mkQuestion {s = \\spec => slash.c2.s ++ ip.s ! (RObj slash.c2.c) ! spec} - {s = slash.s ! (agrP3 ip.gn) } ; - - QuestIAdv iadv cl = mkQuestion iadv cl ; - - QuestIComp icomp np = - mkQuestion icomp (mkClause (np.s ! RSubj) np.a (predV verbBe)) ; - - PrepIP p ip = {s = \\spec => p.s ++ ip.s ! RSubj ! spec} ; - - AdvIP ip adv = { - s = \\role,spec => ip.s ! role ! spec ++ adv.s ; - gn = ip.gn - } ; - - CompIAdv a = a ; - - IdetCN idet cn = { - s = \\_,spec => let nf = case of { - => NFPlCount ; - _ => NF idet.n Indef - } - in idet.s ! cn.g ! spec ++ cn.s ! nf ; - gn = gennum cn.g idet.n - } ; - - IdetIP idet = { - s = \\_ => idet.s ! DNeut ; - gn = gennum DNeut idet.n - } ; - - IdetQuant iquant num = { - s = \\g,spec => iquant.s ! gennum g num.n ! spec ++ - num.s ! dgenderSpecies g Indef RSubj ; - n = num.n ; - nonEmpty = num.nonEmpty - } ; - - CompIP ip = {s = ip.s ! RSubj} ; -} diff --git a/old-lib/resource/bulgarian/RelativeBul.gf b/old-lib/resource/bulgarian/RelativeBul.gf deleted file mode 100644 index 19e4f4af3..000000000 --- a/old-lib/resource/bulgarian/RelativeBul.gf +++ /dev/null @@ -1,34 +0,0 @@ -concrete RelativeBul of Relative = CatBul ** open ResBul in { - flags coding=cp1251 ; - - - flags optimize=all_subs ; - - lin - RelCl cl = { - s = \\t,a,p,agr => suchRP ! agr.gn ++ "че" ++ cl.s ! t ! a ! p ! Main ; - role = RSubj - } ; - - RelVP rp vp = { - s = \\t,a,p,agr => - let - cl = mkClause (rp.s ! agr.gn) agr vp - in - cl.s ! t ! a ! p ! Main ; - role = RSubj - } ; - - RelSlash rp slash = { - s = \\t,a,p,agr => slash.c2.s ++ rp.s ! agr.gn ++ slash.s ! agr ! t ! a ! p ! Main ; - role = RObj Acc - } ; - - FunRP p np rp = { - s = \\gn => np.s ! RObj Acc ++ p.s ++ (case p.c of {Acc => []; Dat => "на"}) ++ rp.s ! gn ; - } ; - - IdRP = { - s = whichRP ; - } ; -} diff --git a/old-lib/resource/bulgarian/ResBul.gf b/old-lib/resource/bulgarian/ResBul.gf deleted file mode 100644 index 795b9a746..000000000 --- a/old-lib/resource/bulgarian/ResBul.gf +++ /dev/null @@ -1,626 +0,0 @@ ---# -path=.:../abstract:../common:../../prelude - ---1 Bulgarian auxiliary operations. - --- This module contains operations that are needed to make the --- resource syntax work. To define everything that is needed to --- implement $Test$, it moreover contains regular lexical --- patterns needed for $Lex$. - -resource ResBul = ParamX ** open Prelude in { - flags coding=cp1251 ; - - - flags optimize=all ; - --- Some parameters, such as $Number$, are inherited from $ParamX$. - ---2 For $Noun$ - --- This is the worst-case $Case$ needed for pronouns. - - param - Role = RSubj | RObj Case | RVoc ; - Case = Acc | Dat; - - NForm = - NF Number Species - | NFSgDefNom - | NFPlCount - | NFVocative - ; - - GenNum = GSg Gender | GPl ; - --- Agreement of $NP$ is a record. We'll add $Gender$ later. - - oper - Agr = {gn : GenNum ; p : Person} ; - - param - Gender = Masc | Fem | Neut ; - - Species = Indef | Def ; - --- The plural never makes a gender distinction. - ---2 For $Verb$ - - Aspect = Imperf | Perf ; - - VForm = - VPres Number Person - | VAorist Number Person - | VImperfect Number Person - | VPerfect AForm - | VPluPerfect AForm - | VPassive AForm - | VPresPart AForm - | VImperative Number - | VGerund - ; - - VType = - VNormal - | VMedial Case - | VPhrasal Case - ; - --- The order of sentence is needed already in $VP$. - - Order = Main | Inv | Quest ; - ---2 For $Adjective$ - - AForm = - ASg Gender Species - | ASgMascDefNom - | APl Species - ; - ---2 For $Numeral$ - - DGender = - DMasc - | DMascPersonal - | DFem - | DNeut - ; - - DGenderSpecies = - DMascIndef - | DMascDef - | DMascDefNom - | DMascPersonalIndef - | DMascPersonalDef - | DMascPersonalDefNom - | DFemIndef - | DFemDef - | DNeutIndef - | DNeutDef - ; - - CardOrd = NCard DGenderSpecies | NOrd AForm ; - DForm = unit | teen | ten | hundred ; - ---2 Transformations between parameter types - - oper - agrP3 : GenNum -> Agr = \gn -> - {gn = gn; p = P3} ; - - conjGenNum : GenNum -> GenNum -> GenNum = \a,b -> - case of { - => GSg g ; - _ => GPl - } ; - - conjAgr : Agr -> Agr -> Agr = \a,b -> { - gn = conjGenNum a.gn b.gn ; - p = conjPerson a.p b.p - } ; - - gennum : DGender -> Number -> GenNum = \g,n -> - case n of { - Sg => GSg (case g of { - DMasc => Masc ; - DMascPersonal => Masc ; - DFem => Fem ; - DNeut => Neut - }) ; - Pl => GPl - } ; - - numGenNum : GenNum -> Number = \gn -> - case gn of { - GSg _ => Sg ; - GPl => Pl - } ; - - aform : GenNum -> Species -> Role -> AForm = \gn,spec,role -> - case gn of { - GSg g => case of { - => ASgMascDefNom ; - _ => ASg g spec - } ; - GPl => APl spec - } ; - - dgenderSpecies : DGender -> Species -> Role -> DGenderSpecies = - \g,spec,role -> case of { - => DMascIndef ; - => case role of { - RSubj => DMascDefNom ; - _ => DMascDef - } ; - => DMascPersonalIndef ; - => case role of { - RSubj => DMascPersonalDefNom ; - _ => DMascPersonalDef - } ; - => DFemIndef ; - => DFemDef ; - => DNeutIndef ; - => DNeutDef - } ; - - nform2aform : NForm -> DGender -> AForm - = \nf,g -> case nf of { - NF n spec => aform (gennum g n) spec (RObj Acc) ; - NFSgDefNom => aform (gennum g Sg) Def RSubj ; - NFPlCount => APl Indef ; - NFVocative => aform (gennum g Sg) Indef (RObj Acc) - } ; - - indefNForm : NForm -> NForm - = \nf -> case nf of { - NF n spec => NF n Indef ; - NFSgDefNom => NF Sg Indef ; - NFPlCount => NFPlCount ; - NFVocative => NFVocative - } ; - - numNForm : NForm -> Number - = \nf -> case nf of { - NF n spec => n ; - NFSgDefNom => Sg ; - NFPlCount => Pl ; - NFVocative => Sg - } ; - - oper --- For $Verb$. - VTable = VForm => Str ; - - Verb : Type = { - s : Aspect => VTable ; - vtype : VType - } ; - - VP : Type = { - s : Aspect => VTable ; - ad : {isEmpty : Bool; s : Str} ; -- sentential adverb - compl : Agr => Str ; - vtype : VType - } ; - - VPSlash = { - s : Aspect => VTable ; - ad : {isEmpty : Bool; s : Str} ; -- sentential adverb - compl1 : Agr => Str ; - compl2 : Agr => Str ; - vtype : VType ; - c2 : Preposition - } ; - - predV : Verb -> VP = \verb -> { - s = verb.s ; - ad = {isEmpty=True; s=[]} ; - compl = \\_ => [] ; - vtype = verb.vtype ; - } ; - - slashV : Verb -> Preposition -> VPSlash = \verb,prep -> { - s = verb.s ; - ad = {isEmpty=True; s=[]} ; - compl1 = \\_ => [] ; - compl2 = \\_ => [] ; - vtype = verb.vtype ; - c2 = prep ; - } ; - - insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> { - s = vp.s ; - ad = vp.ad ; - compl = \\a => vp.compl ! a ++ obj ! a ; - vtype = vp.vtype - } ; - - insertSlashObj1 : (Agr => Str) -> VPSlash -> VPSlash = \obj,slash -> { - s = slash.s ; - ad = slash.ad ; - compl1 = \\a => slash.compl1 ! a ++ obj ! a ; - compl2 = slash.compl2 ; - vtype = slash.vtype ; - c2 = slash.c2 - } ; - - insertSlashObj2 : (Agr => Str) -> VPSlash -> VPSlash = \obj,slash -> { - s = slash.s ; - ad = slash.ad ; - compl1 = slash.compl1 ; - compl2 = \\a => slash.compl2 ! a ++ obj ! a ; - vtype = slash.vtype ; - c2 = slash.c2 - } ; - - auxBe : VTable = - table { - VPres Sg P1 => "съм" ; - VPres Sg P2 => "си" ; - VPres Sg P3 => "е" ; - VPres Pl P1 => "сме" ; - VPres Pl P2 => "сте" ; - VPres Pl P3 => "са" ; - VAorist Sg P1 => "бях" ; - VAorist Sg _ => "беше" ; - VAorist Pl P1 => "бяхме" ; - VAorist Pl P2 => "бяхте" ; - VAorist Pl P3 => "бяха" ; - VImperfect Sg P1 => "бях" ; - VImperfect Sg _ => "беше" ; - VImperfect Pl P1 => "бяхме" ; - VImperfect Pl P2 => "бяхте" ; - VImperfect Pl P3 => "бяха" ; - VPerfect aform => regAdjective "бил" ! aform ; - VPluPerfect aform => regAdjective "бил" ! aform ; - VPassive aform => regAdjective "бъден" ! aform ; - VPresPart aform => regAdjective "бъдещ" ! aform ; - VImperative Sg => "бъди" ; - VImperative Pl => "бъдете" ; - VGerund => "бидейки" - } ; - - auxWould : VTable = - table { - VPres Sg P1 => "бъда" ; - VPres Sg P2 => "бъдеш" ; - VPres Sg P3 => "бъде" ; - VPres Pl P1 => "бъдем" ; - VPres Pl P2 => "бъдете" ; - VPres Pl P3 => "бъдат" ; - VAorist Sg P1 => "бих" ; - VAorist Sg _ => "би" ; - VAorist Pl P1 => "бихме" ; - VAorist Pl P2 => "бихте" ; - VAorist Pl P3 => "биха" ; - VImperfect Sg P1 => "бъдех" ; - VImperfect Sg _ => "бъдеше" ; - VImperfect Pl P1 => "бъдехме" ; - VImperfect Pl P2 => "бъдехте" ; - VImperfect Pl P3 => "бъдеха" ; - VPerfect aform => regAdjective "бил" ! aform ; - VPluPerfect aform => regAdjective "бъдел" ! aform ; - VPassive aform => regAdjective "бъден" ! aform ; - VPresPart aform => regAdjective "бъдещ" ! aform ; - VImperative Sg => "бъди" ; - VImperative Pl => "бъдете" ; - VGerund => "бъдейки" - } ; - - verbBe : Verb = {s=\\_=>auxBe ; vtype=VNormal} ; - verbWould : Verb = {s=\\_=>auxWould ; vtype=VNormal} ; - - reflClitics : Case => Str = table {Acc => "се"; Dat => "си"} ; - - personalClitics : Case => GenNum => Person => Str = - table { - Acc => table { - GSg g => table { - P1 => "ме" ; - P2 => "те" ; - P3 => case g of { - Masc => "го" ; - Fem => "я" ; - Neut => "го" - } - } ; - GPl => table { - P1 => "ни" ; - P2 => "ви" ; - P3 => "ги" - } - } ; - Dat => table { - GSg g => table { - P1 => "ми" ; - P2 => "ти" ; - P3 => case g of { - Masc => "му" ; - Fem => "й" ; - Neut => "му" - } - } ; - GPl => table { - P1 => "ни" ; - P2 => "ви" ; - P3 => "им" - } - } - } ; - - ia2e : Str -> Str = -- to be used when the next syllable has vowel different from "а","ъ","о" or "у" - \s -> case s of { - x@(_*+_) + "я" + y@(("б"|"в"|"г"|"д"|"ж"|"з"|"к"|"л"|"м"|"н"|"п"|"р"|"с"|"т"|"ф"|"х"|"ц"|"ч"|"ш"|"щ")*) - => x+"e"+y; - _ => s - }; - - regAdjective : Str -> AForm => Str = - \base -> - let base0 : Str - = case base of { - x+"и" => x; - x => x - } - in table { - ASg Masc Indef => base ; - ASg Masc Def => (base0+"ия") ; - ASgMascDefNom => (base0+"ият") ; - ASg Fem Indef => (base0+"a") ; - ASg Fem Def => (base0+"ата") ; - ASg Neut Indef => (base0+"о") ; - ASg Neut Def => (base0+"ото") ; - APl Indef => (ia2e base0+"и") ; - APl Def => (ia2e base0+"ите") - }; - --- For $Sentence$. - - Clause : Type = { - s : Tense => Anteriority => Polarity => Order => Str - } ; - - mkClause : Str -> Agr -> VP -> Clause = - \subj,agr,vp -> { - s = \\t,a,p,o => - let - verb : Bool => Str - = \\q => vpTenses vp ! t ! a ! p ! agr ! q ! Perf ; - compl = vp.compl ! agr - in case o of { - Main => subj ++ verb ! False ++ compl ; - Inv => verb ! False ++ compl ++ subj ; - Quest => subj ++ verb ! True ++ compl - } - } ; - - vpTenses : VP -> Tense => Anteriority => Polarity => Agr => Bool => Aspect => Str = - \verb -> \\t,a,p,agr,q0,asp => - let clitic = case verb.vtype of { - VNormal => {s=[]; agr=agr} ; - VMedial c => {s=reflClitics ! c; agr=agr} ; - VPhrasal c => {s=personalClitics ! c ! agr.gn ! agr.p; agr={gn=GSg Neut; p=P3}} - } ; - - present = verb.s ! asp ! (VPres (numGenNum clitic.agr.gn) clitic.agr.p) ; - presentImperf = verb.s ! Imperf ! (VPres (numGenNum clitic.agr.gn) clitic.agr.p) ; - aorist = verb.s ! asp ! (VAorist (numGenNum clitic.agr.gn) clitic.agr.p) ; - perfect = verb.s ! asp ! (VPerfect (aform clitic.agr.gn Indef (RObj Acc))) ; - - auxPres = auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ; - auxAorist = auxBe ! VAorist (numGenNum clitic.agr.gn) clitic.agr.p ; - auxCond = auxWould ! VAorist (numGenNum clitic.agr.gn) clitic.agr.p ; - - apc : Str -> Str = \s -> - case of { - => clitic.s++auxPres++s ; - _ => auxPres++s++clitic.s - } ; - - li0 = case of { => "ли"; _ => []} ; - - q = case verb.ad.isEmpty of {True => q0; False => False} ; - li = case q of {True => "ли"; _ => []} ; - - vf1 : Str -> {s1 : Str; s2 : Str} = \s -> - case p of { - Pos => case q of {True => {s1=[]; s2="ли"++apc []}; - False => {s1=apc []; s2=[]}} ; - Neg => {s1="не"++apc li; s2=[]} - } ; - - vf2 : Str -> {s1 : Str; s2 : Str} = \s -> - case p of { - Pos => case q of {True => {s1=[]; s2="ли"++s}; - False => {s1=s; s2=[]}} ; - Neg => case verb.vtype of - {VNormal => {s1="не"; s2=li} ; - _ => {s1="не"++s++li; s2=[]}} - } ; - - vf3 : Str -> {s1 : Str; s2 : Str} = \s -> - case p of { - Pos => {s1="ще"++s; s2=li} ; - Neg => {s1="няма"++li++"да"++s; s2=[]} - } ; - - vf4 : Str -> {s1 : Str; s2 : Str} = \s -> - case p of { - Pos => {s1= s++li++clitic.s; s2=[]} ; - Neg => {s1="не"++s++li++clitic.s; s2=[]} - } ; - - verbs : {aux:{s1:Str; s2:Str}; main:Str} = - case of { - => {aux=vf2 clitic.s; main=presentImperf} ; - => {aux=vf1 clitic.s; main=perfect} ; - => {aux=vf2 clitic.s; main=aorist} ; - => {aux=vf4 auxAorist; main=perfect} ; - => {aux=vf3 clitic.s; main=present} ; - => {aux=vf3 (apc []); main=perfect} ; - => {aux=vf4 auxCond ; main=perfect} - } - - in verb.ad.s ++ li0 ++ verbs.aux.s1 ++ verbs.main ++ verbs.aux.s2 ; - - daComplex : VP -> Aspect => Agr => Str = - \vp -> \\asp,agr => - let clitic = case vp.vtype of { - VNormal => {s=[]; agr=agr} ; - VMedial c => {s=reflClitics ! c; agr=agr} ; - VPhrasal c => {s=personalClitics ! c ! agr.gn ! agr.p; agr={gn=GSg Neut; p=P3}} - } - in vp.ad.s ++ "да" ++ clitic.s ++ vp.s ! asp ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++ vp.compl ! agr ; - --- For $Numeral$. - - mkDigit : Str -> Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} = - \dva, dvama, dve, vtori, dvesta -> - {s = table { - unit => mkCardOrd dva dvama dve vtori ; - teen => mkCardOrd (dva+"надесет") (dva+"надесетима") (dva+"надесет") (dva+"надесети") ; - ten => mkCardOrd (dva+"десет") (dva+"десетима") (dva+"десет") (dva+"десети") ; - hundred => let dvesten : Str - = case dvesta of { - dvest+"а" => dvest+"ен" ; - chetiristot+"ин" => chetiristot+"ен" - } - in mkCardOrd dvesta dvesta dvesta dvesten - } - } ; - - mkCardOrd : Str -> Str -> Str -> Str -> CardOrd => Str = - \dva, dvama, dve, vtori -> - table { - NCard dg => digitGenderSpecies dva dvama dve ! dg ; - NOrd aform => let vtora = init vtori + "а" ; - vtoro = init vtori + "о" - in case aform of { - ASg Masc Indef => vtori ; - ASg Masc Def => vtori+"я" ; - ASgMascDefNom => vtori+"ят" ; - ASg Fem Indef => vtora ; - ASg Fem Def => vtora+"та" ; - ASg Neut Indef => vtoro ; - ASg Neut Def => vtoro+"то" ; - APl Indef => vtori ; - APl Def => vtori+"те" - } - } ; - - digitGenderSpecies : Str -> Str -> Str -> DGenderSpecies => Str = - \dva, dvama, dve - -> let addDef : Str -> Str = - \s -> case s of { - dves+"та" => dves+"тате" ; - dv+"а" => dv+"ата" ; - x => x+"те" - } - in table { - DMascIndef => dva ; - DMascDef => addDef dva ; - DMascDefNom => addDef dva ; - DMascPersonalIndef => dvama ; - DMascPersonalDef => addDef dvama ; - DMascPersonalDefNom => addDef dvama ; - DFemIndef => dve ; - DFemDef => addDef dve ; - DNeutIndef => dve ; - DNeutDef => addDef dve - } ; - - mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} = - \koi,kogo,gn -> { - s = table { - RSubj => table QForm [koi; koi+"то"] ; - RObj Acc => table QForm [kogo; kogo+"то"] ; - RObj Dat => table QForm ["на" ++ kogo; kogo+"то"] ; - RVoc => table QForm [koi; koi+"то"] - } ; - gn = gn - } ; - - mkPron : (az,men,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) -> GenNum -> Person -> {s : Role => Str; gen : AForm => Str; a : Agr} = - \az,men,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite,gn,p -> { - s = table { - RSubj => az ; - RObj Acc => men ; - RObj Dat => mi ; - RVoc => az - } ; - gen = table { - ASg Masc Indef => moj ; - ASg Masc Def => moia ; - ASgMascDefNom => moiat ; - ASg Fem Indef => moia_ ; - ASg Fem Def => moiata ; - ASg Neut Indef => moe ; - ASg Neut Def => moeto ; - APl Indef => moi ; - APl Def => moite - } ; - a = { - gn = gn ; - p = p - } - } ; - - mkNP : Str -> GenNum -> Person -> {s : Role => Str; a : Agr} = - \s,gn,p -> { - s = table { - RSubj => s ; - RObj Acc => s ; - RObj Dat => "на" ++ s ; - RVoc => s - } ; - a = { - gn = gn ; - p = p - } - } ; - - Preposition : Type = {s : Str; c : Case}; - - mkQuestion : - {s : QForm => Str} -> Clause -> - {s : Tense => Anteriority => Polarity => QForm => Str} = \wh,cl -> - { - s = \\t,a,p,qform => - let cls = cl.s ! t ! a ! p ; - in wh.s ! qform ++ cls ! case qform of { - QDir => Inv ; - QIndir => Main - } - } ; - - whichRP : GenNum => Str - = table { - GSg Masc => "който" ; - GSg Fem => "която" ; - GSg Neut => "което" ; - GPl => "които" - } ; - - suchRP : GenNum => Str - = table { - GSg Masc => "такъв" ; - GSg Fem => "такава" ; - GSg Neut => "такова" ; - GPl => "такива" - } ; - - thisRP : GenNum => Str - = table { - GSg Masc => "този" ; - GSg Fem => "тaзи" ; - GSg Neut => "това" ; - GPl => "тези" - } ; - - linCoord : Bool => Str ; - linCoord = table {True => "и"; False=>"или"} ; - - linCoordSep : Str -> Bool => Bool => Str ; - linCoordSep s = table {True => linCoord; False=> \\_ => s} ; -} diff --git a/old-lib/resource/bulgarian/SentenceBul.gf b/old-lib/resource/bulgarian/SentenceBul.gf deleted file mode 100644 index ff2bc0fd8..000000000 --- a/old-lib/resource/bulgarian/SentenceBul.gf +++ /dev/null @@ -1,72 +0,0 @@ -concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in { - flags coding=cp1251 ; - - - flags optimize=all_subs ; - - lin - PredVP np vp = mkClause (np.s ! (case vp.vtype of { - VNormal => RSubj ; - VMedial _ => RSubj ; - VPhrasal c => RObj c})) np.a vp ; - - PredSCVP sc vp = mkClause sc.s {gn=GSg Masc; p=P3} vp ; - - ImpVP vp = { - s = \\p,gn => - let agr = {gn = gn ; p = P2} ; - verb = vp.s ! Perf ! VImperative (numGenNum gn) ; - compl = vp.compl ! agr ; - clitic = case vp.vtype of { - VNormal => [] ; - VMedial c => reflClitics ! c ; - VPhrasal c => personalClitics ! c ! agr.gn ! agr.p - } ; - in case p of {Pos => vp.ad.s ++ verb ++ clitic ; - Neg => "не" ++ vp.ad.s ++ clitic ++ verb} ++ compl ; - } ; - - SlashVP np slash = { - s = \\agr => (mkClause (np.s ! RSubj) np.a {s = slash.s ; - ad = slash.ad ; - compl = \\_ => slash.compl1 ! np.a ++ slash.compl2 ! agr ; - vtype = slash.vtype}).s ; - c2 = slash.c2 - } ; - - AdvSlash slash adv = { - s = \\agr,t,a,b,o => slash.s ! agr ! t ! a ! b ! o ++ adv.s ; - c2 = slash.c2 - } ; - - SlashPrep cl prep = {s = \\_ => cl.s; c2 = prep} ; - - SlashVS np vs slash = { - s = \\agr => (mkClause (np.s ! RSubj) np.a - (insertObj (\\_ => "че" ++ slash.s ! agr) (predV vs))).s ; - c2 = slash.c2 - } ; - - EmbedS s = {s = "," ++ "че" ++ s.s} ; - EmbedQS qs = {s = qs.s ! QIndir} ; - EmbedVP vp = {s = daComplex vp ! Perf ! {gn=GSg Masc; p=P1}} ; - - UseCl t a p cl = { - s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! Main - } ; - UseQCl t a p cl = { - s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q - } ; - UseRCl t a p cl = { - s = \\agr => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! agr ; - role = cl.role - } ; - UseSlash t a p cl = { - s = \\agr => t.s ++ a.s ++ p.s ++ cl.s ! agr ! t.t ! a.a ! p.p ! Main ; - c2 = cl.c2 - } ; - - AdvS a s = {s = a.s ++ "," ++ s.s} ; - - RelS s r = {s = s.s ++ "," ++ r.s ! {gn=gennum DNeut Sg; p=P3}} ; -} diff --git a/old-lib/resource/bulgarian/StructuralBul.gf b/old-lib/resource/bulgarian/StructuralBul.gf deleted file mode 100644 index a3b8ec75c..000000000 --- a/old-lib/resource/bulgarian/StructuralBul.gf +++ /dev/null @@ -1,122 +0,0 @@ -concrete StructuralBul of Structural = CatBul ** - open MorphoBul, ParadigmsBul, Prelude in { - flags coding=cp1251 ; - - - flags optimize=all ; - - lin - above_Prep = mkPrep "над" Acc ; - after_Prep = mkPrep "след" Acc ; - all_Predet = {s = table GenNum ["всичкия";"всичката";"всичкото";"всичките"]} ; - almost_AdA, almost_AdN = ss "почти" ; - although_Subj = ss ["въпреки че"] ; - always_AdV = ss "винаги" ; - and_Conj = {s=[]; conj=True; distr=False; n = Pl} ; - because_Subj = ss "защото" ; - before_Prep = mkPrep "преди" Acc ; - behind_Prep = mkPrep "зад" Acc ; - between_Prep = mkPrep "между" Acc ; - both7and_DConj = {s=[]; conj=True; distr=True; n = Pl} ; - but_PConj = ss "но" ; - by8agent_Prep = mkPrep "чрез" Acc ; - by8means_Prep = mkPrep "чрез" Acc ; - can8know_VV, can_VV = mkVV (stateV (mkV166 "мога")) ; - during_Prep = mkPrep ["по време на"] Acc ; - either7or_DConj = {s=[]; conj=False; distr=True; n = Sg} ; - everybody_NP = mkNP "всеки" (GSg Masc) P3 ; - every_Det = mkDeterminerSg "всеки" "всяка" "всяко"; - everything_NP = mkNP "всичко" (GSg Neut) P3 ; - everywhere_Adv = ss "навсякъде" ; - few_Det = {s = \\_,_ => "няколко"; n = Pl; countable = True; spec = Indef} ; ---- first_Ord = ss "first" ; DEPRECATED - for_Prep = mkPrep "за" Acc ; - from_Prep = mkPrep "от" Acc ; - he_Pron = mkPron "той" "него" "му" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Masc) P3 ; - here_Adv = ss "тук" ; - here7to_Adv = ss ["до тук"] ; - here7from_Adv = ss ["от тук"] ; - how_IAdv = mkIAdv "как" ; - how8many_IDet = {s = \\_ => table QForm ["колко";"колкото"]; n = Pl; nonEmpty = False} ; - if_Subj = ss "ако" ; - in8front_Prep = mkPrep "пред" Acc ; - i_Pron = mkPron "аз" "мен" "ми" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Masc) P1 ; - in_Prep = mkPrep (pre { "в" ; - "във" / strs {"в" ; "ф" ; "В" ; "Ф"} - }) Acc ; - it_Pron = mkPron "то" "него" "му" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Neut) P3 ; - less_CAdv = {s="не"; sn="по-малко"} ; - many_Det = mkDeterminerPl "много" ; - more_CAdv = {s=[]; sn="повече"} ; - most_Predet = {s = \\_ => "повечето"} ; - much_Det = mkDeterminerSg "много" "много" "много"; - must_VV = - mkVV { - s = \\_=>table { - VPres _ _ => "трябва" ; - VAorist _ _ => "трябваше" ; - VImperfect _ _ => "трябвало" ; - VPerfect _ => "трябвало" ; - VPluPerfect _ => "трябвало" ; - VPassive _ => "трябвало" ; - VPresPart _ => "трябвало" ; - VImperative Sg => "трябвай" ; - VImperative Pl => "трябвайте" ; - VGerund => "трябвайки" - } ; - vtype=VNormal ; - lock_V=<> - } ; - no_Utt = ss "не" ; - on_Prep = mkPrep "на" Acc ; ----- one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED - only_Predet = {s = \\_ => "само"} ; - or_Conj = {s=[]; conj=False; distr=False; n = Sg} ; - otherwise_PConj = ss "иначе" ; - part_Prep = mkPrep "от" Acc ; - please_Voc = ss "моля" ; - possess_Prep = mkPrep [] Dat ; - quite_Adv = ss "доста" ; - she_Pron = mkPron "тя" "нея" "и" "неин" "нейния" "нейният" "нейна" "нейната" "нейно" "нейното" "нейни" "нейните" (GSg Fem) P3 ; - so_AdA = ss "толкова" ; - somebody_NP = mkNP "някой" (GSg Masc) P3 ; - someSg_Det = mkDeterminerSg "някой" "някоя" "някое" ; - somePl_Det = mkDeterminerPl "някои" ; - something_NP = mkNP "нещо" (GSg Neut) P3 ; - somewhere_Adv = ss "някъде" ; - that_Quant = mkQuant "онзи" "онази" "онова" "онези" ; - there_Adv = ss "там" ; - there7to_Adv = ss ["до там"] ; - there7from_Adv = ss ["от там"] ; - therefore_PConj = ss ["така че"] ; - they_Pron = mkPron "те" "тях" "им" "техен" "техния" "техният" "тяхна" "тяхната" "тяхно" "тяхното" "техни" "техните" GPl P3 ; - this_Quant = mkQuant "този" "тази" "това" "тези" ; - through_Prep = mkPrep "през" Acc ; - too_AdA = ss "прекалено" ; - to_Prep = mkPrep "до" Acc ; - under_Prep = mkPrep "под" Acc ; - very_AdA = ss "много" ; - want_VV = mkVV (stateV (mkV186 "искам")) ; - we_Pron = mkPron "ние" "нас" "ни" "наш" "нашия" "нашият" "наша" "нашата" "наше" "нашето" "наши" "нашите" GPl P1 ; - whatPl_IP = mkIP "какви" "какви" GPl ; - whatSg_IP = mkIP "какъв" "какъв" (GSg Masc) ; - when_IAdv = mkIAdv "кога" ; - when_Subj = ss "когато" ; - where_IAdv = mkIAdv "къде" ; - which_IQuant = {s = table GenNum [table QForm ["кой";"който"]; - table QForm ["коя";"която"]; - table QForm ["кое";"което"]; - table QForm ["кои";"които"]]} ; - whoSg_IP = mkIP "кой" "кого" (GSg Masc) ; - whoPl_IP = mkIP "кои" "кои" GPl ; - why_IAdv = mkIAdv "защо" ; - without_Prep = mkPrep "без" Acc ; - with_Prep = mkPrep (pre { "с" ; - "със" / strs {"с" ; "з" ; "С" ; "З"} - }) Acc ; - yes_Utt = ss "да" ; - youSg_Pron = mkPron "ти" "теб" "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Masc) P2 ; - youPl_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl P2 ; - youPol_Pron = mkPron "вие" "вас" "ви" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl P2 ; -} - diff --git a/old-lib/resource/bulgarian/TextBul.gf b/old-lib/resource/bulgarian/TextBul.gf deleted file mode 100644 index 21e624b8e..000000000 --- a/old-lib/resource/bulgarian/TextBul.gf +++ /dev/null @@ -1,13 +0,0 @@ -concrete TextBul of Text = CatBul ** { - flags coding=cp1251 ; - - --- This will work for almost all languages except Spanish. - - lin - TEmpty = {s = []} ; - TFullStop x xs = {s = x.s ++ "." ++ xs.s} ; - TQuestMark x xs = {s = x.s ++ "?" ++ xs.s} ; - TExclMark x xs = {s = x.s ++ "!" ++ xs.s} ; - -} diff --git a/old-lib/resource/bulgarian/VerbBul.gf b/old-lib/resource/bulgarian/VerbBul.gf deleted file mode 100644 index 59d29deb2..000000000 --- a/old-lib/resource/bulgarian/VerbBul.gf +++ /dev/null @@ -1,92 +0,0 @@ -concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in { - flags coding=cp1251 ; - - - flags optimize=all_subs ; - - lin - UseV = predV ; - - SlashV2a v = slashV v v.c2 ; - - Slash2V3 v np = - insertSlashObj1 (\\_ => v.c2.s ++ np.s ! RObj v.c2.c) (slashV v v.c3) ; - - Slash3V3 v np = - insertSlashObj2 (\\_ => v.c3.s ++ np.s ! RObj v.c3.c) (slashV v v.c2) ; - - ComplVV vv vp = - insertObj (daComplex vp ! Perf) (predV vv) ; - - ComplVS v s = insertObj (\\_ => "," ++ "че" ++ s.s) (predV v) ; - ComplVQ v q = insertObj (\\_ => q.s ! QDir) (predV v) ; - - ComplVA v ap = - insertObj (\\agr => ap.s ! aform agr.gn Indef (RObj Acc)) (predV v) ; - - - SlashV2A v ap = - insertSlashObj2 (\\a => ap.s ! aform a.gn Indef (RObj Acc)) (slashV v v.c2) ; - - -- test: I saw a boy to whom she said that they are here - SlashV2S v s = insertSlashObj2 (\\_ => "," ++ "че" ++ s.s) (slashV v v.c2) ; - - -- test: I saw a boy whom she asked who is here - SlashV2Q v q = insertSlashObj2 (\\_ => q.s ! QDir) (slashV v v.c2) ; - - -- test: I saw a boy whom she begged to walk - SlashV2V vv vp = - insertSlashObj2 (daComplex vp ! Perf) (slashV vv vv.c2) ; - - -- test: I saw a car whom she wanted to buy - SlashVV vv slash = { - s = vv.s ; - ad = {isEmpty=True; s=[]}; - compl1 = daComplex {s=slash.s; ad=slash.ad; compl=slash.compl1; vtype=slash.vtype} ! Perf ; - compl2 = slash.compl2 ; - vtype = vv.vtype ; - c2 = slash.c2 - } ; - - -- test: I saw a car whom she begged me to buy - SlashV2VNP vv np slash = { - s = vv.s ; - ad = {isEmpty=True; s=[]}; - compl1 = \\agr => vv.c2.s ++ np.s ! RObj vv.c2.c ++ - daComplex {s=slash.s; ad=slash.ad; compl=slash.compl1; vtype=slash.vtype} ! Perf ! np.a ; - compl2 = slash.compl2 ; - vtype = vv.vtype ; - c2 = slash.c2 - } ; - - ComplSlash slash np = { - s = slash.s ; - ad = slash.ad ; - compl = \\a => slash.compl1 ! a ++ slash.c2.s ++ np.s ! RObj slash.c2.c ++ slash.compl2 ! np.a ; - vtype = slash.vtype - } ; - - UseComp comp = insertObj comp.s (predV verbBe) ; - - AdvVP vp adv = insertObj (\\_ => adv.s) vp ; - - AdVVP adv vp = { - s = vp.s ; - ad = {isEmpty=False; s=vp.ad.s ++ adv.s} ; - compl = vp.compl ; - vtype = vp.vtype - } ; - - ReflVP slash = { - s = slash.s ; - ad = slash.ad ; - compl = \\agr => slash.compl1 ! agr ++ slash.compl2 ! agr ; - vtype = VMedial slash.c2.c ; - } ; - - PassV2 v = insertObj (\\a => v.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc))) (predV verbBe) ; - - CompAP ap = {s = \\agr => ap.s ! aform agr.gn Indef (RObj Acc)} ; - CompNP np = {s = \\_ => np.s ! RObj Acc} ; - CompAdv a = {s = \\_ => a.s} ; -} -- cgit v1.2.3