diff --git a/src/bulgarian/CatBul.gf b/src/bulgarian/CatBul.gf index 38dcd202..e11f2039 100644 --- a/src/bulgarian/CatBul.gf +++ b/src/bulgarian/CatBul.gf @@ -1,5 +1,5 @@ --# -coding=utf8 -concrete CatBul of Cat = CommonX - [IAdv,CAdv,SC] ** open ResBul, Prelude, Predef, (R = ParamX) in { +concrete CatBul of Cat = CommonX - [IAdv,CAdv,AdV,SC] ** open ResBul, Prelude, Predef, (R = ParamX) in { lincat -- Tensed/Untensed @@ -42,10 +42,11 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv,SC] ** open ResBul, Prelude, Prede AP = {s : AForm => Person => Str; adv : Str; isPre : Bool} ; --- Adjective +-- Adverb CAdv = {s : Str; sn : Str} ; IAdv = {s : QForm => Str} ; + AdV = {s : Str; p : Polarity} ; SC = {s : Agr => Str} ; -- Noun diff --git a/src/bulgarian/ConjunctionBul.gf b/src/bulgarian/ConjunctionBul.gf index 8fae7946..2ab10066 100644 --- a/src/bulgarian/ConjunctionBul.gf +++ b/src/bulgarian/ConjunctionBul.gf @@ -17,6 +17,7 @@ concrete ConjunctionBul of Conjunction = ConjAdV conj ss = { s = conj.s ++ (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj; + p = Pos } ; ConjIAdv conj ss = { diff --git a/src/bulgarian/DictBul.gf b/src/bulgarian/DictBul.gf index 735ec84a..a82315c2 100644 --- a/src/bulgarian/DictBul.gf +++ b/src/bulgarian/DictBul.gf @@ -29808,7 +29808,7 @@ lin otb_ja_gvane_N = mkN071 "отбягване" ; otvara_N = mkN041 "отвара" ; otvara_ch_ka_N = mkN041 "отварачка" ; - otvar_ja_m_V = actionV (mkV187 "отварям") (mkV152 "отбегна") ; + otvar_ja_m_V = actionV (mkV187 "отварям") (mkV173 "отворя")) ; otvar_ja_ne_N = mkN071 "отваряне" ; otve_zj_dam_V = actionV (mkV186 "отвеждам") (mkV145 "отведа") ; otve_zj_dane_N = mkN071 "отвеждане" ; diff --git a/src/bulgarian/ExtendBul.gf b/src/bulgarian/ExtendBul.gf index 81d75307..a3c18534 100644 --- a/src/bulgarian/ExtendBul.gf +++ b/src/bulgarian/ExtendBul.gf @@ -4,7 +4,7 @@ concrete ExtendBul of Extend = CatBul ** open Prelude, Predef, ResBul, GrammarBu lin GenModNP num np cn = DetCN (DetQuant DefArt num) (AdvCN cn (PrepNP possess_Prep np)) ; -- this man's car(s) ; DEFAULT the car of this man - AdAdV = cc2 ; + AdAdV a adv = {s = a.s ++ adv.s; p = adv.p} ; EmptyRelSlash slash = { s = \\t,a,p,agr => slash.c2.s ++ whichRP ! agr.gn ++ slash.s ! agr ! t ! a ! p ! Main ; @@ -26,7 +26,7 @@ lin g = n2.g } ; - PositAdVAdj a = {s = a.adv} ; + PositAdVAdj a = {s = a.adv; p = Pos} ; PresPartAP vp = let ap : AForm => Person => Str diff --git a/src/bulgarian/GrammarBul.gf b/src/bulgarian/GrammarBul.gf index 76a063ce..db81c73c 100644 --- a/src/bulgarian/GrammarBul.gf +++ b/src/bulgarian/GrammarBul.gf @@ -15,7 +15,7 @@ concrete GrammarBul of Grammar = TextBul, StructuralBul, IdiomBul, - TenseX - [CAdv,IAdv,SC] + TenseX - [CAdv,IAdv,AdV,SC] ** { flags coding=cp1251 ; diff --git a/src/bulgarian/MorphoFunsBul.gf b/src/bulgarian/MorphoFunsBul.gf index d0a0e9b2..9691c081 100644 --- a/src/bulgarian/MorphoFunsBul.gf +++ b/src/bulgarian/MorphoFunsBul.gf @@ -16,7 +16,8 @@ oper -- 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 = <>} ; + mkAdV : Str -> AdV = \x -> {s = x; p = Pos; lock_AdV = <>} ; + mkAdVNegative : Str -> AdV = \x -> {s = x; p = Neg; lock_AdV = <>} ; -- Adverbs modifying adjectives and sentences can also be formed. diff --git a/src/bulgarian/StructuralBul.gf b/src/bulgarian/StructuralBul.gf index 4b2b2312..9c30163f 100644 --- a/src/bulgarian/StructuralBul.gf +++ b/src/bulgarian/StructuralBul.gf @@ -13,7 +13,7 @@ concrete StructuralBul of Structural = CatBul ** almost_AdA, almost_AdN = ss "" ; at_least_AdN, at_most_AdN = ss "" ; ---- AR although_Subj = ss [" "] ; - always_AdV = ss "" ; + always_AdV = mkAdV "" ; and_Conj = {s=[]; conj=0; distr=False; n = Pl} ; because_Subj = ss "" ; before_Prep = mkPrep "" Acc ; diff --git a/src/bulgarian/VerbBul.gf b/src/bulgarian/VerbBul.gf index 5df51281..77dff9c1 100644 --- a/src/bulgarian/VerbBul.gf +++ b/src/bulgarian/VerbBul.gf @@ -91,7 +91,7 @@ concrete VerbBul of Verb = CatBul ** open Prelude, ResBul, ParadigmsBul in { ad = {isEmpty=False; s=vp.ad.s ++ adv.s} ; compl = vp.compl ; vtype = vp.vtype ; - p = vp.p ; + p = orPol adv.p vp.p ; isSimple = vp.isSimple } ; AdVVPSlash adv vp = {