summaryrefslogtreecommitdiff
path: root/old-lib/resource/bulgarian
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-12-09 09:47:16 +0000
committeraarne <aarne@chalmers.se>2009-12-09 09:47:16 +0000
commitc8ceed08efcc0bdc1fcbd89bce643d9f52f0991b (patch)
tree5f0b314341c129eba1bc67b8b887fb8a4486fad8 /old-lib/resource/bulgarian
parent101df06f6c8380328d4266adadac3ab6d1bac0b3 (diff)
moving a few things to deprecated
Diffstat (limited to 'old-lib/resource/bulgarian')
-rw-r--r--old-lib/resource/bulgarian/AdjectiveBul.gf44
-rw-r--r--old-lib/resource/bulgarian/AdverbBul.gf20
-rw-r--r--old-lib/resource/bulgarian/AllBul.gf8
-rw-r--r--old-lib/resource/bulgarian/AllBulAbs.gf8
-rw-r--r--old-lib/resource/bulgarian/CatBul.gf126
-rw-r--r--old-lib/resource/bulgarian/ConjunctionBul.gf56
-rw-r--r--old-lib/resource/bulgarian/ExtraBul.gf68
-rw-r--r--old-lib/resource/bulgarian/ExtraBulAbs.gf33
-rw-r--r--old-lib/resource/bulgarian/GrammarBul.gf23
-rw-r--r--old-lib/resource/bulgarian/IdiomBul.gf65
-rw-r--r--old-lib/resource/bulgarian/LangBul.gf12
-rw-r--r--old-lib/resource/bulgarian/LexiconBul.gf380
-rw-r--r--old-lib/resource/bulgarian/MorphoBul.gf178
-rw-r--r--old-lib/resource/bulgarian/MorphoFunsBul.gf184
-rw-r--r--old-lib/resource/bulgarian/NounBul.gf187
-rw-r--r--old-lib/resource/bulgarian/NumeralBul.gf134
-rw-r--r--old-lib/resource/bulgarian/ParadigmsBul.gf1460
-rw-r--r--old-lib/resource/bulgarian/PhraseBul.gf25
-rw-r--r--old-lib/resource/bulgarian/QuestionBul.gf63
-rw-r--r--old-lib/resource/bulgarian/RelativeBul.gf34
-rw-r--r--old-lib/resource/bulgarian/ResBul.gf626
-rw-r--r--old-lib/resource/bulgarian/SentenceBul.gf72
-rw-r--r--old-lib/resource/bulgarian/StructuralBul.gf122
-rw-r--r--old-lib/resource/bulgarian/TextBul.gf13
-rw-r--r--old-lib/resource/bulgarian/VerbBul.gf92
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} ;
-}