diff options
| author | aarne <aarne@chalmers.se> | 2009-12-09 09:47:16 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-12-09 09:47:16 +0000 |
| commit | c8ceed08efcc0bdc1fcbd89bce643d9f52f0991b (patch) | |
| tree | 5f0b314341c129eba1bc67b8b887fb8a4486fad8 /old-lib/resource/bulgarian | |
| parent | 101df06f6c8380328d4266adadac3ab6d1bac0b3 (diff) | |
moving a few things to deprecated
Diffstat (limited to 'old-lib/resource/bulgarian')
25 files changed, 0 insertions, 4033 deletions
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 <t,a> of { - <Pres,Simul> => {aux1=[]; aux2=[]; main=present} ; - <Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; - <Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; - <Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; - <Fut, Simul> => {aux1="ще"; aux2=[]; main=present} ; - <Fut, Anter> => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; - <Cond,_> => {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 <det.n,det.spec> of {
- <Sg,Def> => case role of {
- RSubj => NFSgDefNom ;
- RVoc => NFVocative ;
- _ => NF Sg Def
- } ;
- <Sg,Indef> => case role of {
- RVoc => NFVocative ;
- _ => NF Sg Indef
- } ;
- <Pl,Def> => NF det.n det.spec ;
- <Pl,Indef> => 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 <idet.n, idet.nonEmpty> of { - <Pl,True> => 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 <a,b> of { - <GSg _,GSg g> => 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 <g,spec,role> of { - <Masc,Def,RSubj> => ASgMascDefNom ; - _ => ASg g spec - } ; - GPl => APl spec - } ; - - dgenderSpecies : DGender -> Species -> Role -> DGenderSpecies = - \g,spec,role -> case <g,spec> of { - <DMasc,Indef> => DMascIndef ; - <DMasc,Def> => case role of { - RSubj => DMascDefNom ; - _ => DMascDef - } ; - <DMascPersonal,Indef> => DMascPersonalIndef ; - <DMascPersonal,Def> => case role of { - RSubj => DMascPersonalDefNom ; - _ => DMascPersonalDef - } ; - <DFem ,Indef> => DFemIndef ; - <DFem ,Def> => DFemDef ; - <DNeut,Indef> => DNeutIndef ; - <DNeut,Def> => 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 <numGenNum clitic.agr.gn, clitic.agr.p> of { - <Sg, P3> => clitic.s++auxPres++s ; - _ => auxPres++s++clitic.s - } ; - - li0 = case <verb.ad.isEmpty,q0> of {<False,True> => "ли"; _ => []} ; - - 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 <t,a> of { - <Pres,Simul> => {aux=vf2 clitic.s; main=presentImperf} ; - <Pres,Anter> => {aux=vf1 clitic.s; main=perfect} ; - <Past,Simul> => {aux=vf2 clitic.s; main=aorist} ; - <Past,Anter> => {aux=vf4 auxAorist; main=perfect} ; - <Fut, Simul> => {aux=vf3 clitic.s; main=present} ; - <Fut, Anter> => {aux=vf3 (apc []); main=perfect} ; - <Cond,_ > => {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} ; -} |
