1
0
forked from GitHub/gf-rgl

(Bul) Change encodings from CP1251 to UTF8 (#343)

This commit is contained in:
John J. Camilleri
2020-06-17 09:17:56 +02:00
committed by GitHub
parent 71782b8e04
commit e199fbbb0c
24 changed files with 1911 additions and 1909 deletions

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in { concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
flags coding=cp1251 ; flags coding=utf8 ;
lin lin
PositA a = { PositA a = {
@@ -9,11 +9,11 @@ concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
} ; } ;
ComparA a np = { ComparA a np = {
s = \\aform,_ => "ïî" ++ hyphen ++ a.s ! aform ++ "îò" ++ np.s ! RObj CPrep ; s = \\aform,_ => "по" ++ hyphen ++ a.s ! aform ++ "от" ++ np.s ! RObj CPrep ;
isPre = True isPre = True
} ; } ;
UseComparA a = { UseComparA a = {
s = \\aform,_ => "ïî" ++ hyphen ++ a.s ! aform ; s = \\aform,_ => "по" ++ hyphen ++ a.s ! aform ;
isPre = True isPre = True
} ; } ;
@@ -35,7 +35,7 @@ concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
} ; } ;
ReflA2 a = { ReflA2 a = {
s = \\aform,_ => a.s ! aform ++ linPrep a.c2 ++ ["ñåáå ñè"] ; s = \\aform,_ => a.s ! aform ++ linPrep a.c2 ++ ["себе си"] ;
isPre = False isPre = False
} ; } ;

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in { concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in {
flags coding=cp1251 ; flags coding=utf8 ;
lin lin
PositAdvAdj a = {s = a.adv} ; PositAdvAdj a = {s = a.adv} ;
@@ -8,7 +8,7 @@ concrete AdverbBul of Adverb = CatBul ** open ResBul, Prelude in {
s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ np.s ! RObj CPrep s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ np.s ! RObj CPrep
} ; } ;
ComparAdvAdjS cadv a s = { ComparAdvAdjS cadv a s = {
s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ "êîëêîòî" ++ s.s s = cadv.s ++ a.s ! ASg Neut Indef ++ cadv.p ++ "колкото" ++ s.s
} ; } ;
PrepNP prep np = {s = prep.s ++ np.s ! RObj prep.c} ; PrepNP prep np = {s = prep.s ++ np.s ! RObj prep.c} ;

View File

@@ -4,21 +4,21 @@ concrete CompatibilityBul of Compatibility = CatBul ** open Prelude, ResBul in {
-- from Noun 19/4/2008 -- from Noun 19/4/2008
flags flags
coding = cp1251 ; coding = utf8 ;
lin lin
NumInt n = {s = \\_ => n.s; n = Pl; nonEmpty = True} ; NumInt n = {s = \\_ => n.s; n = Pl; nonEmpty = True} ;
OrdInt n = {s = \\aform => n.s ++ "-" ++ OrdInt n = {s = \\aform => n.s ++ "-" ++
case aform of { case aform of {
ASg Masc Indef => "òè" ; ASg Masc Indef => "ти" ;
ASg Fem Indef => "òà" ; ASg Fem Indef => "та" ;
ASg Neut Indef => "òî" ; ASg Neut Indef => "то" ;
ASg Masc Def => "òèÿ" ; ASg Masc Def => "тия" ;
ASg Fem Def => "òàòà" ; ASg Fem Def => "тата" ;
ASg Neut Def => "òîòî" ; ASg Neut Def => "тото" ;
ASgMascDefNom => "òèÿò" ; ASgMascDefNom => "тият" ;
APl Indef => "òè" ; APl Indef => "ти" ;
APl Def => "òèòå" APl Def => "тите"
} }
} ; } ;

View File

@@ -1,7 +1,7 @@
--# -coding=cp1251 --# -coding=utf8
concrete ConjunctionBul of Conjunction = concrete ConjunctionBul of Conjunction =
CatBul ** open ResBul, Coordination, Prelude, Predef in { CatBul ** open ResBul, Coordination, Prelude, Predef in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all_subs ; flags optimize=all_subs ;

View File

@@ -1,5 +1,7 @@
--# -path=.:../abstract:../common:prelude --# -path=.:../abstract:../common:prelude
concrete ExtendBul of Extend = CatBul ** open Prelude, Predef, ResBul, GrammarBul, MorphoFunsBul in { concrete ExtendBul of Extend = CatBul ** open Prelude, Predef, ResBul, GrammarBul, MorphoFunsBul in {
flags
coding=utf8;
lin lin
GenModNP num np cn = DetCN (DetQuant DefArt num) (AdvCN cn (PrepNP (mkPrep "на") np)) ; GenModNP num np cn = DetCN (DetQuant DefArt num) (AdvCN cn (PrepNP (mkPrep "на") np)) ;

View File

@@ -1,7 +1,7 @@
--# -coding=cp1251 --# -coding=utf8
concrete ExtraBul of ExtraBulAbs = CatBul ** concrete ExtraBul of ExtraBulAbs = CatBul **
open ResBul, MorphoFunsBul, Coordination, Prelude, Predef in { open ResBul, MorphoFunsBul, Coordination, Prelude, Predef in {
flags coding=cp1251 ; flags coding=utf8 ;
lin lin
@@ -30,21 +30,21 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
s = \\t,a,p,agr => slash.c2.s ++ whichRP ! agr.gn ++ slash.s ! agr ! t ! a ! p ! Main s = \\t,a,p,agr => slash.c2.s ++ whichRP ! agr.gn ++ slash.s ! agr ! t ! a ! p ! Main
} ; } ;
i8fem_Pron = mkPron "àç" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Fem) PronP1 ; i8fem_Pron = mkPron "аз" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Fem) PronP1 ;
i8neut_Pron = mkPron "àç" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Neut) PronP1 ; i8neut_Pron = mkPron "аз" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Neut) PronP1 ;
whatSg8fem_IP = mkIP "êàêâà" "êàêâà" (GSg Fem) ; whatSg8fem_IP = mkIP "каква" "каква" (GSg Fem) ;
whatSg8neut_IP = mkIP "êàêâî" "êàêâî" (GSg Neut) ; whatSg8neut_IP = mkIP "какво" "какво" (GSg Neut) ;
whoSg8fem_IP = mkIP "êîÿ" "êîãî" (GSg Fem) ; whoSg8fem_IP = mkIP "коя" "кого" (GSg Fem) ;
whoSg8neut_IP = mkIP "êîå" "êîãî" (GSg Neut) ; whoSg8neut_IP = mkIP "кое" "кого" (GSg Neut) ;
youSg8fem_Pron = mkPron "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Fem) PronP2 ; youSg8fem_Pron = mkPron "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Fem) PronP2 ;
youSg8neut_Pron = mkPron "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Neut) PronP2 ; youSg8neut_Pron = mkPron "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Neut) PronP2 ;
onePl_Num = {s = table { onePl_Num = {s = table {
CFMasc Indef _ | CFFem Indef | CFNeut Indef => "åäíè" ; CFMasc Indef _ | CFFem Indef | CFNeut Indef => "едни" ;
CFMasc Def _ | CFMascDefNom _ | CFFem Def | CFNeut Def => "åäíèòå" CFMasc Def _ | CFMascDefNom _ | CFFem Def | CFNeut Def => "едните"
} ; } ;
nn = NCountable; nn = NCountable;
nonEmpty = True nonEmpty = True
@@ -53,7 +53,7 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
UttImpSg8fem pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ; UttImpSg8fem pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
UttImpSg8neut pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ; UttImpSg8neut pol imp = {s = pol.s ++ imp.s ! pol.p ! GSg Fem} ;
IAdvAdv adv = {s = \\qf => (mkIAdv "êîëêî").s ! qf ++ adv.s} ; IAdvAdv adv = {s = \\qf => (mkIAdv "колко").s ! qf ++ adv.s} ;
lincat lincat
VPI = {s : Agr => Str} ; VPI = {s : Agr => Str} ;
@@ -95,7 +95,7 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe) ; vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe) ;
PassAgentVPSlash vp np = PassAgentVPSlash vp np =
insertObj (\\_ => "îò" ++ np.s ! RObj CPrep) Pos insertObj (\\_ => "от" ++ np.s ! RObj CPrep) Pos
(insertObj (\\a => vp.ad.s ++ vp.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc)) ++ (insertObj (\\a => vp.ad.s ++ vp.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc)) ++
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe)) ; vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe)) ;

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
abstract ExtraBulAbs = Extra ** { abstract ExtraBulAbs = Extra ** {
flags coding=cp1251 ; flags coding=utf8 ;
fun fun

View File

@@ -1,5 +1,5 @@
--# -path=.:../abstract:../common:prelude --# -path=.:../abstract:../common:prelude
--# -coding=cp1251 --# -coding=utf8
concrete GrammarBul of Grammar = concrete GrammarBul of Grammar =
NounBul, NounBul,
@@ -17,7 +17,7 @@ concrete GrammarBul of Grammar =
IdiomBul, IdiomBul,
TenseX - [CAdv,IAdv,AdV,SC] TenseX - [CAdv,IAdv,AdV,SC]
** { ** {
flags coding=cp1251 ; flags coding=utf8 ;
flags startcat = Phr ; unlexer = text ; lexer = text ; flags startcat = Phr ; unlexer = text ; lexer = text ;

View File

@@ -1,19 +1,19 @@
--# -coding=cp1251 --# -coding=utf8
concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in { concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all_subs ; flags optimize=all_subs ;
lin lin
ImpersCl vp = mkClause [] (GSg Neut) (NounP3 Pos) vp ; ImpersCl vp = mkClause [] (GSg Neut) (NounP3 Pos) vp ;
GenericCl vp = mkClause "íÿêîé" (GSg Neut) (NounP3 Pos) vp ; GenericCl vp = mkClause "някой" (GSg Neut) (NounP3 Pos) vp ;
CleftNP np rs = CleftNP np rs =
mkClause (np.s ! RSubj) mkClause (np.s ! RSubj)
(GSg Neut) np.p (GSg Neut) np.p
(insertObj (\\_ => thisRP ! np.gn ++ rs.s ! personAgr np.gn np.p) (personPol np.p) (predV verbBe)) ; (insertObj (\\_ => thisRP ! np.gn ++ rs.s ! personAgr np.gn np.p) (personPol np.p) (predV verbBe)) ;
CleftAdv ad s = {s = \\t,a,p,o => case p of {Pos=>[]; Neg=>"íå"} ++ ad.s ++ s.s } ; CleftAdv ad s = {s = \\t,a,p,o => case p of {Pos=>[]; Neg=>"не"} ++ ad.s ++ s.s } ;
ExistNP np = ExistNPAdv np (lin Adv {s = ""}) ; ExistNP np = ExistNPAdv np (lin Adv {s = ""}) ;
ExistIP ip = ExistIPAdv ip (lin Adv {s = ""}) ; ExistIP ip = ExistIPAdv ip (lin Adv {s = ""}) ;
@@ -21,8 +21,8 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
ExistNPAdv np adv = ExistNPAdv np adv =
{ s = \\t,a,p,o => { s = \\t,a,p,o =>
let verb = case orPol p (personPol np.p) of { let verb = case orPol p (personPol np.p) of {
Pos => mkV186 "èìàì" ; Pos => mkV186 "имам" ;
Neg => mkV186 "íÿìàì" Neg => mkV186 "нямам"
} ; } ;
agr=agrP3 (GSg Neut); agr=agrP3 (GSg Neut);
@@ -42,21 +42,21 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
<Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent <Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent
<Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent <Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent
<Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent <Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
<Fut, Simul> => {aux1="ùå"; aux2=[]; main=present} ; --# notpresent <Fut, Simul> => {aux1="ще"; aux2=[]; main=present} ; --# notpresent
<Fut, Anter> => {aux1="ùå"++auxPres; aux2=[]; main=perfect} ; --# notpresent <Fut, Anter> => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; --# notpresent
<Cond,_> => {aux1=auxCondS; aux2=[]; main=perfect} --# notpresent <Cond,_> => {aux1=auxCondS; aux2=[]; main=perfect} --# notpresent
} ; } ;
in case o of { in case o of {
Main => v.aux1 ++ v.main ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s ; Main => v.aux1 ++ v.main ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s ;
Inv => np.s ! RObj Acc ++ v.aux1 ++ v.main ++ v.aux2 ++ adv.s ; Inv => np.s ! RObj Acc ++ v.aux1 ++ v.main ++ v.aux2 ++ adv.s ;
Quest => v.aux1 ++ v.main ++ "ëè" ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s Quest => v.aux1 ++ v.main ++ "ли" ++ v.aux2 ++ np.s ! RObj Acc ++ adv.s
} }
} ; } ;
ExistIPAdv ip adv = ExistIPAdv ip adv =
mkQuestion {s = ip.s ! RSubj} mkQuestion {s = ip.s ! RSubj}
(mkClause "òóê" ip.gn (NounP3 Pos) (insertObj (\\_ => adv.s) Pos (predV verbBe))) ; (mkClause "тук" ip.gn (NounP3 Pos) (insertObj (\\_ => adv.s) Pos (predV verbBe))) ;
ProgrVP vp = { ProgrVP vp = {
s = \\_ => vp.s ! Imperf ; s = \\_ => vp.s ! Imperf ;
@@ -68,6 +68,6 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
isSimple = False isSimple = False
} ; } ;
ImpPl1 vp = {s = "íåêà" ++ daComplex Simul Pos vp ! Perf ! {gn = GPl ; p = P1}} ; ImpPl1 vp = {s = "нека" ++ daComplex Simul Pos vp ! Perf ! {gn = GPl ; p = P1}} ;
} }

View File

@@ -1,383 +1,383 @@
--# -path=.:prelude --# -path=.:prelude
--# -coding=cp1251 --# -coding=utf8
concrete LexiconBul of Lexicon = CatBul ** concrete LexiconBul of Lexicon = CatBul **
open ParadigmsBul, ResBul, Prelude in { open ParadigmsBul, ResBul, Prelude in {
flags coding=cp1251 ; flags coding=utf8 ;
flags flags
optimize=values ; optimize=values ;
lin lin
airplane_N = mkN007 "ñàìîëåò" ; airplane_N = mkN007 "самолет" ;
answer_V2S = mkV2S (actionV (mkV187 "îòãîâàðÿì") (mkV173 "îòãîâîðÿ")) naP noPrep ; answer_V2S = mkV2S (actionV (mkV187 "отговарям") (mkV173 "отговоря")) naP noPrep ;
apartment_N = mkN007 "àïàðòàìåíò" ; apartment_N = mkN007 "апартамент" ;
apple_N = mkN041 "ÿáúëêà" ; apple_N = mkN041 "ябълка" ;
art_N = mkN054 "èçêóñòâî" ; art_N = mkN054 "изкуство" ;
ask_V2Q = mkV2Q (stateV (mkV186 "ïèòàì")) noPrep noPrep ; ask_V2Q = mkV2Q (stateV (mkV186 "питам")) noPrep noPrep ;
baby_N = mkN065 "áåáå" ; baby_N = mkN065 "бебе" ;
bad_A = mkA076 "ëîø" ; bad_A = mkA076 "лош" ;
bank_N = mkN041 "áàíêà" ; bank_N = mkN041 "банка" ;
beautiful_A = mkA076 "êðàñèâ" ; beautiful_A = mkA076 "красив" ;
become_VA = mkVA (actionV (mkV186 "ñòàâàì") (mkV152 "ñòàíà")) ; become_VA = mkVA (actionV (mkV186 "ставам") (mkV152 "стана")) ;
beer_N = mkN041 "áèðà" ; beer_N = mkN041 "бира" ;
beg_V2V = mkV2V (stateV (mkV173 "ìîëÿ")) noPrep zaP ; beg_V2V = mkV2V (stateV (mkV173 "моля")) noPrep zaP ;
big_A = mkA081 "ãîëÿì" ; big_A = mkA081 "голям" ;
bike_N = mkN061 "êîëåëî" ; bike_N = mkN061 "колело" ;
bird_N = mkN041 "ïòèöà" ; bird_N = mkN041 "птица" ;
black_A = mkA079 "÷åðåí" ; black_A = mkA079 "черен" ;
blue_A = mkA086 "ñèí" ; blue_A = mkA086 "син" ;
boat_N = mkN007 "êîðàá" ; boat_N = mkN007 "кораб" ;
book_N = mkN041 "êíèãà" ; book_N = mkN041 "книга" ;
boot_N = mkN041 "îáóâêà" ; boot_N = mkN041 "обувка" ;
boss_N = mkN001 "øåô" ; boss_N = mkN001 "шеф" ;
boy_N = mkN065 "ìîì÷å" ; boy_N = mkN065 "момче" ;
bread_N = mkN001 "õëÿá" ; bread_N = mkN001 "хляб" ;
break_V2 = dirV2 (actionV (mkV173 "÷óïÿ") (mkV173 "ñ÷óïÿ")) ; break_V2 = dirV2 (actionV (mkV173 "чупя") (mkV173 "счупя")) ;
broad_A = mkA079 "îáøèðåí" ; broad_A = mkA079 "обширен" ;
brother_N2 = prepN2 (mkN025 "áðàò") naP ; brother_N2 = prepN2 (mkN025 "брат") naP ;
brown_A = mkA076 "êàôÿâ" ; brown_A = mkA076 "кафяв" ;
butter_N = mkN054 "ìàñëî" ; butter_N = mkN054 "масло" ;
buy_V2 = dirV2 (actionV (mkV186 "êóïóâàì") (mkV173 "êóïÿ")) ; buy_V2 = dirV2 (actionV (mkV186 "купувам") (mkV173 "купя")) ;
camera_N = mkN041 "êàìåðà" ; camera_N = mkN041 "камера" ;
cap_N = mkN041 "øàïêà" ; cap_N = mkN041 "шапка" ;
car_N = mkN041 "êîëà" ; car_N = mkN041 "кола" ;
carpet_N = mkN007 "êèëèì" ; carpet_N = mkN007 "килим" ;
cat_N = mkN041 "êîòêà" ; cat_N = mkN041 "котка" ;
ceiling_N = mkN007 "òàâàí" ; ceiling_N = mkN007 "таван" ;
chair_N = mkN001 "ñòîë" ; chair_N = mkN001 "стол" ;
cheese_N = mkN066 "ñèðåíå" ; cheese_N = mkN066 "сирене" ;
child_N = mkN067 "äåòå" ; child_N = mkN067 "дете" ;
church_N = mkN041 "öúðêâà" ; church_N = mkN041 "църква" ;
city_N = mkN001 "ãðàä" ; city_N = mkN001 "град" ;
clean_A = mkA076 "÷èñò" ; clean_A = mkA076 "чист" ;
clever_A = mkA079 "óìåí" ; clever_A = mkA079 "умен" ;
close_V2 = dirV2 (actionV (mkV187 "çàòâàðÿì") (mkV173 "çàòâîðÿ")) ; close_V2 = dirV2 (actionV (mkV187 "затварям") (mkV173 "затворя")) ;
coat_N = mkN054 "ïàëòî" ; coat_N = mkN054 "палто" ;
cold_A = mkA076 "ñòóäåí" ; cold_A = mkA076 "студен" ;
come_V = actionV (mkV186 "èäâàì") (table { -- special case "äîéäè", "äîéäåòå" are archaic come_V = actionV (mkV186 "идвам") (table { -- special case "дойди", "дойдете" are archaic
VImperative Sg => "åëà"; VImperative Sg => "ела";
VImperative Pl => "åëàòå"; VImperative Pl => "елате";
vform => mkV146a "äîéäà" ! vform}) ; vform => mkV146a "дойда" ! vform}) ;
computer_N = mkN009 "êîìïþòúð" ; computer_N = mkN009 "компютър" ;
country_N = mkN041 "äúðæàâà" ; country_N = mkN041 "държава" ;
cousin_N = mkN007a "áðàòîâ÷åä" ; cousin_N = mkN007a "братовчед" ;
cow_N = mkN041 "êðàâà" ; cow_N = mkN041 "крава" ;
die_V = actionV (mkV186 "óìèðàì") (mkV150a "óìðà") ; die_V = actionV (mkV186 "умирам") (mkV150a "умра") ;
dirty_A = mkA079 "ìðúñåí" ; dirty_A = mkA079 "мръсен" ;
distance_N3 = prepN3 (mkN072 "ðàçñòîÿíèå") otP doP ; distance_N3 = prepN3 (mkN072 "разстояние") otP doP ;
doctor_N = mkN007a "äîêòîð" ; doctor_N = mkN007a "доктор" ;
dog_N = mkN065 "êó÷å" ; dog_N = mkN065 "куче" ;
door_N = mkN041 "âðàòà" ; door_N = mkN041 "врата" ;
drink_V2 = dirV2 (stateV (mkV163 "ïèÿ")) ; drink_V2 = dirV2 (stateV (mkV163 "пия")) ;
easy_A2V = mkA2V (mkA079 "ëåñåí") zaP ; easy_A2V = mkA2V (mkA079 "лесен") zaP ;
eat_V2 = dirV2 (stateV (mkV169 "ÿì")) ; eat_V2 = dirV2 (stateV (mkV169 "ям")) ;
empty_A = mkA079 "ïðàçåí" ; empty_A = mkA079 "празен" ;
enemy_N = mkN001 "âðàã" ; enemy_N = mkN001 "враг" ;
factory_N = mkN041 "ôàáðèêà" ; factory_N = mkN041 "фабрика" ;
father_N2 = prepN2 (mkN038 "áàùà") naP ; father_N2 = prepN2 (mkN038 "баща") naP ;
fear_VS = mkVS (stateV (mkV186 "ñòðàõóâàì")) ; fear_VS = mkVS (stateV (mkV186 "страхувам")) ;
find_V2 = dirV2 (actionV (mkV186 "íàìèðàì") (mkV173 "íàìåðÿ")) ; find_V2 = dirV2 (actionV (mkV186 "намирам") (mkV173 "намеря")) ;
fish_N = mkN041 "ðèáà" ; fish_N = mkN041 "риба" ;
floor_N = mkN007 "åòàæ" ; floor_N = mkN007 "етаж" ;
fridge_N = mkN007 "ôðèçåð" ; fridge_N = mkN007 "фризер" ;
friend_N = mkN031a "ïðèÿòåë" ; friend_N = mkN031a "приятел" ;
fruit_N = mkN001 "ïëîä" ; fruit_N = mkN001 "плод" ;
fun_AV = mkA079 "çàáàâåí" ; fun_AV = mkA079 "забавен" ;
forget_V2 = dirV2 (actionV (mkV187 "çàáðàâÿì") (mkV173 "çàáðàâÿ")) ; forget_V2 = dirV2 (actionV (mkV187 "забравям") (mkV173 "забравя")) ;
garden_N = mkN041 "ãðàäèíà" ; garden_N = mkN041 "градина" ;
girl_N = mkN065 "ìîìè÷å" ; girl_N = mkN065 "момиче" ;
glove_N = mkN041 "ðúêàâèöà" ; glove_N = mkN041 "ръкавица" ;
gold_N = mkN054 "çëàòî" ; gold_N = mkN054 "злато" ;
good_A = adjAdv (mkA080 "äîáúð") "äîáðå" ; good_A = adjAdv (mkA080 "добър") "добре" ;
go_V = actionV (mkV186 "îòèâàì") (mkV146 "îòèäà") ; go_V = actionV (mkV186 "отивам") (mkV146 "отида") ;
green_A = mkA076 "çåëåí" ; green_A = mkA076 "зелен" ;
harbour_N = mkN066 "ïðèñòàíèùå" ; harbour_N = mkN066 "пристанище" ;
hate_V2 = dirV2 (stateV (mkV173 "ìðàçÿ")) ; hate_V2 = dirV2 (stateV (mkV173 "мразя")) ;
hat_N = mkN041 "øàïêà" ; hat_N = mkN041 "шапка" ;
hear_V2 = dirV2 (actionV (mkV186 "÷óâàì") (mkV163 "÷óÿ")) ; hear_V2 = dirV2 (actionV (mkV186 "чувам") (mkV163 "чуя")) ;
hill_N = mkN001 "õúëì" ; hill_N = mkN001 "хълм" ;
hope_VS = mkVS (medialV (stateV (mkV186 "íàäÿâàì")) Acc) ; hope_VS = mkVS (medialV (stateV (mkV186 "надявам")) Acc) ;
horse_N = mkN035 "êîí" ; horse_N = mkN035 "кон" ;
hot_A = mkA076 "ãîðåù" ; hot_A = mkA076 "горещ" ;
house_N = mkN041 "êúùà" ; house_N = mkN041 "къща" ;
important_A = mkA079 "âàæåí" ; important_A = mkA079 "важен" ;
industry_N = mkN047 "èíäóñòðèÿ" ; industry_N = mkN047 "индустрия" ;
iron_N = mkN057 "æåëÿçî" ; iron_N = mkN057 "желязо" ;
king_N = mkN035a "öàð" ; king_N = mkN035a "цар" ;
know_V2 = dirV2 { know_V2 = dirV2 {
s = \\_,vform => case vform of { s = \\_,vform => case vform of {
VPassive aform => (mkA079 "èçâåñòåí").s ! aform ; VPassive aform => (mkA079 "известен").s ! aform ;
_ => mkV162 "çíàÿ" ! vform _ => mkV162 "зная" ! vform
} ; } ;
vtype = VNormal ; vtype = VNormal ;
lock_V = <> lock_V = <>
} ; } ;
know_VQ = mkVQ (actionV (mkV188 "çíàì") (mkV162 "çíàÿ")) ; know_VQ = mkVQ (actionV (mkV188 "знам") (mkV162 "зная")) ;
know_VS = mkVS (actionV (mkV188 "çíàì") (mkV162 "çíàÿ")) ; know_VS = mkVS (actionV (mkV188 "знам") (mkV162 "зная")) ;
lake_N = mkN054 "åçåðî" ; lake_N = mkN054 "езеро" ;
lamp_N = mkN041 "ëàìïà" ; lamp_N = mkN041 "лампа" ;
learn_V2 = dirV2 (actionV (mkV176 "ó÷à") (mkV176 "íàó÷à")) ; learn_V2 = dirV2 (actionV (mkV176 "уча") (mkV176 "науча")) ;
leather_N = mkN041 "êîæà" ; leather_N = mkN041 "кожа" ;
leave_V2 = dirV2 (actionV (mkV187 "îñòàâÿì") (mkV173 "îñòàâÿ")) ; leave_V2 = dirV2 (actionV (mkV187 "оставям") (mkV173 "оставя")) ;
like_V2 = dirV2 (actionV (mkV186 "õàðåñâàì") (mkV186 "õàðåñàì")) ; like_V2 = dirV2 (actionV (mkV186 "харесвам") (mkV186 "харесам")) ;
listen_V2 = dirV2 (stateV (mkV186 "ñëóøàì")) ; listen_V2 = dirV2 (stateV (mkV186 "слушам")) ;
live_V = stateV (mkV160 "æèâåÿ") ; live_V = stateV (mkV160 "живея") ;
long_A = mkA080 "äúëúã" ; long_A = mkA080 "дълъг" ;
lose_V2 = dirV2 (actionV (mkV173 "ãóáÿ") (mkV173 "çàãóáÿ")) ; lose_V2 = dirV2 (actionV (mkV173 "губя") (mkV173 "загубя")) ;
love_N = mkN049 "ëþáîâ" ; love_N = mkN049 "любов" ;
love_V2 = dirV2 (stateV (mkV186 "îáè÷àì")) ; love_V2 = dirV2 (stateV (mkV186 "обичам")) ;
man_N = mkN024 "ìúæ" ; man_N = mkN024 "мъж" ;
married_A2 = mkA2 (mkA076 "æåíåí") zaP ; married_A2 = mkA2 (mkA076 "женен") zaP ;
meat_N = mkN054 "ìåñî" ; meat_N = mkN054 "месо" ;
milk_N = mkN057 "ìëÿêî" ; milk_N = mkN057 "мляко" ;
moon_N = mkN041 "ëóíà" ; moon_N = mkN041 "луна" ;
mother_N2 = prepN2 (mkN041a "ìàéêà") naP ; mother_N2 = prepN2 (mkN041a "майка") naP ;
mountain_N = mkN041 "ïëàíèíà" ; mountain_N = mkN041 "планина" ;
music_N = mkN041 "ìóçèêà" ; music_N = mkN041 "музика" ;
narrow_A = mkA084 "òåñåí" ; narrow_A = mkA084 "тесен" ;
new_A = mkA076 "íîâ" ; new_A = mkA076 "нов" ;
newspaper_N = mkN014 "âåñòíèê" ; newspaper_N = mkN014 "вестник" ;
oil_N = mkN065 "îëèî" ; oil_N = mkN065 "олио" ;
old_A = mkA076 "ñòàð" ; old_A = mkA076 "стар" ;
open_V2 = dirV2 (actionV (mkV187 "îòâàðÿì") (mkV173 "îòâîðÿ")) ; open_V2 = dirV2 (actionV (mkV187 "отварям") (mkV173 "отворя")) ;
paint_V2A = mkV2A (actionV (mkV186 "ðèñóâàì") (mkV186 "íàðèñóâàì")) noPrep ; paint_V2A = mkV2A (actionV (mkV186 "рисувам") (mkV186 "нарисувам")) noPrep ;
paper_N = mkN047 "õàðòèÿ" ; paper_N = mkN047 "хартия" ;
paris_PN = mkPN "Ïàðèæ" Masc ; paris_PN = mkPN "Париж" Masc ;
peace_N = mkN040a "ìèð" ; peace_N = mkN040a "мир" ;
pen_N = mkN041 "ïèñàëêà" ; pen_N = mkN041 "писалка" ;
planet_N = mkN041 "ïëàíåòà" ; planet_N = mkN041 "планета" ;
plastic_N = mkN041 "ïëàñòìàñà" ; plastic_N = mkN041 "пластмаса" ;
play_V2 = dirV2 (stateV (mkV161 "èãðàÿ")) ; play_V2 = dirV2 (stateV (mkV161 "играя")) ;
policeman_N = mkN032a "ïîëèöàé" ; policeman_N = mkN032a "полицай" ;
priest_N = mkN014 "ñâåùåíèê" ; priest_N = mkN014 "свещеник" ;
probable_AS = mkA079 "âåðîÿòåí" ; probable_AS = mkA079 "вероятен" ;
queen_N = mkN041 "êðàëèöà" ; queen_N = mkN041 "кралица" ;
radio_N = mkN054 "ðàäèî" ; radio_N = mkN054 "радио" ;
rain_V0 = mkV0 (stateV (mkV174 "âàëè")) ; rain_V0 = mkV0 (stateV (mkV174 "вали")) ;
read_V2 = dirV2 (stateV (mkV145 "÷åòà")) ; read_V2 = dirV2 (stateV (mkV145 "чета")) ;
red_A = mkA076 "÷åðâåí" ; red_A = mkA076 "червен" ;
religion_N = mkN047 "ðåëèãèÿ" ; religion_N = mkN047 "религия" ;
restaurant_N = mkN007 "ðåñòîðàíò" ; restaurant_N = mkN007 "ресторант" ;
river_N = mkN041 "ðåêà" ; river_N = mkN041 "река" ;
rock_N = mkN041 "ñêàëà" ; rock_N = mkN041 "скала" ;
roof_N = mkN007 "ïîêðèâ" ; roof_N = mkN007 "покрив" ;
rubber_N = mkN041 "ãóìà" ; rubber_N = mkN041 "гума" ;
run_V = stateV (mkV186 "áÿãàì") ; run_V = stateV (mkV186 "бягам") ;
say_VS = mkVS (actionV (mkV186 "êàçâàì") (mkV156 "êàæà")) ; say_VS = mkVS (actionV (mkV186 "казвам") (mkV156 "кажа")) ;
school_N = mkN066 "ó÷èëèùå" ; school_N = mkN066 "училище" ;
science_N = mkN041 "íàóêà" ; science_N = mkN041 "наука" ;
sea_N = mkN065 "ìîðå" ; sea_N = mkN065 "море" ;
seek_V2 = dirV2 (stateV (mkV173 "òúðñÿ")) ; seek_V2 = dirV2 (stateV (mkV173 "търся")) ;
see_V2 = dirV2 (actionV (mkV186 "âèæäàì") (mkV181 "âèäÿ")) ; see_V2 = dirV2 (actionV (mkV186 "виждам") (mkV181 "видя")) ;
sell_V3 = dirV3 (stateV (mkV186 "ïðîäàâàì")) naP ; sell_V3 = dirV3 (stateV (mkV186 "продавам")) naP ;
send_V3 = dirV3 (actionV (mkV186 "ïðàùàì") (mkV173 "ïðàòÿ")) doP ; send_V3 = dirV3 (actionV (mkV186 "пращам") (mkV173 "пратя")) doP ;
sheep_N = mkN044 "îâöà" ; sheep_N = mkN044 "овца" ;
ship_N = mkN007 "êîðàá" ; ship_N = mkN007 "кораб" ;
shirt_N = mkN041 "ðèçà" ; shirt_N = mkN041 "риза" ;
shoe_N = mkN041 "îáóâêà" ; shoe_N = mkN041 "обувка" ;
shop_N = mkN007 "ìàãàçèí" ; shop_N = mkN007 "магазин" ;
short_A = mkA076 "êúñ" ; short_A = mkA076 "къс" ;
silver_N = mkN054 "ñðåáðî" ; silver_N = mkN054 "сребро" ;
sister_N = mkN041a "ñåñòðà" ; sister_N = mkN041a "сестра" ;
sleep_V = stateV (mkV182 "ñïÿ") ; sleep_V = stateV (mkV182 "спя") ;
small_A = mkA080 "ìàëúê" ; small_A = mkA080 "малък" ;
snake_N = mkN047 "çìèÿ" ; snake_N = mkN047 "змия" ;
sock_N = mkN007 "÷îðàï" ; sock_N = mkN007 "чорап" ;
speak_V2 = dirV2 (stateV (mkV173 "ãîâîðÿ")) ; speak_V2 = dirV2 (stateV (mkV173 "говоря")) ;
star_N = mkN041 "çâåçäà" ; star_N = mkN041 "звезда" ;
steel_N = mkN041 "ñòîìàíà" ; steel_N = mkN041 "стомана" ;
stone_N = mkN017 "êàìúê" ; stone_N = mkN017 "камък" ;
stove_N = mkN041 "ïå÷êà" ; stove_N = mkN041 "печка" ;
student_N = mkN007a "ñòóäåíò" ; student_N = mkN007a "студент" ;
stupid_A = mkA076 "ãëóïàâ" ; stupid_A = mkA076 "глупав" ;
sun_N = mkN066 "ñëúíöå" ; sun_N = mkN066 "слънце" ;
switch8off_V2 = dirV2 (actionV (mkV186 "èçêëþ÷âàì") (mkV176 "èçêëþ÷à")) ; switch8off_V2 = dirV2 (actionV (mkV186 "изключвам") (mkV176 "изключа")) ;
switch8on_V2 = dirV2 (actionV (mkV186 "âêëþ÷âàì") (mkV176 "âêëþ÷à")) ; switch8on_V2 = dirV2 (actionV (mkV186 "включвам") (mkV176 "включа")) ;
table_N = mkN041 "ìàñà" ; table_N = mkN041 "маса" ;
talk_V3 = mkV3 (stateV (mkV173 "ãîâîðÿ")) naP zaP ; talk_V3 = mkV3 (stateV (mkV173 "говоря")) naP zaP ;
teacher_N = mkN031a "ó÷èòåë" ; teacher_N = mkN031a "учител" ;
teach_V2 = dirV2 (actionV (mkV186 "ïðåïîäàâàì") (mkV168 "ïðåïîäàì")) ; teach_V2 = dirV2 (actionV (mkV186 "преподавам") (mkV168 "преподам")) ;
television_N = mkN047 "òåëåâèçèÿ" ; television_N = mkN047 "телевизия" ;
thick_A = mkA076 "äåáåë" ; thick_A = mkA076 "дебел" ;
thin_A = mkA080 "òúíúê" ; thin_A = mkA080 "тънък" ;
train_N = mkN001 "âëàê" ; train_N = mkN001 "влак" ;
travel_V = stateV (mkV186 "ïúòóâàì") ; travel_V = stateV (mkV186 "пътувам") ;
tree_N = mkN061 "äúðâî" ; tree_N = mkN061 "дърво" ;
ugly_A = mkA076 "ãëóïàâ" ; ugly_A = mkA076 "глупав" ;
understand_V2 = dirV2 (actionV (mkV186 "ðàçáèðàì") (mkV170 "ðàçáåðà")) ; understand_V2 = dirV2 (actionV (mkV186 "разбирам") (mkV170 "разбера")) ;
university_N = mkN007 "óíèâåðñèòåò" ; university_N = mkN007 "университет" ;
village_N = mkN054 "ñåëî" ; village_N = mkN054 "село" ;
wait_V2 = prepV2 (stateV (mkV186 "÷àêàì")) zaP ; wait_V2 = prepV2 (stateV (mkV186 "чакам")) zaP ;
walk_V = stateV (mkV173 "õîäÿ") ; walk_V = stateV (mkV173 "ходя") ;
warm_A = mkA080 "òîïúë" ; warm_A = mkA080 "топъл" ;
war_N = mkN041 "âîéíà" ; war_N = mkN041 "война" ;
watch_V2 = dirV2 (stateV (mkV186 "ãëåäàì")) ; watch_V2 = dirV2 (stateV (mkV186 "гледам")) ;
water_N = mkN041 "âîäà" ; water_N = mkN041 "вода" ;
white_A = mkA081 "áÿë" ; white_A = mkA081 "бял" ;
window_N = mkN008 "ïðîçîðåö" ; window_N = mkN008 "прозорец" ;
wine_N = mkN054 "âèíî" ; wine_N = mkN054 "вино" ;
win_V2 = dirV2 (actionV (mkV186 "ïîáåæäàâàì") (mkV174 "ïîáåäÿ")) ; win_V2 = dirV2 (actionV (mkV186 "побеждавам") (mkV174 "победя")) ;
woman_N = mkN041a "æåíà" ; woman_N = mkN041a "жена" ;
wonder_VQ = mkVQ (medialV (actionV (mkV186 "ó÷óäâàì") (mkV173 "÷óäÿ")) Acc) ; wonder_VQ = mkVQ (medialV (actionV (mkV186 "учудвам") (mkV173 "чудя")) Acc) ;
wood_N = mkN041 "äúðâåñèíà" ; wood_N = mkN041 "дървесина" ;
write_V2 = dirV2 (stateV (mkV159 "ïèøà")) ; write_V2 = dirV2 (stateV (mkV159 "пиша")) ;
yellow_A = mkA076 "æúëò" ; yellow_A = mkA076 "жълт" ;
young_A = mkA076 "ìëàä" ; young_A = mkA076 "млад" ;
do_V2 = dirV2 (actionV (mkV173 "ïðàâÿ") (mkV173 "íàïðàâÿ")) ; do_V2 = dirV2 (actionV (mkV173 "правя") (mkV173 "направя")) ;
now_Adv = mkAdv "ñåãà" ; now_Adv = mkAdv "сега" ;
already_Adv = mkAdv "âå÷å" ; already_Adv = mkAdv "вече" ;
song_N = mkN050 "ïåñåí" ; song_N = mkN050 "песен" ;
add_V3 = dirV3 (actionV (mkV186 "ñúáèðàì") (mkV170 "ñúáåðà")) sP ; add_V3 = dirV3 (actionV (mkV186 "събирам") (mkV170 "събера")) sP ;
number_N = mkN054 "÷èñëî" ; number_N = mkN054 "число" ;
put_V2 = prepV2 (actionV (mkV186 "ñëàãàì") (mkV176 "ñëîæà")) noPrep ; put_V2 = prepV2 (actionV (mkV186 "слагам") (mkV176 "сложа")) noPrep ;
stop_V = actionV (mkV186 "ñïèðàì") (mkV150 "ñïðà") ; stop_V = actionV (mkV186 "спирам") (mkV150 "спра") ;
jump_V = actionV (mkV186 "ñêà÷àì") (mkV176 "ñêî÷à") ; jump_V = actionV (mkV186 "скачам") (mkV176 "скоча") ;
left_Ord = mkA081 "ëÿâ" ** {nonEmpty=True} ; left_Ord = mkA081 "ляв" ** {nonEmpty=True} ;
right_Ord = mkA084 "äåñåí" ** {nonEmpty=True} ; right_Ord = mkA084 "десен" ** {nonEmpty=True} ;
far_Adv = mkAdv "äàëå÷å" ; far_Adv = mkAdv "далече" ;
correct_A = mkA079 "ïðàâèëåí" ; correct_A = mkA079 "правилен" ;
dry_A = mkA076 "ñóõ" ; dry_A = mkA076 "сух" ;
dull_A = mkA076 "òúï" ; dull_A = mkA076 "тъп" ;
full_A = mkA079 "ïúëåí" ; full_A = mkA079 "пълен" ;
heavy_A = mkA080 "òåæúê" ; heavy_A = mkA080 "тежък" ;
near_A = mkA080 "áëèçúê" ; near_A = mkA080 "близък" ;
rotten_A = mkA076 "ïðîãíèë" ; rotten_A = mkA076 "прогнил" ;
round_A = mkA080 "êðúãúë" ; round_A = mkA080 "кръгъл" ;
sharp_A = mkA080 "îñòúð" ; sharp_A = mkA080 "остър" ;
smooth_A = mkA080 "ãëàäúê" ; smooth_A = mkA080 "гладък" ;
straight_A = mkA081 "ïðÿê" ; straight_A = mkA081 "пряк" ;
wet_A = mkA080 "ìîêúð" ; ---- wet_A = mkA080 "мокър" ; ----
wide_A = mkA076 "øèðîê" ; wide_A = mkA076 "широк" ;
animal_N = mkN062 "æèâîòíî" ; animal_N = mkN062 "животно" ;
ashes_N = mkN049 "ïåïeë" ; ashes_N = mkN049 "пепeл" ;
back_N = mkN003 "ãðúá" ; back_N = mkN003 "гръб" ;
bark_N = mkN028 "ëàé" ; bark_N = mkN028 "лай" ;
belly_N = mkN007 "êîðåì" ; belly_N = mkN007 "корем" ;
blood_N = mkN053 "êðúâ" ; blood_N = mkN053 "кръв" ;
bone_N = mkN049 "êîñò" ; bone_N = mkN049 "кост" ;
breast_N = mkN041 "ãúðäà" ; breast_N = mkN041 "гърда" ;
cloud_N = mkN014 "îáëàê" ; cloud_N = mkN014 "облак" ;
day_N = mkN033 "äåí" ; day_N = mkN033 "ден" ;
dust_N = mkN001 "ïðàõ" ; dust_N = mkN001 "прах" ;
ear_N = mkN064 "óõî" ; ear_N = mkN064 "ухо" ;
earth_N = mkN047 "çåìÿ" ; earth_N = mkN047 "земя" ;
egg_N = mkN066 "ÿéöå" ; egg_N = mkN066 "яйце" ;
eye_N = mkN063 "îêî" ; eye_N = mkN063 "око" ;
fat_N = mkN041 "ìàçíèíà" ; fat_N = mkN041 "мазнина" ;
feather_N = mkN054 "ïåðî" ; feather_N = mkN054 "перо" ;
fingernail_N = mkN034 "íîêúò" ; fingernail_N = mkN034 "нокът" ;
fire_N = mkN030 "îãúí" ; fire_N = mkN030 "огън" ;
flower_N = mkN068 "öâåòå" ; flower_N = mkN068 "цвете" ;
fog_N = mkN041 "ìúãëà" ; fog_N = mkN041 "мъгла" ;
foot_N = mkN041 "ñòúïêà" ; foot_N = mkN041 "стъпка" ;
forest_N = mkN041 "ãîðà" ; forest_N = mkN041 "гора" ;
grass_N = mkN041 "òðåâà" ; grass_N = mkN041 "трева" ;
guts_N = mkN054 "÷åðâî" ; guts_N = mkN054 "черво" ;
hair_N = mkN041 "êîñà" ; hair_N = mkN041 "коса" ;
hand_N = mkN045 "ðúêà" ; hand_N = mkN045 "ръка" ;
head_N = mkN041 "ãëàâà" ; head_N = mkN041 "глава" ;
heart_N = mkN066 "ñúðöå" ; heart_N = mkN066 "сърце" ;
horn_N = mkN001 "ðîã" ; horn_N = mkN001 "рог" ;
husband_N = mkN015 "ñúïðóã" ; -- personal husband_N = mkN015 "съпруг" ; -- personal
ice_N = mkN001 "ëåä" ; ice_N = mkN001 "лед" ;
knee_N = mkN058 "êîëÿíî" ; knee_N = mkN058 "коляно" ;
leaf_N = mkN054 "ëèñòî" ; leaf_N = mkN054 "листо" ;
leg_N = mkN022 "êðàê" ; leg_N = mkN022 "крак" ;
liver_N = mkN001 "äðîá" ; liver_N = mkN001 "дроб" ;
louse_N = mkN041 "âúøêà" ; louse_N = mkN041 "въшка" ;
mouth_N = mkN042 "óñòà" ; mouth_N = mkN042 "уста" ;
name_N = mkN069 "èìå" ; name_N = mkN069 "име" ;
neck_N = mkN003 "ãðúá" ; neck_N = mkN003 "гръб" ;
night_N = mkN049 "íîù" ; night_N = mkN049 "нощ" ;
nose_N = mkN001 "íîñ" ; nose_N = mkN001 "нос" ;
person_N = mkN014 "÷îâåê" ; person_N = mkN014 "човек" ;
rain_N = mkN001 "äúæä" ; rain_N = mkN001 "дъжд" ;
road_N = mkN037 "ïúò" ; road_N = mkN037 "път" ;
root_N = mkN007 "êîðåí" ; root_N = mkN007 "корен" ;
rope_N = mkN065 "âúæå" ; rope_N = mkN065 "въже" ;
salt_N = mkN049 "ñîë" ; salt_N = mkN049 "сол" ;
sand_N = mkN014 "ïÿñúê" ; sand_N = mkN014 "пясък" ;
seed_N = mkN069 "ñåìå" ; seed_N = mkN069 "семе" ;
skin_N = mkN041 "êîæà" ; skin_N = mkN041 "кожа" ;
sky_N = mkN070 "íåáå" ; sky_N = mkN070 "небе" ;
smoke_N = mkN014 "ïóøåê" ; smoke_N = mkN014 "пушек" ;
snow_N = mkN002 "ñíÿã" ; snow_N = mkN002 "сняг" ;
stick_N = mkN041 "ïðú÷êà" ; stick_N = mkN041 "пръчка" ;
tail_N = mkN041 "îïàøêà" ; tail_N = mkN041 "опашка" ;
tongue_N = mkN014 "åçèê" ; tongue_N = mkN014 "език" ;
tooth_N = mkN007 "çúá" ; tooth_N = mkN007 "зъб" ;
wife_N = mkN041 "ñúïðóãà" ; wife_N = mkN041 "съпруга" ;
wind_N = mkN004 "âÿòúð" ; wind_N = mkN004 "вятър" ;
wing_N = mkN056 "êðèëî" ; wing_N = mkN056 "крило" ;
worm_N = mkN032 "÷åðâåé" ; worm_N = mkN032 "червей" ;
year_N = mkN041 "ãîäèíà" ; year_N = mkN041 "година" ;
blow_V = stateV (mkV186 "äóõàì") ; blow_V = stateV (mkV186 "духам") ;
breathe_V = dirV2 (stateV (mkV186 "äèøàì")) ; breathe_V = dirV2 (stateV (mkV186 "дишам")) ;
burn_V = actionV (mkV187 "èçãàðÿì") (mkV177 "èçãîðÿ") ; burn_V = actionV (mkV187 "изгарям") (mkV177 "изгоря") ;
dig_V = stateV (mkV161 "êîïàÿ") ; dig_V = stateV (mkV161 "копая") ;
fall_V = actionV (mkV186 "ïàäàì") (mkV152 "ïàäíà") ; fall_V = actionV (mkV186 "падам") (mkV152 "падна") ;
float_V = stateV (mkV186 "ïëàâàì") ; float_V = stateV (mkV186 "плавам") ;
flow_V = stateV (mkV148 "òåêà") ; flow_V = stateV (mkV148 "тека") ;
fly_V = stateV (mkV177 "ëåòÿ") ; fly_V = stateV (mkV177 "летя") ;
freeze_V = stateV (mkV186 "çàìðúçâàì") ; freeze_V = stateV (mkV186 "замръзвам") ;
give_V3 = dirV3 (actionV (mkV186 "äàâàì") (mkV186 "äàì")) naP ; give_V3 = dirV3 (actionV (mkV186 "давам") (mkV186 "дам")) naP ;
laugh_V = medialV (stateV (mkV160 "ñìåÿ")) Acc ; laugh_V = medialV (stateV (mkV160 "смея")) Acc ;
lie_V = stateV (mkV178 "ëåæà") ; lie_V = stateV (mkV178 "лежа") ;
play_V = stateV (mkV161 "èãðàÿ") ; play_V = stateV (mkV161 "играя") ;
sew_V = stateV (mkV163 "øèÿ") ; sew_V = stateV (mkV163 "шия") ;
sing_V = stateV (mkV164 "ïåÿ") ; sing_V = stateV (mkV164 "пея") ;
sit_V = stateV (mkV177 "ñåäÿ") ; sit_V = stateV (mkV177 "седя") ;
smell_V = stateV (mkV159 "ìèðèøà") ; smell_V = stateV (mkV159 "мириша") ;
spit_V = stateV (mkV163 "ïëþÿ") ; spit_V = stateV (mkV163 "плюя") ;
stand_V = stateV (mkV180 "ñòîÿ") ; stand_V = stateV (mkV180 "стоя") ;
swell_V = actionV (mkV186 "íàäóâàì") (mkV163 "íàäóÿ") ; swell_V = actionV (mkV186 "надувам") (mkV163 "надуя") ;
swim_V = stateV (mkV186 "ïëóâàì") ; swim_V = stateV (mkV186 "плувам") ;
think_V = stateV (mkV173 "ìèñëÿ") ; think_V = stateV (mkV173 "мисля") ;
turn_V = actionV (mkV186 "îáðúùàì") (mkV152 "îáúðíà") ; turn_V = actionV (mkV186 "обръщам") (mkV152 "обърна") ;
vomit_V = actionV (mkV186 "ïîâðúùàì") (mkV152 "ïîâúðíà") ; vomit_V = actionV (mkV186 "повръщам") (mkV152 "повърна") ;
bite_V2 = dirV2 (stateV (mkV154 "õàïÿ")) ; bite_V2 = dirV2 (stateV (mkV154 "хапя")) ;
count_V2 = dirV2 (stateV (mkV175 "áðîÿ")) ; count_V2 = dirV2 (stateV (mkV175 "броя")) ;
cut_V2 = dirV2 (stateV (mkV157 "ðåæà")) ; cut_V2 = dirV2 (stateV (mkV157 "режа")) ;
fear_V2 = prepV2 (medialV (stateV (mkV186 "ñòðàõóâàì")) Acc) otP; fear_V2 = prepV2 (medialV (stateV (mkV186 "страхувам")) Acc) otP;
fight_V2 = prepV2 (medialV (stateV (mkV173 "áîðÿ")) Acc) sP; fight_V2 = prepV2 (medialV (stateV (mkV173 "боря")) Acc) sP;
hit_V2 = dirV2 (actionV (mkV187 "óäðÿì") (mkV173 "óäàðÿ")) ; hit_V2 = dirV2 (actionV (mkV187 "удрям") (mkV173 "ударя")) ;
hold_V2 = dirV2 (stateV (mkV179 "äúðæà")) ; hold_V2 = dirV2 (stateV (mkV179 "държа")) ;
hunt_V2 = dirV2 (stateV (mkV174 "ëîâÿ")) ; hunt_V2 = dirV2 (stateV (mkV174 "ловя")) ;
kill_V2 = dirV2 (actionV (mkV186 "óáèâàì") (mkV163 "óáèÿ")) ; kill_V2 = dirV2 (actionV (mkV186 "убивам") (mkV163 "убия")) ;
pull_V2 = dirV2 (stateV (mkV186 "äúðïàì")) ; pull_V2 = dirV2 (stateV (mkV186 "дърпам")) ;
push_V2 = dirV2 (stateV (mkV186 "áóòàì")) ; push_V2 = dirV2 (stateV (mkV186 "бутам")) ;
rub_V2 = dirV2 (stateV (mkV163 "òðèÿ")) ; rub_V2 = dirV2 (stateV (mkV163 "трия")) ;
scratch_V2 = dirV2 (actionV (mkV186 "äðàñêàì") (mkV152 "äðàñíà")) ; scratch_V2 = dirV2 (actionV (mkV186 "драскам") (mkV152 "драсна")) ;
split_V2 = dirV2 (actionV (mkV187 "ðàçäåëÿì") (mkV174 "ðàçäåëÿ")) ; split_V2 = dirV2 (actionV (mkV187 "разделям") (mkV174 "разделя")) ;
squeeze_V2 = dirV2 (actionV (mkV186 "ñòèñêàì") (mkV152 "ñòèñíà")) ; squeeze_V2 = dirV2 (actionV (mkV186 "стискам") (mkV152 "стисна")) ;
stab_V2 = dirV2 (actionV (mkV186 "ïðîìóøâàì") (mkV176 "ïðîìóøà")) ; stab_V2 = dirV2 (actionV (mkV186 "промушвам") (mkV176 "промуша")) ;
suck_V2 = dirV2 (stateV (mkV155 "ñó÷à")) ; suck_V2 = dirV2 (stateV (mkV155 "суча")) ;
throw_V2 = dirV2 (actionV (mkV187 "õâúðëÿì") (mkV173 "õâúðëÿ")) ; throw_V2 = dirV2 (actionV (mkV187 "хвърлям") (mkV173 "хвърля")) ;
tie_V2 = dirV2 (actionV (mkV186 "âðúçâàì") (mkV156 "âúðæà")) ; tie_V2 = dirV2 (actionV (mkV186 "връзвам") (mkV156 "вържа")) ;
wash_V2 = dirV2 (stateV (mkV163 "ìèÿ")) ; wash_V2 = dirV2 (stateV (mkV163 "мия")) ;
wipe_V2 = dirV2 (stateV (mkV159 "áúðøà")) ; wipe_V2 = dirV2 (stateV (mkV159 "бърша")) ;
grammar_N = mkN041 "ãðàìàòèêà" ; grammar_N = mkN041 "граматика" ;
language_N = mkN014 "åçèê" ; language_N = mkN014 "език" ;
rule_N = mkN054 "ïðàâèëî" ; rule_N = mkN054 "правило" ;
john_PN = mkPN "Äæîí" Masc ; john_PN = mkPN "Джон" Masc ;
question_N = mkN007 "âúïðîñ" ; question_N = mkN007 "въпрос" ;
ready_A = mkA076 "ãîòîâ" ; ready_A = mkA076 "готов" ;
reason_N = mkN041 "ïðè÷èíà" ; reason_N = mkN041 "причина" ;
today_Adv = mkAdv "äíåñ" ; today_Adv = mkAdv "днес" ;
uncertain_A = mkA079 "íåÿñåí" ; uncertain_A = mkA079 "неясен" ;
oper oper
zaP = mkPrep "çà" Acc ; zaP = mkPrep "за" Acc ;
naP = mkPrep [] Dat ; naP = mkPrep [] Dat ;
otP = mkPrep "îò" Acc ; otP = mkPrep "от" Acc ;
doP = mkPrep "äî" Acc ; doP = mkPrep "до" Acc ;
sP = mkPrep (pre { "ñ" ; sP = mkPrep (pre { "с" ;
"ñúñ" / strs {"ñ" ; "ç" ; "Ñ" ; "Ç"} "със" / strs {"с" ; "з" ; "С" ; "З"}
}) Acc ; }) Acc ;
} ; } ;

View File

@@ -1,5 +1,5 @@
--# -path=.:../../prelude --# -path=.:../../prelude
--# -coding=cp1251 --# -coding=utf8
--1 A Simple English Resource Morphology --1 A Simple English Resource Morphology
-- --
@@ -14,7 +14,7 @@ resource MorphoBul = ResBul ** open
Prelude, Prelude,
CatBul CatBul
in { in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all ; flags optimize=all ;
@@ -95,73 +95,73 @@ oper
\cheta,chete,chetoh,chetqh,chel,chetql,cheten,chetqst,cheti,chetene -> \cheta,chete,chetoh,chetqh,chel,chetql,cheten,chetqst,cheti,chetene ->
table { table {
VPres Sg P1 => cheta; VPres Sg P1 => cheta;
VPres Sg P2 => chete + "ø"; VPres Sg P2 => chete + "ш";
VPres Sg P3 => chete; VPres Sg P3 => chete;
VPres Pl P1 => case chete of { VPres Pl P1 => case chete of {
_ + ("à"|"ÿ") => chete + "ìå"; _ + ("а"|"я") => chete + "ме";
_ => chete + "ì" _ => chete + "м"
}; };
VPres Pl P2 => chete + "òå"; VPres Pl P2 => chete + "те";
VPres Pl P3 => case cheta of { VPres Pl P3 => case cheta of {
vika + "ì" => case chete of { vika + "м" => case chete of {
zn + "àå" => zn + "àÿò"; zn + "ае" => zn + "аят";
dad + "å" => dad + "àò"; dad + "е" => dad + "ат";
vika => vika + "ò" vika => vika + "т"
}; };
_ => cheta + "ò" _ => cheta + "т"
}; };
VAorist Sg P1 => chetoh; VAorist Sg P1 => chetoh;
VAorist Sg _ => case chetoh of { VAorist Sg _ => case chetoh of {
chet+"îõ" => chete; chet+"ох" => chete;
zova+ "õ" => zova zova+ "х" => zova
}; };
VAorist Pl P1 => chetoh + "ìå"; VAorist Pl P1 => chetoh + "ме";
VAorist Pl P2 => chetoh + "òå"; VAorist Pl P2 => chetoh + "те";
VAorist Pl P3 => chetoh + "à"; VAorist Pl P3 => chetoh + "а";
VImperfect Sg P1 => chetqh; VImperfect Sg P1 => chetqh;
VImperfect Sg _ => case chete of { VImperfect Sg _ => case chete of {
rabot + "è" => rabot + "eøå"; rabot + "и" => rabot + "eше";
_ => chete + "øå" _ => chete + "ше"
}; };
VImperfect Pl P1 => chetqh + "ìå"; VImperfect Pl P1 => chetqh + "ме";
VImperfect Pl P2 => chetqh + "òå"; VImperfect Pl P2 => chetqh + "те";
VImperfect Pl P3 => chetqh + "à"; VImperfect Pl P3 => chetqh + "а";
VPerfect aform =>let chel1 : Str = VPerfect aform =>let chel1 : Str =
case chel of { case chel of {
pas+"úë" => pas+"ë"; pas+"ъл" => pas+"л";
_ => chel _ => chel
} ; } ;
chel2 : Str = chel2 : Str =
case chel of { case chel of {
w+"ëÿçúë" => w+"ëåçë"; w+"лязъл" => w+"лезл";
_ => chel _ => chel
} }
in (mkAdjective chel in (mkAdjective chel
(chel2+"èÿ") (chel2+"ия")
(chel2+"èÿò") (chel2+"ият")
(chel1+"a") (chel1+"a")
(chel1+"àòà") (chel1+"ата")
(chel1+"î") (chel1+"о")
(chel1+"îòî") (chel1+"ото")
(ia2e chel1+"è") (ia2e chel1+"и")
(ia2e chel1+"èòå")).s ! aform ; (ia2e chel1+"ите")).s ! aform ;
VPluPerfect aform => regAdjective chetql ! aform ; VPluPerfect aform => regAdjective chetql ! aform ;
VPassive aform => regAdjective cheten ! aform ; VPassive aform => regAdjective cheten ! aform ;
VPresPart aform => regAdjective chetqst ! aform ; VPresPart aform => regAdjective chetqst ! aform ;
VImperative Sg => cheti; VImperative Sg => cheti;
VImperative Pl => case cheti of { VImperative Pl => case cheti of {
chet + "è" => chet + "åòå"; chet + "и" => chet + "ете";
ela => ela + "òå" ela => ela + "те"
}; };
VNoun nform => let v0 = init chetene VNoun nform => let v0 = init chetene
in (mkNoun (v0+"å") in (mkNoun (v0+"е")
(v0+"èÿ") (v0+"ия")
(v0+"èÿ") (v0+"ия")
(v0+"å") (v0+"е")
ANeut) ! nform; ANeut) ! nform;
VGerund => case chete of { VGerund => case chete of {
rabot + "è" => rabot + "åéêè"; rabot + "и" => rabot + "ейки";
_ => chete + "éêè" _ => chete + "йки"
} }
} ; } ;
@@ -172,51 +172,51 @@ oper
table { table {
NF Sg Indef => sg ; NF Sg Indef => sg ;
NF Sg Def => case sg of { NF Sg Def => case sg of {
_+"à"=>sg+"òà" ; _+"а"=>sg+"та" ;
_+"ÿ"=>sg+"òà" ; _+"я"=>sg+"та" ;
_+"î"=>sg+"òî" ; _+"о"=>sg+"то" ;
_+"ó"=>sg+"òî" ; _+"у"=>sg+"то" ;
_+"å"=>sg+"òî" ; _+"е"=>sg+"то" ;
_+"è"=>sg+"òî" ; _+"и"=>sg+"то" ;
s+"é"=>s +"ÿ" ; s+"й"=>s +"я" ;
_+("úð") _+("ър")
=>sg +"à" ; =>sg +"а" ;
_+("òåë"|"àð"|"ÿð"|"äåí" _+("тел"|"ар"|"яр"|"ден"
|"ïúò"|"îãúí"|"ñúí" |"път"|"огън"|"сън"
|"êîí"|"êðàë"|"öàð" |"кон"|"крал"|"цар"
|"çåò"|"ëàêúò"|"íîêúò") |"зет"|"лакът"|"нокът")
=>sg +"ÿ" ; =>sg +"я" ;
_ =>case g of { _ =>case g of {
AFem => sg+"òà" ; AFem => sg+"та" ;
_ => sg+"à" _ => sg+"а"
} }
} ; } ;
NF Pl Indef => pl ; NF Pl Indef => pl ;
NF Pl Def => case pl of { NF Pl Def => case pl of {
_+"à"=>pl+"òà" ; _+"а"=>pl+"та" ;
_+"å"=>pl+"òå" ; _+"е"=>pl+"те" ;
_+"è"=>pl+"òå" ; _+"и"=>pl+"те" ;
_+"ÿ"=>pl+"òà" ; _+"я"=>pl+"та" ;
_ =>pl+"òå" _ =>pl+"те"
} ; } ;
NFSgDefNom => case sg of { NFSgDefNom => case sg of {
_+"à"=>sg+"òà" ; _+"а"=>sg+"та" ;
_+"ÿ"=>sg+"òà" ; _+"я"=>sg+"та" ;
_+"î"=>sg+"òî" ; _+"о"=>sg+"то" ;
_+"ó"=>sg+"òî" ; _+"у"=>sg+"то" ;
_+"å"=>sg+"òî" ; _+"е"=>sg+"то" ;
_+"è"=>sg+"òî" ; _+"и"=>sg+"то" ;
s+"é"=>s +"ÿò" ; s+"й"=>s +"ят" ;
_+("úð") _+("ър")
=>sg +"úò" ; =>sg +"ът" ;
_+("òåë"|"àð"|"ÿð"|"äåí" _+("тел"|"ар"|"яр"|"ден"
|"ïúò"|"îãúí"|"ñúí" |"път"|"огън"|"сън"
|"êîí"|"êðàë"|"öàð" |"кон"|"крал"|"цар"
|"çåò"|"ëàêúò"|"íîêúò") |"зет"|"лакът"|"нокът")
=>sg+"ÿò" ; =>sg+"ят" ;
_ =>case g of { _ =>case g of {
AFem => sg+"òà" ; AFem => sg+"та" ;
_ => sg+"úò" _ => sg+"ът"
} }
} ; } ;
NFPlCount => count ; NFPlCount => count ;

View File

@@ -1,4 +1,4 @@
--# -coding=cp1251 --# -coding=utf8
--# -path=.:../abstract:../../prelude:../common --# -path=.:../abstract:../../prelude:../common
resource MorphoFunsBul = open resource MorphoFunsBul = open
@@ -6,7 +6,7 @@ resource MorphoFunsBul = open
CatBul, CatBul,
MorphoBul MorphoBul
in { in {
flags coding=cp1251 ; flags coding=utf8 ;
oper oper
@@ -57,11 +57,11 @@ oper
dualV : VTable -> VTable -> V ; dualV : VTable -> VTable -> V ;
dualV imperf perf = { dualV imperf perf = {
s = table {Imperf=>imperf; Perf=>perf}; s = table {Imperf=>imperf; Perf=>perf};
n = let v0 = init (imperf ! (VImperfect Sg P1)) + "í" n = let v0 = init (imperf ! (VImperfect Sg P1)) + "н"
in (mkNoun (v0+"å") in (mkNoun (v0+"е")
(v0+"èÿ") (v0+"ия")
(v0+"èÿ") (v0+"ия")
(v0+"å") (v0+"е")
ANeut).s; ANeut).s;
vtype = VNormal; vtype = VNormal;
lock_V=<> lock_V=<>
@@ -72,11 +72,11 @@ oper
singleV : VTable -> V ; singleV : VTable -> V ;
singleV vtable = { singleV vtable = {
s = \\_=>vtable; s = \\_=>vtable;
n = let v0 = init (vtable ! (VImperfect Sg P1)) + "í" n = let v0 = init (vtable ! (VImperfect Sg P1)) + "н"
in (mkNoun (v0+"å") in (mkNoun (v0+"е")
(v0+"èÿ") (v0+"ия")
(v0+"èÿ") (v0+"ия")
(v0+"å") (v0+"е")
ANeut).s; ANeut).s;
vtype = VNormal; vtype = VNormal;
lock_V=<> lock_V=<>
@@ -286,5 +286,5 @@ oper
-- --
mkIAdv : Str -> IAdv ; mkIAdv : Str -> IAdv ;
mkIAdv s = {s = table {QDir=>s;QIndir=>s+"òî"}; lock_IAdv = <>} ; mkIAdv s = {s = table {QDir=>s;QIndir=>s+"то"}; lock_IAdv = <>} ;
} }

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete NounBul of Noun = CatBul ** open ResBul, Prelude in { concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
flags optimize=all_subs ; coding=cp1251 ; flags optimize=all_subs ; coding=utf8 ;
lin lin
DetCN det cn = DetCN det cn =
@@ -123,17 +123,17 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
AdNum adn num = {s = \\gspec => adn.s ++ num.s ! gspec; nn = num.nn} ; AdNum adn num = {s = \\gspec => adn.s ++ num.s ! gspec; nn = num.nn} ;
OrdSuperl a = {s = \\aform => "íàé" ++ hyphen ++ a.s ! aform} ; OrdSuperl a = {s = \\aform => "най" ++ hyphen ++ a.s ! aform} ;
DefArt = { DefArt = {
s = table { s = table {
True => \\_ => [] ; True => \\_ => [] ;
False => table { False => table {
ASg Masc _ => "òîé" ; ASg Masc _ => "той" ;
ASgMascDefNom => "òîé" ; ASgMascDefNom => "той" ;
ASg Fem _ => "òÿ" ; ASg Fem _ => "тя" ;
ASg Neut _ => "òî" ; ASg Neut _ => "то" ;
APl _ => "òå" APl _ => "те"
} }
} ; } ;
nonEmpty = False ; nonEmpty = False ;
@@ -145,11 +145,11 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
s = table { s = table {
True => \\_ => [] ; True => \\_ => [] ;
False => table { False => table {
ASg Masc _ => "åäèí" ; ASg Masc _ => "един" ;
ASgMascDefNom => "åäèí" ; ASgMascDefNom => "един" ;
ASg Fem _ => "åäíà" ; ASg Fem _ => "една" ;
ASg Neut _ => "åäíî" ; ASg Neut _ => "едно" ;
APl _ => "åäíè" APl _ => "едни"
} }
} ; } ;
nonEmpty = False ; nonEmpty = False ;
@@ -197,9 +197,9 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
ApposCN cn np = {s = \\nf => cn.s ! nf ++ np.s ! RSubj; g=cn.g} ; ApposCN cn np = {s = \\nf => cn.s ! nf ++ np.s ! RSubj; g=cn.g} ;
PossNP cn np = {s = \\nf => cn.s ! nf ++ "íà" ++ np.s ! (RObj CPrep); g = cn.g} ; PossNP cn np = {s = \\nf => cn.s ! nf ++ "на" ++ np.s ! (RObj CPrep); g = cn.g} ;
PartNP cn np = {s = \\nf => cn.s ! nf ++ "îò" ++ np.s ! (RObj CPrep); g = cn.g} ; PartNP cn np = {s = \\nf => cn.s ! nf ++ "от" ++ np.s ! (RObj CPrep); g = cn.g} ;
CountNP det np = { CountNP det np = {
s = \\role => let g = case np.gn of { -- this is lossy s = \\role => let g = case np.gn of { -- this is lossy

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete NumeralBul of Numeral = CatBul [Numeral,Digits] ** open Prelude, ResBul in { concrete NumeralBul of Numeral = CatBul [Numeral,Digits] ** open Prelude, ResBul in {
flags coding=cp1251 ; flags coding=utf8 ;
lincat lincat
@@ -11,43 +11,43 @@ lincat
Sub1000000 = {s : CardOrd => NumF => Str; n : Number} ; Sub1000000 = {s : CardOrd => NumF => Str; n : Number} ;
lin num x = {s = \\c => x.s ! c ! Formal; n=x.n} ; lin num x = {s = \\c => x.s ! c ! Formal; n=x.n} ;
lin n2 = mkDigit "äâà" "äâàìà" "äâå" "âòîðè" "äâàéñåò" "äâåñòà" "äâåñòàòà" ; lin n2 = mkDigit "два" "двама" "две" "втори" "двайсет" "двеста" "двестата" ;
lin n3 = mkDigit "òðè" "òðèìà" "òðè" "òðåòè" "òðèéñåò" "òðèñòà" "òðèñòàòà" ; lin n3 = mkDigit "три" "трима" "три" "трети" "трийсет" "триста" "тристата" ;
lin n4 = mkDigit "÷åòèðè" "÷åòèðèìà" "÷åòèðè" "÷åòâúðòè" "÷åòèðèéñåò" "÷åòèðèñòîòèí" "÷åòèðèñòîòèíòå" ; lin n4 = mkDigit "четири" "четирима" "четири" "четвърти" "четирийсет" "четиристотин" "четиристотинте" ;
lin n5 = mkDigit "ïåò" "ïåòèìà" "ïåò" "ïåòè" "ïåòäåñåò" "ïåòñòîòèí" "ïåòñòîòèíòå" ; lin n5 = mkDigit "пет" "петима" "пет" "пети" "петдесет" "петстотин" "петстотинте" ;
lin n6 = mkDigit "øåñò" "øåñòèìà" "øåñò" "øåñòè" "øåéñåò" "øåñòñòîòèí" "øåñòñòîòèíòå" ; lin n6 = mkDigit "шест" "шестима" "шест" "шести" "шейсет" "шестстотин" "шестстотинте" ;
lin n7 = mkDigit "ñåäåì" "ñåäìèíà" "ñåäåì" "ñåäìè" "ñåäåìäåñåò" "ñåäåìñòîòèí" "ñåäåìñòîòèíòå" ; lin n7 = mkDigit "седем" "седмина" "седем" "седми" "седемдесет" "седемстотин" "седемстотинте" ;
lin n8 = mkDigit "îñåì" "îñìèíà" "îñåì" "îñìè" "îñåìäåñåò" "îñåìñòîòèí" "îñåìñòîòèíòå" ; lin n8 = mkDigit "осем" "осмина" "осем" "осми" "осемдесет" "осемстотин" "осемстотинте" ;
lin n9 = mkDigit "äåâåò" "äåâåòèìà" "äåâåò" "äåâåòè" "äåâåòäåñåò" "äåâåòñòîòèí" "äåâåòñòîòèíòå" ; lin n9 = mkDigit "девет" "деветима" "девет" "девети" "деветдесет" "деветстотин" "деветстотинте" ;
lin pot01 = lin pot01 =
{s = table { {s = table {
unit => table { unit => table {
NCard (CFMasc Indef _) => "åäèí" ; NCard (CFMasc Indef _) => "един" ;
NCard (CFMasc Def _) => "åäèíèÿ" ; NCard (CFMasc Def _) => "единия" ;
NCard (CFMascDefNom _) => "åäèíèÿò" ; NCard (CFMascDefNom _) => "единият" ;
NCard (CFFem Indef) => "åäíà" ; NCard (CFFem Indef) => "една" ;
NCard (CFFem Def) => "åäíàòà" ; NCard (CFFem Def) => "едната" ;
NCard (CFNeut Indef) => "åäíî" ; NCard (CFNeut Indef) => "едно" ;
NCard (CFNeut Def) => "åäíîòî" ; NCard (CFNeut Def) => "едното" ;
NOrd aform => case aform of { NOrd aform => case aform of {
ASg Masc Indef => "ïúðâè" ; ASg Masc Indef => "първи" ;
ASg Masc Def => "ïúðâèÿ" ; ASg Masc Def => "първия" ;
ASgMascDefNom => "ïúðâèÿò" ; ASgMascDefNom => "първият" ;
ASg Fem Indef => "ïúðâà" ; ASg Fem Indef => "първа" ;
ASg Fem Def => "ïúðâàòà" ; ASg Fem Def => "първата" ;
ASg Neut Indef => "ïúðâî" ; ASg Neut Indef => "първо" ;
ASg Neut Def => "ïúðâîòî" ; ASg Neut Def => "първото" ;
APl Indef => "ïúðâè" ; APl Indef => "първи" ;
APl Def => "ïúðâèòå" APl Def => "първите"
} }
} ; } ;
teen nf => case nf of { teen nf => case nf of {
Formal => mkCardOrd "åäèíàäåñåò" "åäèíàäåñåòèìà" "åäèíàäåñåò" "åäèíàäåñåòè" ; Formal => mkCardOrd "единадесет" "единадесетима" "единадесет" "единадесети" ;
Informal => mkCardOrd "åäèíàéñåò" "åäèíàéñåò" "åäèíàéñåò" "åäèíàéñòè" Informal => mkCardOrd "единайсет" "единайсет" "единайсет" "единайсти"
} ; } ;
ten nf => mkCardOrd "äåñåò" "äåñåòèìà" "äåñåò" "äåñåòè" ; ten nf => mkCardOrd "десет" "десетима" "десет" "десети" ;
hundred => mkCardOrd100 "ñòî" "ñòîòå" "ñòîòåí" hundred => mkCardOrd100 "сто" "стоте" "стотен"
} }
;n = Sg ;n = Sg
} ; } ;
@@ -59,12 +59,12 @@ lin pot1to19 d = {s = \\c,nf => d.s ! teen nf ! c; n = Pl; i = True} ;
lin pot0as1 n = {s = \\c,nf => n.s ! unit ! c; n = n.n; i = True} ; lin pot0as1 n = {s = \\c,nf => n.s ! unit ! c; n = n.n; i = True} ;
lin pot1 d = {s = \\c,nf => d.s ! ten nf ! c; n = Pl; i = True} ; lin pot1 d = {s = \\c,nf => d.s ! ten nf ! c; n = Pl; i = True} ;
lin pot1plus d e = { lin pot1plus d e = {
s = \\c,nf => d.s ! ten nf ! NCard (CFMasc Indef NonHuman) ++ "è" ++ e.s ! unit ! c ; n = Pl; i = False} ; s = \\c,nf => d.s ! ten nf ! NCard (CFMasc Indef NonHuman) ++ "и" ++ e.s ! unit ! c ; n = Pl; i = False} ;
lin pot1as2 n = n ; lin pot1as2 n = n ;
lin pot2 n = {s = \\c,nf => n.s ! hundred ! c; n = Pl; i = True} ; lin pot2 n = {s = \\c,nf => n.s ! hundred ! c; n = Pl; i = True} ;
lin pot2plus d e = { lin pot2plus d e = {
s = \\c,nf => d.s ! hundred ! NCard (CFMasc Indef NonHuman) ++ case e.i of {False => []; True => "è"} ++ e.s ! c ! nf ; s = \\c,nf => d.s ! hundred ! NCard (CFMasc Indef NonHuman) ++ case e.i of {False => []; True => "и"} ++ e.s ! c ! nf ;
n = Pl ; n = Pl ;
i = False i = False
} ; } ;
@@ -72,17 +72,17 @@ lin pot2plus d e = {
lin pot2as3 n = n ; lin pot2as3 n = n ;
lin pot3 n = { lin pot3 n = {
s = \\c,nf => case n.n of { s = \\c,nf => case n.n of {
Sg => mkCardOrd100 "õèëÿäà" "õèëÿäàòà" "õèëÿäåí" ! c ; Sg => mkCardOrd100 "хиляда" "хилядата" "хиляден" ! c ;
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "õèëÿäè" "õèëÿäèòå" "õèëÿäåí" ! c Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "хиляди" "хилядите" "хиляден" ! c
} ; } ;
n = Pl n = Pl
} ; } ;
lin pot3plus n m = { lin pot3plus n m = {
s = \\c,nf => case n.n of { s = \\c,nf => case n.n of {
Sg => mkCardOrd100 "õèëÿäà" "õèëÿäàòà" "õèëÿäåí" ! NCard (CFMasc Indef NonHuman) ; Sg => mkCardOrd100 "хиляда" "хилядата" "хиляден" ! NCard (CFMasc Indef NonHuman) ;
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "õèëÿäè" "õèëÿäèòå" "õèëÿäåí" ! NCard (CFMasc Indef NonHuman) Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "хиляди" "хилядите" "хиляден" ! NCard (CFMasc Indef NonHuman)
} }
++ case m.i of {False => []; True => "è"} ++ m.s ! c ! nf ; ++ case m.i of {False => []; True => "и"} ++ m.s ! c ! nf ;
n = Pl n = Pl
} ; } ;
@@ -101,16 +101,16 @@ lin pot3plus n m = {
tail = inc i.tail tail = inc i.tail
} ; } ;
D_0 = mk3Dig "0" "0" "0åâ" Pl ; D_0 = mk3Dig "0" "0" "0ев" Pl ;
D_1 = mk3Dig "1" "1" "1âè" Sg ; D_1 = mk3Dig "1" "1" "1ви" Sg ;
D_2 = mk2Dig "2" "2ðè" ; D_2 = mk2Dig "2" "2ри" ;
D_3 = mkDig "3" ; D_3 = mkDig "3" ;
D_4 = mkDig "4" ; D_4 = mkDig "4" ;
D_5 = mkDig "5" ; D_5 = mkDig "5" ;
D_6 = mkDig "6" ; D_6 = mkDig "6" ;
D_7 = mk3Dig "7" "7íà" "7ìè" Pl ; D_7 = mk3Dig "7" "7на" "7ми" Pl ;
D_8 = mk3Dig "8" "8íà" "8ìè" Pl ; D_8 = mk3Dig "8" "8на" "8ми" Pl ;
D_9 = mk3Dig "9" "9èìà" "9òè" Pl ; D_9 = mk3Dig "9" "9има" "9ти" Pl ;
oper oper
spaceIf : DTail -> Str = \t -> case t of { spaceIf : DTail -> Str = \t -> case t of {
@@ -124,8 +124,8 @@ lin pot3plus n m = {
T3 => T1 T3 => T1
} ; } ;
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c (c+"ìà") o Pl ; mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c (c+"ма") o Pl ;
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "òè") ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ти") ;
mk3Dig : Str -> Str -> Str -> Number -> TDigit = \c1,c2,o,n -> { mk3Dig : Str -> Str -> Str -> Number -> TDigit = \c1,c2,o,n -> {
s = mkCardOrd c1 c2 c1 o ; s = mkCardOrd c1 c2 c1 o ;

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete PhraseBul of Phrase = CatBul ** open Prelude, ResBul in { concrete PhraseBul of Phrase = CatBul ** open Prelude, ResBul in {
flags coding=cp1251 ; flags coding=utf8 ;
lin lin

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in { concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all_subs ; flags optimize=all_subs ;
@@ -12,7 +12,7 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
let cls = cl.s ! t ! a ! p let cls = cl.s ! t ! a ! p
in table { in table {
QDir => cls ! Quest ; QDir => cls ! Quest ;
QIndir => "àêî" ++ cls ! Main QIndir => "ако" ++ cls ! Main
} ---- "whether" in ExtEng } ---- "whether" in ExtEng
} ; } ;
@@ -22,7 +22,7 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
} ; } ;
QuestSlash ip slash = QuestSlash ip slash =
mkQuestion {s = \\qform => slash.c2.s ++ case slash.c2.c of {Dat=>"íà";_=>[]} ++ ip.s ! (RObj slash.c2.c) ! qform} mkQuestion {s = \\qform => slash.c2.s ++ case slash.c2.c of {Dat=>"на";_=>[]} ++ ip.s ! (RObj slash.c2.c) ! qform}
{s = slash.s ! (agrP3 ip.gn) } ; {s = slash.s ! (agrP3 ip.gn) } ;
QuestIAdv iadv cl = mkQuestion iadv cl ; QuestIAdv iadv cl = mkQuestion iadv cl ;
@@ -30,7 +30,7 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
QuestIComp icomp np = QuestIComp icomp np =
mkQuestion icomp (mkClause (np.s ! RSubj) np.gn np.p (predV verbBe)) ; mkQuestion icomp (mkClause (np.s ! RSubj) np.gn np.p (predV verbBe)) ;
PrepIP p ip = {s = \\qform => p.s ++ case p.c of {Dat=>"íà";_=>[]} ++ ip.s ! RSubj ! qform} ; PrepIP p ip = {s = \\qform => p.s ++ case p.c of {Dat=>"на";_=>[]} ++ ip.s ! RSubj ! qform} ;
AdvIP ip adv = { AdvIP ip adv = {
s = \\role,qform => ip.s ! role ! qform ++ adv.s ; s = \\role,qform => ip.s ! role ! qform ++ adv.s ;

View File

@@ -1,13 +1,13 @@
--# -coding=cp1251 --# -coding=utf8
concrete RelativeBul of Relative = CatBul ** open ResBul in { concrete RelativeBul of Relative = CatBul ** open ResBul in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all_subs ; flags optimize=all_subs ;
lin lin
RelCl cl = { RelCl cl = {
s = \\t,a,p,agr => suchRP ! agr.gn ++ "÷å" ++ cl.s ! t ! a ! p ! Main s = \\t,a,p,agr => suchRP ! agr.gn ++ "че" ++ cl.s ! t ! a ! p ! Main
} ; } ;
RelVP rp vp = { RelVP rp vp = {

View File

@@ -1,5 +1,5 @@
--# -path=.:../abstract:../common:../../prelude --# -path=.:../abstract:../common:../../prelude
--# -coding=cp1251 --# -coding=utf8
--1 Bulgarian auxiliary operations. --1 Bulgarian auxiliary operations.
@@ -11,7 +11,7 @@
resource ResBul = ParamX ** open Prelude, Predef in { resource ResBul = ParamX ** open Prelude, Predef in {
flags flags
coding=cp1251 ; optimize=all ; coding=utf8 ; optimize=all ;
-- Some parameters, such as $Number$, are inherited from $ParamX$. -- Some parameters, such as $Number$, are inherited from $ParamX$.
@@ -328,149 +328,149 @@ resource ResBul = ParamX ** open Prelude, Predef in {
auxBe : VTable = auxBe : VTable =
table { table {
VPres Sg P1 => "ñúì" ; VPres Sg P1 => "съм" ;
VPres Sg P2 => "ñè" ; VPres Sg P2 => "си" ;
VPres Sg P3 => "å" ; VPres Sg P3 => "е" ;
VPres Pl P1 => "ñìå" ; VPres Pl P1 => "сме" ;
VPres Pl P2 => "ñòå" ; VPres Pl P2 => "сте" ;
VPres Pl P3 => "ñà" ; VPres Pl P3 => "са" ;
VAorist Sg P1 => "áÿõ" ; VAorist Sg P1 => "бях" ;
VAorist Sg _ => "áåøå" ; VAorist Sg _ => "беше" ;
VAorist Pl P1 => "áÿõìå" ; VAorist Pl P1 => "бяхме" ;
VAorist Pl P2 => "áÿõòå" ; VAorist Pl P2 => "бяхте" ;
VAorist Pl P3 => "áÿõà" ; VAorist Pl P3 => "бяха" ;
VImperfect Sg P1 => "áÿõ" ; VImperfect Sg P1 => "бях" ;
VImperfect Sg _ => "áåøå" ; VImperfect Sg _ => "беше" ;
VImperfect Pl P1 => "áÿõìå" ; VImperfect Pl P1 => "бяхме" ;
VImperfect Pl P2 => "áÿõòå" ; VImperfect Pl P2 => "бяхте" ;
VImperfect Pl P3 => "áÿõà" ; VImperfect Pl P3 => "бяха" ;
VPerfect aform => regAdjective "áèë" ! aform ; VPerfect aform => regAdjective "бил" ! aform ;
VPluPerfect aform => regAdjective "áèë" ! aform ; VPluPerfect aform => regAdjective "бил" ! aform ;
VPassive aform => regAdjective "áúäåí" ! aform ; VPassive aform => regAdjective "бъден" ! aform ;
VPresPart aform => regAdjective "áúäåù" ! aform ; VPresPart aform => regAdjective "бъдещ" ! aform ;
VImperative Sg => "áúäè" ; VImperative Sg => "бъди" ;
VImperative Pl => "áúäåòå" ; VImperative Pl => "бъдете" ;
VNoun _ => "áúäåíå"; VNoun _ => "бъдене";
VGerund => "áèäåéêè" VGerund => "бидейки"
} ; } ;
auxWould : VTable = auxWould : VTable =
table { table {
VPres Sg P1 => "áúäà" ; VPres Sg P1 => "бъда" ;
VPres Sg P2 => "áúäåø" ; VPres Sg P2 => "бъдеш" ;
VPres Sg P3 => "áúäå" ; VPres Sg P3 => "бъде" ;
VPres Pl P1 => "áúäåì" ; VPres Pl P1 => "бъдем" ;
VPres Pl P2 => "áúäåòå" ; VPres Pl P2 => "бъдете" ;
VPres Pl P3 => "áúäàò" ; VPres Pl P3 => "бъдат" ;
VAorist Sg P1 => "áÿõ" ; VAorist Sg P1 => "бях" ;
VAorist Sg _ => "áåøå" ; VAorist Sg _ => "беше" ;
VAorist Pl P1 => "áÿõìå" ; VAorist Pl P1 => "бяхме" ;
VAorist Pl P2 => "áÿõòå" ; VAorist Pl P2 => "бяхте" ;
VAorist Pl P3 => "áÿõà" ; VAorist Pl P3 => "бяха" ;
VImperfect Sg P1 => "áúäåõ" ; VImperfect Sg P1 => "бъдех" ;
VImperfect Sg _ => "áúäåøå" ; VImperfect Sg _ => "бъдеше" ;
VImperfect Pl P1 => "áúäåõìå" ; VImperfect Pl P1 => "бъдехме" ;
VImperfect Pl P2 => "áúäåõòå" ; VImperfect Pl P2 => "бъдехте" ;
VImperfect Pl P3 => "áúäåõà" ; VImperfect Pl P3 => "бъдеха" ;
VPerfect aform => regAdjective "áèë" ! aform ; VPerfect aform => regAdjective "бил" ! aform ;
VPluPerfect aform => regAdjective "áúäåë" ! aform ; VPluPerfect aform => regAdjective "бъдел" ! aform ;
VPassive aform => regAdjective "áúäåí" ! aform ; VPassive aform => regAdjective "бъден" ! aform ;
VPresPart aform => regAdjective "áúäåù" ! aform ; VPresPart aform => regAdjective "бъдещ" ! aform ;
VImperative Sg => "áúäè" ; VImperative Sg => "бъди" ;
VImperative Pl => "áúäåòå" ; VImperative Pl => "бъдете" ;
VNoun _ => "áúäåíå"; VNoun _ => "бъдене";
VGerund => "áúäåéêè" VGerund => "бъдейки"
} ; } ;
auxCond : Number => Person => Str = auxCond : Number => Person => Str =
table { table {
Sg => table { Sg => table {
P1 => "áèõ" ; P1 => "бих" ;
_ => "áè" _ => "би"
} ; } ;
Pl => table { Pl => table {
P1 => "áèõìå" ; P1 => "бихме" ;
P2 => "áèõòå" ; P2 => "бихте" ;
P3 => "áèõà" P3 => "биха"
} }
} ; } ;
verbBe : Verb = {s=table Aspect [auxBe; auxWould] ; vtype=VNormal} ; verbBe : Verb = {s=table Aspect [auxBe; auxWould] ; vtype=VNormal} ;
reflClitics : Case => Str = table {Acc => "ñå"; Dat => "ñè"; WithPrep => with_Word ++ "ñåáå ñè"; CPrep => "ñåáå ñè"} ; reflClitics : Case => Str = table {Acc => "се"; Dat => "си"; WithPrep => with_Word ++ "себе си"; CPrep => "себе си"} ;
personalClitics : Agr -> Case => Str = \agr -> personalClitics : Agr -> Case => Str = \agr ->
table { table {
Acc => case agr.gn of { Acc => case agr.gn of {
GSg g => case agr.p of { GSg g => case agr.p of {
P1 => "ìå" ; P1 => "ме" ;
P2 => "òå" ; P2 => "те" ;
P3 => case g of { P3 => case g of {
Masc => "ãî" ; Masc => "го" ;
Fem => "ÿ" ; Fem => "я" ;
Neut => "ãî" Neut => "го"
} }
} ; } ;
GPl => case agr.p of { GPl => case agr.p of {
P1 => "íè" ; P1 => "ни" ;
P2 => "âè" ; P2 => "ви" ;
P3 => "ãè" P3 => "ги"
} }
} ; } ;
Dat => case agr.gn of { Dat => case agr.gn of {
GSg g => case agr.p of { GSg g => case agr.p of {
P1 => "ìè" ; P1 => "ми" ;
P2 => "òè" ; P2 => "ти" ;
P3 => case g of { P3 => case g of {
Masc => "ìó" ; Masc => "му" ;
Fem => "é" ; Fem => "й" ;
Neut => "ìó" Neut => "му"
} }
} ; } ;
GPl => case agr.p of { GPl => case agr.p of {
P1 => "íè" ; P1 => "ни" ;
P2 => "âè" ; P2 => "ви" ;
P3 => "èì" P3 => "им"
} }
} ; } ;
WithPrep => case agr.gn of { WithPrep => case agr.gn of {
GSg g => case agr.p of { GSg g => case agr.p of {
P1 => with_Word ++ "ìåí" ; P1 => with_Word ++ "мен" ;
P2 => with_Word ++ "òåá" ; P2 => with_Word ++ "теб" ;
P3 => case g of { P3 => case g of {
Masc => with_Word ++ "íåãî" ; Masc => with_Word ++ "него" ;
Fem => with_Word ++ "íåÿ" ; Fem => with_Word ++ "нея" ;
Neut => with_Word ++ "íåãî" Neut => with_Word ++ "него"
} }
} ; } ;
GPl => case agr.p of { GPl => case agr.p of {
P1 => with_Word ++ "íàñ" ; P1 => with_Word ++ "нас" ;
P2 => with_Word ++ "âàñ" ; P2 => with_Word ++ "вас" ;
P3 => with_Word ++ "òÿõ" P3 => with_Word ++ "тях"
} }
} ; } ;
CPrep => case agr.gn of { CPrep => case agr.gn of {
GSg g => case agr.p of { GSg g => case agr.p of {
P1 => "ìåí" ; P1 => "мен" ;
P2 => "òåá" ; P2 => "теб" ;
P3 => case g of { P3 => case g of {
Masc => "íåãî" ; Masc => "него" ;
Fem => "íåÿ" ; Fem => "нея" ;
Neut => "íåãî" Neut => "него"
} }
} ; } ;
GPl => case agr.p of { GPl => case agr.p of {
P1 => "íàñ" ; P1 => "нас" ;
P2 => "âàñ" ; P2 => "вас" ;
P3 => "òÿõ" P3 => "тях"
} }
} }
} ; } ;
ia2e : Str -> Str = -- to be used when the next syllable has vowel different from "à","ú","î" or "ó" ia2e : Str -> Str = -- to be used when the next syllable has vowel different from "а","ъ","о" or "у"
\s -> case s of { \s -> case s of {
x@(_*+_) + "ÿ" + y@(("á"|"â"|"ã"|"ä"|"æ"|"ç"|"ê"|"ë"|"ì"|"í"|"ï"|"ð"|"ñ"|"ò"|"ô"|"õ"|"ö"|"÷"|"ø")*) x@(_*+_) + "я" + y@(("б"|"в"|"г"|"д"|"ж"|"з"|"к"|"л"|"м"|"н"|"п"|"р"|"с"|"т"|"ф"|"х"|"ц"|"ч"|"ш")*)
=> x+"å"+y; => x+"е"+y;
_ => s _ => s
}; };
@@ -478,19 +478,19 @@ resource ResBul = ParamX ** open Prelude, Predef in {
\base -> \base ->
let base0 : Str let base0 : Str
= case base of { = case base of {
x+"è" => x; x+"и" => x;
x => x x => x
} }
in table { in table {
ASg Masc Indef => base ; ASg Masc Indef => base ;
ASg Masc Def => (base0+"èÿ") ; ASg Masc Def => (base0+"ия") ;
ASgMascDefNom => (base0+"èÿò") ; ASgMascDefNom => (base0+"ият") ;
ASg Fem Indef => (base0+"à") ; ASg Fem Indef => (base0+"а") ;
ASg Fem Def => (base0+"àòà") ; ASg Fem Def => (base0+"ата") ;
ASg Neut Indef => (base0+"î") ; ASg Neut Indef => (base0+"о") ;
ASg Neut Def => (base0+"îòî") ; ASg Neut Def => (base0+"ото") ;
APl Indef => (ia2e base0+"è") ; APl Indef => (ia2e base0+"и") ;
APl Def => (ia2e base0+"èòå") APl Def => (ia2e base0+"ите")
}; };
-- For $Sentence$. -- For $Sentence$.
@@ -545,37 +545,37 @@ resource ResBul = ParamX ** open Prelude, Predef in {
_ => auxPres++s++clitic.s _ => auxPres++s++clitic.s
} ; } ;
li0 = case <verb.ad.isEmpty,q0> of {<False,True> => "ëè"; _ => []} ; li0 = case <verb.ad.isEmpty,q0> of {<False,True> => "ли"; _ => []} ;
q = case verb.ad.isEmpty of {True => q0; False => False} ; q = case verb.ad.isEmpty of {True => q0; False => False} ;
li = case q of {True => "ëè"; _ => []} ; li = case q of {True => "ли"; _ => []} ;
vf1 : Str -> {s1 : Str; s2 : Str} = \s -> vf1 : Str -> {s1 : Str; s2 : Str} = \s ->
case p of { case p of {
Pos => case q of {True => {s1=[]; s2="ëè"++apc []}; Pos => case q of {True => {s1=[]; s2="ли"++apc []};
False => {s1=apc []; s2=[]}} ; False => {s1=apc []; s2=[]}} ;
Neg => {s1="íå"++apc li; s2=[]} Neg => {s1="не"++apc li; s2=[]}
} ; } ;
vf2 : Str -> {s1 : Str; s2 : Str} = \s -> vf2 : Str -> {s1 : Str; s2 : Str} = \s ->
case p of { case p of {
Pos => case q of {True => {s1=[]; s2="ëè"++s}; Pos => case q of {True => {s1=[]; s2="ли"++s};
False => {s1=s; s2=[]}} ; False => {s1=s; s2=[]}} ;
Neg => case verb.vtype of Neg => case verb.vtype of
{VNormal => {s1="íå"++s; s2=li} ; {VNormal => {s1="не"++s; s2=li} ;
_ => {s1="íå"++s++li; s2=[]}} _ => {s1="не"++s++li; s2=[]}}
} ; } ;
vf3 : Str -> {s1 : Str; s2 : Str} = \s -> vf3 : Str -> {s1 : Str; s2 : Str} = \s ->
case p of { case p of {
Pos => {s1="ùå"++s; s2=li} ; Pos => {s1="ще"++s; s2=li} ;
Neg => {s1="íÿìà"++li++"äà"++s; s2=[]} Neg => {s1="няма"++li++"да"++s; s2=[]}
} ; } ;
vf4 : Str -> {s1 : Str; s2 : Str} = \s -> vf4 : Str -> {s1 : Str; s2 : Str} = \s ->
case p of { case p of {
Pos => {s1= s++li++clitic.s; s2=[]} ; Pos => {s1= s++li++clitic.s; s2=[]} ;
Neg => {s1="íå"++s++li++clitic.s; s2=[]} Neg => {s1="не"++s++li++clitic.s; s2=[]}
} ; } ;
verbs : {aux:{s1:Str; s2:Str}; main:Str} = verbs : {aux:{s1:Str; s2:Str}; main:Str} =
@@ -600,8 +600,8 @@ resource ResBul = ParamX ** open Prelude, Predef in {
VPhrasal Dat => {s=personalClitics agr ! Dat++vp.clitics; agr={gn=GSg Neut; p=P3}} ; VPhrasal Dat => {s=personalClitics agr ! Dat++vp.clitics; agr={gn=GSg Neut; p=P3}} ;
VPhrasal c => {s=vp.clitics++personalClitics agr ! c; agr={gn=GSg Neut; p=P3}} VPhrasal c => {s=vp.clitics++personalClitics agr ! c; agr={gn=GSg Neut; p=P3}}
} ; } ;
pol = case p of {Pos => ""; Neg => "íå"} pol = case p of {Pos => ""; Neg => "не"}
in vp.ad.s ++ "äà" ++ pol ++ clitic.s ++ in vp.ad.s ++ "да" ++ pol ++ clitic.s ++
case a of { case a of {
Simul => vp.s ! asp ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ; Simul => vp.s ! asp ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ;
Anter => auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++ Anter => auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++
@@ -629,10 +629,10 @@ resource ResBul = ParamX ** open Prelude, Predef in {
linCase : Case -> Polarity -> Str = linCase : Case -> Polarity -> Str =
\c,p -> case c of { \c,p -> case c of {
Acc => "" ; Acc => "" ;
Dat => "íà" ; Dat => "на" ;
WithPrep => case p of { WithPrep => case p of {
Pos => with_Word ; Pos => with_Word ;
Neg => "áåç" Neg => "без"
} ; } ;
CPrep => "" CPrep => ""
} ; } ;
@@ -656,17 +656,17 @@ resource ResBul = ParamX ** open Prelude, Predef in {
{s = table { {s = table {
unit => mkCardOrd dva dvama dve vtori ; unit => mkCardOrd dva dvama dve vtori ;
teen nf => case nf of { teen nf => case nf of {
Formal => mkCardOrd (dva+"íàäåñåò") (dva+"íàäåñåòèìà") (dva+"íàäåñåò") (dva+"íàäåñåòè") ; Formal => mkCardOrd (dva+"надесет") (dva+"надесетима") (dva+"надесет") (dva+"надесети") ;
Informal => mkCardOrd (dva+"íàéñåò") (dva+"íàéñåò") (dva+"íàéñåò") (dva+"íàéñòè") Informal => mkCardOrd (dva+"найсет") (dva+"найсет") (dva+"найсет") (dva+"найсти")
} ; } ;
ten nf => case nf of { ten nf => case nf of {
Formal => mkCardOrd (dva+"äåñåò") (dva+"äåñåòèìà") (dva+"äåñåò") (dva+"äåñåòè") ; Formal => mkCardOrd (dva+"десет") (dva+"десетима") (dva+"десет") (dva+"десети") ;
Informal => mkCardOrd dvaiset dvaiset dvaiset (dvaiset+"è") Informal => mkCardOrd dvaiset dvaiset dvaiset (dvaiset+"и")
} ; } ;
hundred => let dvesten : Str hundred => let dvesten : Str
= case dvesta of { = case dvesta of {
dvest+"à" => dvest+"åí" ; dvest+"а" => dvest+"ен" ;
chetiristot+"èí" => chetiristot+"åí" chetiristot+"ин" => chetiristot+"ен"
} }
in mkCardOrd100 dvesta dvestata dvesten in mkCardOrd100 dvesta dvestata dvesten
} }
@@ -676,19 +676,19 @@ resource ResBul = ParamX ** open Prelude, Predef in {
\dva, dvama, dve, vtori -> \dva, dvama, dve, vtori ->
table { table {
NCard dg => digitGenderSpecies dva dvama dve ! dg ; NCard dg => digitGenderSpecies dva dvama dve ! dg ;
NOrd aform => let vtora : Str = case vtori of {_+"â" => vtori; _ => init vtori} + "à" ; NOrd aform => let vtora : Str = case vtori of {_+"в" => vtori; _ => init vtori} + "а" ;
vtoro : Str = case vtori of {_+"â" => vtori; _ => init vtori} + "î"; vtoro : Str = case vtori of {_+"в" => vtori; _ => init vtori} + "о";
i : Str = case vtori of {_+"â" => "è"; _ => ""} i : Str = case vtori of {_+"в" => "и"; _ => ""}
in case aform of { in case aform of {
ASg Masc Indef => vtori ; ASg Masc Indef => vtori ;
ASg Masc Def => vtori+i+"ÿ" ; ASg Masc Def => vtori+i+"я" ;
ASgMascDefNom => vtori+i+"ÿò" ; ASgMascDefNom => vtori+i+"ят" ;
ASg Fem Indef => vtora ; ASg Fem Indef => vtora ;
ASg Fem Def => vtora+"òà" ; ASg Fem Def => vtora+"та" ;
ASg Neut Indef => vtoro ; ASg Neut Indef => vtoro ;
ASg Neut Def => vtoro+"òî" ; ASg Neut Def => vtoro+"то" ;
APl Indef => vtori+i ; APl Indef => vtori+i ;
APl Def => vtori+i+"òå" APl Def => vtori+i+"те"
} }
} ; } ;
@@ -705,14 +705,14 @@ resource ResBul = ParamX ** open Prelude, Predef in {
NOrd aform => let stotn = init (init stoten) + last stoten ; NOrd aform => let stotn = init (init stoten) + last stoten ;
in case aform of { in case aform of {
ASg Masc Indef => stoten ; ASg Masc Indef => stoten ;
ASg Masc Def => stotn+"èÿ" ; ASg Masc Def => stotn+"ия" ;
ASgMascDefNom => stotn+"èÿò" ; ASgMascDefNom => stotn+"ият" ;
ASg Fem Indef => stotn+"à" ; ASg Fem Indef => stotn+"а" ;
ASg Fem Def => stotn+"àòà" ; ASg Fem Def => stotn+"ата" ;
ASg Neut Indef => stotn+"î" ; ASg Neut Indef => stotn+"о" ;
ASg Neut Def => stotn+"îòî" ; ASg Neut Def => stotn+"ото" ;
APl Indef => stotn+"è" ; APl Indef => stotn+"и" ;
APl Def => stotn+"èòå" APl Def => stotn+"ите"
} }
} ; } ;
@@ -720,12 +720,12 @@ resource ResBul = ParamX ** open Prelude, Predef in {
\dva, dvama, dve \dva, dvama, dve
-> let addDef : Str -> Gender -> Str = -> let addDef : Str -> Gender -> Str =
\s,g -> case s of { \s,g -> case s of {
dves+"òà" => dves+"òàòå" ; dves+"та" => dves+"тате" ;
dv+"à" => dv+"àòà" ; dv+"а" => dv+"ата" ;
"0" => s+"òà" ; "0" => s+"та" ;
"1" => s+case g of {Masc => "ÿò"; Fem => "òà"; Neut => "òî"} ; "1" => s+case g of {Masc => "ят"; Fem => "та"; Neut => "то"} ;
"2" => s+case g of {Masc => "òà"; _ => "òå"} ; "2" => s+case g of {Masc => "та"; _ => "те"} ;
x => x+"òå" x => x+"те"
} }
in table { in table {
CFMasc Indef NonHuman => dva ; CFMasc Indef NonHuman => dva ;
@@ -743,19 +743,19 @@ resource ResBul = ParamX ** open Prelude, Predef in {
mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} = mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} =
\koi,kogo,gn -> { \koi,kogo,gn -> {
s = table { s = table {
RSubj => table QForm [koi; koi+"òî"] ; RSubj => table QForm [koi; koi+"то"] ;
RObj Acc => table QForm [kogo; kogo+"òî"] ; RObj Acc => table QForm [kogo; kogo+"то"] ;
RObj Dat => table QForm ["íà" ++ kogo; "íà" ++ kogo+"òî"] ; RObj Dat => table QForm ["на" ++ kogo; "на" ++ kogo+"то"] ;
RObj WithPrep => table QForm [with_Word ++ kogo; with_Word ++ kogo+"òî"] ; RObj WithPrep => table QForm [with_Word ++ kogo; with_Word ++ kogo+"то"] ;
RObj CPrep => table QForm [kogo; kogo+"òî"] ; RObj CPrep => table QForm [kogo; kogo+"то"] ;
RVoc => table QForm [koi; koi+"òî"] RVoc => table QForm [koi; koi+"то"]
} ; } ;
gn = gn gn = gn
} ; } ;
with_Word : Str with_Word : Str
= pre { "ñ" ; = pre { "с" ;
"ñúñ" / strs {"ñ" ; "ç" ; "Ñ" ; "Ç"} "със" / strs {"с" ; "з" ; "С" ; "З"}
} ; } ;
mkPron : (az,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) -> mkPron : (az,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) ->
@@ -812,43 +812,43 @@ resource ResBul = ParamX ** open Prelude, Predef in {
whichRP : GenNum => Str whichRP : GenNum => Str
= table { = table {
GSg Masc => "êîéòî" ; GSg Masc => "който" ;
GSg Fem => "êîÿòî" ; GSg Fem => "която" ;
GSg Neut => "êîåòî" ; GSg Neut => "което" ;
GPl => "êîèòî" GPl => "които"
} ; } ;
suchRP : GenNum => Str suchRP : GenNum => Str
= table { = table {
GSg Masc => "òàêúâ" ; GSg Masc => "такъв" ;
GSg Fem => "òàêàâà" ; GSg Fem => "такава" ;
GSg Neut => "òàêîâà" ; GSg Neut => "такова" ;
GPl => "òàêèâà" GPl => "такива"
} ; } ;
thisRP : GenNum => Str thisRP : GenNum => Str
= table { = table {
GSg Masc => "òîçè" ; GSg Masc => "този" ;
GSg Fem => "òaçè" ; GSg Fem => "тaзи" ;
GSg Neut => "òîâà" ; GSg Neut => "това" ;
GPl => "òåçè" GPl => "тези"
} ; } ;
linCoord : Str -> Ints 4 => Str ; linCoord : Str -> Ints 4 => Str ;
linCoord comma = table {0 => "è"; 1=>"èëè"; 2=>"íèòî"; 3=>comma; 4=>[]} ; linCoord comma = table {0 => "и"; 1=>"или"; 2=>"нито"; 3=>comma; 4=>[]} ;
hyphen : Str = SOFT_BIND ++ "-" ++ SOFT_BIND ; hyphen : Str = SOFT_BIND ++ "-" ++ SOFT_BIND ;
reflPron : AForm => Str = reflPron : AForm => Str =
table { table {
ASg Masc Indef => "ñâîé" ; ASg Masc Indef => "свой" ;
ASg Masc Def => "ñâîÿ" ; ASg Masc Def => "своя" ;
ASgMascDefNom => "ñâîÿò" ; ASgMascDefNom => "своят" ;
ASg Fem Indef => "ñâîÿ" ; ASg Fem Indef => "своя" ;
ASg Fem Def => "ñâîÿòà" ; ASg Fem Def => "своята" ;
ASg Neut Indef => "ñâîå" ; ASg Neut Indef => "свое" ;
ASg Neut Def => "ñâîåòî" ; ASg Neut Def => "своето" ;
APl Indef => "ñâîè" ; APl Indef => "свои" ;
APl Def => "ñâîèòå" APl Def => "своите"
} ; } ;
} }

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in { concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all_subs ; flags optimize=all_subs ;
@@ -27,7 +27,7 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
} }
in case orPol p vp.p of { in case orPol p vp.p of {
Pos => vp.ad.s ++ verb Perf ++ clitic ; Pos => vp.ad.s ++ verb Perf ++ clitic ;
Neg => "íå" ++ vp.ad.s ++ clitic ++ verb Imperf Neg => "не" ++ vp.ad.s ++ clitic ++ verb Imperf
} ++ compl ; } ++ compl ;
} ; } ;
@@ -51,11 +51,11 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
SlashVS np vs slash = { SlashVS np vs slash = {
s = \\agr => (mkClause (np.s ! RSubj) np.gn np.p s = \\agr => (mkClause (np.s ! RSubj) np.gn np.p
(insertObj (\\_ => "÷å" ++ slash.s ! agr) Pos (predV vs))).s ; (insertObj (\\_ => "че" ++ slash.s ! agr) Pos (predV vs))).s ;
c2 = slash.c2 c2 = slash.c2
} ; } ;
EmbedS s = {s = "÷å" ++ s.s} ; EmbedS s = {s = "че" ++ s.s} ;
EmbedQS qs = {s = qs.s ! QIndir} ; EmbedQS qs = {s = qs.s ! QIndir} ;
EmbedVP vp = {s = daComplex Simul vp.p vp ! Perf ! agrP3 (GSg Masc)} ; EmbedVP vp = {s = daComplex Simul vp.p vp ! Perf ! agrP3 (GSg Masc)} ;

View File

@@ -1,132 +1,132 @@
--# -coding=cp1251 --# -coding=utf8
concrete StructuralBul of Structural = CatBul ** concrete StructuralBul of Structural = CatBul **
open MorphoBul, ParadigmsBul, Prelude, (X = ConstructX) in { open MorphoBul, ParadigmsBul, Prelude, (X = ConstructX) in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all ; flags optimize=all ;
lin lin
above_Prep = mkPrep "íàä" ; above_Prep = mkPrep "над" ;
after_Prep = mkPrep "ñëåä" ; after_Prep = mkPrep "след" ;
all_Predet = {s = table GenNum ["âñè÷êèÿ";"âñè÷êàòà";"âñè÷êîòî";"âñè÷êèòå"]} ; all_Predet = {s = table GenNum ["всичкия";"всичката";"всичкото";"всичките"]} ;
almost_AdA, almost_AdN = ss "ïî÷òè" ; almost_AdA, almost_AdN = ss "почти" ;
at_least_AdN, at_most_AdN = ss "ïî÷òè" ; ---- AR at_least_AdN, at_most_AdN = ss "почти" ; ---- AR
although_Subj = ss ["âúïðåêè ÷å"] ; although_Subj = ss ["въпреки че"] ;
always_AdV = mkAdV "âèíàãè" ; always_AdV = mkAdV "винаги" ;
and_Conj = mkConj "è" Pl ; and_Conj = mkConj "и" Pl ;
because_Subj = ss "çàùîòî" ; because_Subj = ss "защото" ;
before_Prep = mkPrep "ïðåäè" ; before_Prep = mkPrep "преди" ;
behind_Prep = mkPrep "çàä" ; behind_Prep = mkPrep "зад" ;
between_Prep = mkPrep "ìåæäó" ; between_Prep = mkPrep "между" ;
both7and_DConj = mkConj "è" Pl ** {sep=0} ; both7and_DConj = mkConj "и" Pl ** {sep=0} ;
but_PConj = ss "íî" ; but_PConj = ss "но" ;
by8agent_Prep = mkPrep "÷ðåç" ; by8agent_Prep = mkPrep "чрез" ;
by8means_Prep = mkPrep "÷ðåç" ; by8means_Prep = mkPrep "чрез" ;
can8know_VV, can_VV = mkVV (stateV (mkV166 "ìîãà")) ; can8know_VV, can_VV = mkVV (stateV (mkV166 "мога")) ;
during_Prep = mkPrep ["ïî âðåìå íà"] ; during_Prep = mkPrep ["по време на"] ;
either7or_DConj = mkConj "èëè" Sg ** {sep=1} ; either7or_DConj = mkConj "или" Sg ** {sep=1} ;
everybody_NP = mkNP "âñåêè" (GSg Masc) (NounP3 Pos); everybody_NP = mkNP "всеки" (GSg Masc) (NounP3 Pos);
every_Det = mkDeterminerSg "âñåêè" "âñÿêà" "âñÿêî"; every_Det = mkDeterminerSg "всеки" "всяка" "всяко";
everything_NP = mkNP "âñè÷êî" (GSg Neut) (NounP3 Pos); everything_NP = mkNP "всичко" (GSg Neut) (NounP3 Pos);
everywhere_Adv = ss "íàâñÿêúäå" ; everywhere_Adv = ss "навсякъде" ;
few_Det = {s = \\_,_,_ => "íÿêîëêî"; nn = NCountable; spec = Indef; p = Pos} ; few_Det = {s = \\_,_,_ => "няколко"; nn = NCountable; spec = Indef; p = Pos} ;
--- first_Ord = ss "first" ; DEPRECATED --- first_Ord = ss "first" ; DEPRECATED
for_Prep = mkPrep "çà" ; for_Prep = mkPrep "за" ;
from_Prep = mkPrep "îò" ; from_Prep = mkPrep "от" ;
he_Pron = mkPron "òîé" "íåãîâ" "íåãîâèÿ" "íåãîâèÿò" "íåãîâà" "íåãîâàòà" "íåãîâî" "íåãîâîòî" "íåãîâè" "íåãîâèòå" (GSg Masc) PronP3 ; he_Pron = mkPron "той" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Masc) PronP3 ;
here_Adv = ss "òóê" ; here_Adv = ss "тук" ;
here7to_Adv = ss ["äî òóê"] ; here7to_Adv = ss ["до тук"] ;
here7from_Adv = ss ["îò òóê"] ; here7from_Adv = ss ["от тук"] ;
how_IAdv = mkIAdv "êàê" ; how_IAdv = mkIAdv "как" ;
how8much_IAdv = mkIAdv "êîëêî" ; how8much_IAdv = mkIAdv "колко" ;
how8many_IDet = {s = \\_ => table QForm ["êîëêî";"êîëêîòî"]; n = Pl; nonEmpty = False} ; how8many_IDet = {s = \\_ => table QForm ["колко";"колкото"]; n = Pl; nonEmpty = False} ;
if_Subj = ss "àêî" ; if_Subj = ss "ако" ;
in8front_Prep = mkPrep "ïðåä" ; in8front_Prep = mkPrep "пред" ;
i_Pron = mkPron "àç" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Masc) PronP1 ; i_Pron = mkPron "аз" "мой" "моя" "моят" "моя" "моята" "мое" "моето" "мои" "моите" (GSg Masc) PronP1 ;
in_Prep = mkPrep (pre { "â" ; in_Prep = mkPrep (pre { "в" ;
"âúâ" / strs {"â" ; "ô" ; "Â" ; "Ô"} "във" / strs {"в" ; "ф" ; "В" ; "Ф"}
}) ; }) ;
it_Pron = mkPron "òî" "íåãîâ" "íåãîâèÿ" "íåãîâèÿò" "íåãîâà" "íåãîâàòà" "íåãîâî" "íåãîâîòî" "íåãîâè" "íåãîâèòå" (GSg Neut) PronP3 ; it_Pron = mkPron "то" "негов" "неговия" "неговият" "негова" "неговата" "негово" "неговото" "негови" "неговите" (GSg Neut) PronP3 ;
less_CAdv = X.mkCAdv "ïî-ìàëêî" "îò" ; less_CAdv = X.mkCAdv "по-малко" "от" ;
many_Det = mkDeterminerPl "ìíîãî" ; many_Det = mkDeterminerPl "много" ;
more_CAdv = X.mkCAdv "ïîâå÷å" "îò" ; more_CAdv = X.mkCAdv "повече" "от" ;
most_Predet = {s = \\_ => "ïîâå÷åòî"} ; most_Predet = {s = \\_ => "повечето"} ;
much_Det = mkDeterminerSg "ìíîãî" "ìíîãî" "ìíîãî"; much_Det = mkDeterminerSg "много" "много" "много";
must_VV = must_VV =
mkVV { mkVV {
s = \\_=>table { s = \\_=>table {
VPres _ _ => "òðÿáâà" ; VPres _ _ => "трябва" ;
VAorist _ _ => "òðÿáâàøå" ; VAorist _ _ => "трябваше" ;
VImperfect _ _ => "òðÿáâàëî" ; VImperfect _ _ => "трябвало" ;
VPerfect _ => "òðÿáâàëî" ; VPerfect _ => "трябвало" ;
VPluPerfect _ => "òðÿáâàëî" ; VPluPerfect _ => "трябвало" ;
VPassive _ => "òðÿáâàëî" ; VPassive _ => "трябвало" ;
VPresPart _ => "òðÿáâàëî" ; VPresPart _ => "трябвало" ;
VImperative Sg => "òðÿáâàé" ; VImperative Sg => "трябвай" ;
VImperative Pl => "òðÿáâàéòå" ; VImperative Pl => "трябвайте" ;
VNoun _ => "òðÿáâàíå" ; VNoun _ => "трябване" ;
VGerund => "òðÿáâàéêè" VGerund => "трябвайки"
} ; } ;
vtype=VNormal ; vtype=VNormal ;
lock_V=<> lock_V=<>
} ; } ;
no_Utt = ss "íå" ; no_Utt = ss "не" ;
on_Prep = mkPrep "íà" ; on_Prep = mkPrep "на" ;
---- one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED ---- one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
only_Predet = {s = \\_ => "ñàìî"} ; only_Predet = {s = \\_ => "само"} ;
or_Conj = mkConj "èëè" Sg ; or_Conj = mkConj "или" Sg ;
otherwise_PConj = ss "èíà÷å" ; otherwise_PConj = ss "иначе" ;
part_Prep = mkPrep "îò" ; part_Prep = mkPrep "от" ;
please_Voc = ss "ìîëÿ" ; please_Voc = ss "моля" ;
possess_Prep = mkPrep [] Dat ; possess_Prep = mkPrep [] Dat ;
quite_Adv = ss "äîñòà" ; quite_Adv = ss "доста" ;
she_Pron = mkPron "òÿ" "íåèí" "íåéíèÿ" "íåéíèÿò" "íåéíà" "íåéíàòà" "íåéíî" "íåéíîòî" "íåéíè" "íåéíèòå" (GSg Fem) PronP3 ; she_Pron = mkPron "тя" "неин" "нейния" "нейният" "нейна" "нейната" "нейно" "нейното" "нейни" "нейните" (GSg Fem) PronP3 ;
so_AdA = ss "òîëêîâà" ; so_AdA = ss "толкова" ;
somebody_NP = mkNP "íÿêîé" (GSg Masc) (NounP3 Pos); somebody_NP = mkNP "някой" (GSg Masc) (NounP3 Pos);
someSg_Det = mkDeterminerSg "íÿêîé" "íÿêîÿ" "íÿêîå" ; someSg_Det = mkDeterminerSg "някой" "някоя" "някое" ;
somePl_Det = mkDeterminerPl "íÿêîè" ; somePl_Det = mkDeterminerPl "някои" ;
something_NP = mkNP "íåùî" (GSg Neut) (NounP3 Pos); something_NP = mkNP "нещо" (GSg Neut) (NounP3 Pos);
somewhere_Adv = ss "íÿêúäå" ; somewhere_Adv = ss "някъде" ;
that_Quant = mkQuant "îíçè" "îíàçè" "îíîâà" "îíåçè" ; that_Quant = mkQuant "онзи" "онази" "онова" "онези" ;
that_Subj = ss "÷å" ; that_Subj = ss "че" ;
there_Adv = ss "òàì" ; there_Adv = ss "там" ;
there7to_Adv = ss ["äî òàì"] ; there7to_Adv = ss ["до там"] ;
there7from_Adv = ss ["îò òàì"] ; there7from_Adv = ss ["от там"] ;
therefore_PConj = ss ["òàêà ÷å"] ; therefore_PConj = ss ["така че"] ;
they_Pron = mkPron "òå" "òåõåí" "òåõíèÿ" "òåõíèÿò" "òÿõíà" "òÿõíàòà" "òÿõíî" "òÿõíîòî" "òåõíè" "òåõíèòå" GPl PronP3 ; they_Pron = mkPron "те" "техен" "техния" "техният" "тяхна" "тяхната" "тяхно" "тяхното" "техни" "техните" GPl PronP3 ;
this_Quant = mkQuant "òîçè" "òàçè" "òîâà" "òåçè" ; this_Quant = mkQuant "този" "тази" "това" "тези" ;
through_Prep = mkPrep "ïðåç" ; through_Prep = mkPrep "през" ;
too_AdA = ss "ïðåêàëåíî" ; too_AdA = ss "прекалено" ;
to_Prep = mkPrep "äî" ; to_Prep = mkPrep "до" ;
under_Prep = mkPrep "ïîä" ; under_Prep = mkPrep "под" ;
very_AdA = ss "ìíîãî" ; very_AdA = ss "много" ;
want_VV = mkVV (stateV (mkV186 "èñêàì")) ; want_VV = mkVV (stateV (mkV186 "искам")) ;
we_Pron = mkPron "íèå" "íàø" "íàøèÿ" "íàøèÿò" "íàøà" "íàøàòà" "íàøå" "íàøåòî" "íàøè" "íàøèòå" GPl PronP1 ; we_Pron = mkPron "ние" "наш" "нашия" "нашият" "наша" "нашата" "наше" "нашето" "наши" "нашите" GPl PronP1 ;
whatPl_IP = mkIP "êàêâè" "êàêâè" GPl ; whatPl_IP = mkIP "какви" "какви" GPl ;
whatSg_IP = mkIP "êàêúâ" "êàêúâ" (GSg Masc) ; whatSg_IP = mkIP "какъв" "какъв" (GSg Masc) ;
when_IAdv = mkIAdv "êîãà" ; when_IAdv = mkIAdv "кога" ;
when_Subj = ss "êîãàòî" ; when_Subj = ss "когато" ;
where_IAdv = mkIAdv "êúäå" ; where_IAdv = mkIAdv "къде" ;
which_IQuant = {s = table GenNum [table QForm ["êîé";"êîéòî"]; which_IQuant = {s = table GenNum [table QForm ["кой";"който"];
table QForm ["êîÿ";"êîÿòî"]; table QForm ["коя";"която"];
table QForm ["êîå";"êîåòî"]; table QForm ["кое";"което"];
table QForm ["êîè";"êîèòî"]]} ; table QForm ["кои";"които"]]} ;
whoSg_IP = mkIP "êîé" "êîãî" (GSg Masc) ; whoSg_IP = mkIP "кой" "кого" (GSg Masc) ;
whoPl_IP = mkIP "êîè" "êîè" GPl ; whoPl_IP = mkIP "кои" "кои" GPl ;
why_IAdv = mkIAdv "çàùî" ; why_IAdv = mkIAdv "защо" ;
without_Prep = mkPrep "áåç" ; without_Prep = mkPrep "без" ;
with_Prep = mkPrep "" WithPrep ; with_Prep = mkPrep "" WithPrep ;
yes_Utt = ss "äà" ; yes_Utt = ss "да" ;
youSg_Pron = mkPron "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Masc) PronP2 ; youSg_Pron = mkPron "ти" "твой" "твоя" "твоят" "твоя" "твоята" "твое" "твоето" "твои" "твоите" (GSg Masc) PronP2 ;
youPl_Pron = mkPron "âèå" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" GPl PronP2 ; youPl_Pron = mkPron "вие" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl PronP2 ;
youPol_Pron = mkPron "âèå" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" GPl PronP2 ; youPol_Pron = mkPron "вие" "ваш" "вашия" "вашият" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" GPl PronP2 ;
as_CAdv = X.mkCAdv [] "êîëêîòî" ; as_CAdv = X.mkCAdv [] "колкото" ;
have_V2 = dirV2 (stateV (mkV186 "èìàì")) ; have_V2 = dirV2 (stateV (mkV186 "имам")) ;
lin language_title_Utt = ss "Áúëãàðñêè" ; lin language_title_Utt = ss "Български" ;
} }

View File

@@ -1,10 +1,10 @@
--# -path=.:../abstract:../common:../prelude --# -path=.:../abstract:../common:../prelude
--# -coding=cp1251 --# -coding=utf8
concrete SymbolBul of Symbol = CatBul ** open Prelude, ResBul in { concrete SymbolBul of Symbol = CatBul ** open Prelude, ResBul in {
flags flags
coding = cp1251 ; coding = utf8 ;
lin lin
SymbPN i = {s = i.s ; g = Neut} ; SymbPN i = {s = i.s ; g = Neut} ;
@@ -32,15 +32,15 @@ lin
SymbNum sy = {s = \\_ => sy.s; nn = NNum Pl} ; SymbNum sy = {s = \\_ => sy.s; nn = NNum Pl} ;
SymbOrd sy = {s = \\aform => sy.s ++ "-" ++ SymbOrd sy = {s = \\aform => sy.s ++ "-" ++
case aform of { case aform of {
ASg Masc Indef => "òè" ; ASg Masc Indef => "ти" ;
ASg Fem Indef => "òà" ; ASg Fem Indef => "та" ;
ASg Neut Indef => "òî" ; ASg Neut Indef => "то" ;
ASg Masc Def => "òèÿ" ; ASg Masc Def => "тия" ;
ASg Fem Def => "òàòà" ; ASg Fem Def => "тата" ;
ASg Neut Def => "òîòî" ; ASg Neut Def => "тото" ;
ASgMascDefNom => "òèÿò" ; ASgMascDefNom => "тият" ;
APl Indef => "òè" ; APl Indef => "ти" ;
APl Def => "òèòå" APl Def => "тите"
} }
} ; } ;
@@ -52,7 +52,7 @@ lin
MkSymb s = s ; MkSymb s = s ;
BaseSymb = infixSS "è" ; BaseSymb = infixSS "и" ;
ConsSymb = infixSS bindComma ; ConsSymb = infixSS bindComma ;
} }

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete TextBul of Text = CatBul ** open Prelude in { concrete TextBul of Text = CatBul ** open Prelude in {
flags coding=cp1251 ; flags coding=utf8 ;
-- This will work for almost all languages except Spanish. -- This will work for almost all languages except Spanish.

View File

@@ -1,6 +1,6 @@
--# -coding=cp1251 --# -coding=utf8
concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in { concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
flags coding=cp1251 ; flags coding=utf8 ;
flags optimize=all_subs ; flags optimize=all_subs ;
@@ -39,7 +39,7 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
}) vp.p }) vp.p
(predV vv) ; (predV vv) ;
ComplVS v s = insertObj (\\_ => bindComma ++ "÷å" ++ s.s) Pos (predV v) ; ComplVS v s = insertObj (\\_ => bindComma ++ "че" ++ s.s) Pos (predV v) ;
ComplVQ v q = insertObj (\\_ => q.s ! QDir) Pos (predV v) ; ComplVQ v q = insertObj (\\_ => q.s ! QDir) Pos (predV v) ;
ComplVA v ap = ComplVA v ap =
@@ -50,7 +50,7 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in {
insertSlashObj2 (\\a => v.c3.s ++ ap.s ! aform a.gn Indef (RObj Acc) ! a.p) Pos (slashV v v.c2 v.subjCtrl) ; insertSlashObj2 (\\a => v.c3.s ++ ap.s ! aform a.gn Indef (RObj Acc) ! a.p) Pos (slashV v v.c2 v.subjCtrl) ;
-- test: I saw a boy to whom she said that they are here -- test: I saw a boy to whom she said that they are here
SlashV2S v s = insertSlashObj2 (\\_ => bindComma ++ "÷å" ++ s.s) Pos (slashV v v.c2 False) ; SlashV2S v s = insertSlashObj2 (\\_ => bindComma ++ "че" ++ s.s) Pos (slashV v v.c2 False) ;
-- test: I saw a boy whom she asked who is here -- test: I saw a boy whom she asked who is here
SlashV2Q v q = insertSlashObj2 (\\_ => q.s ! QDir) Pos (slashV v v.c2 False) ; SlashV2Q v q = insertSlashObj2 (\\_ => q.s ! QDir) Pos (slashV v v.c2 False) ;