diff --git a/lib/src/bulgarian/ExtraBul.gf b/lib/src/bulgarian/ExtraBul.gf index 103b19748..097572c06 100644 --- a/lib/src/bulgarian/ExtraBul.gf +++ b/lib/src/bulgarian/ExtraBul.gf @@ -5,7 +5,7 @@ concrete ExtraBul of ExtraBulAbs = CatBul ** lin PossIndefPron p = { - s = \\_,aform => p.gen ! (indefAForm ! aform) ; + s = \\_,aform => p.gen ! (indefAForm aform) ; nonEmpty = True; spec = Indef } ; @@ -17,7 +17,7 @@ concrete ExtraBul of ExtraBulAbs = CatBul ** } ; ReflIndefQuant = { - s = \\_,aform => reflPron ! (indefAForm ! aform) ; + s = \\_,aform => reflPron ! (indefAForm aform) ; nonEmpty = True; spec = Indef } ; @@ -65,13 +65,6 @@ concrete ExtraBul of ExtraBulAbs = CatBul ** APl Indef => "свои" ; APl Def => "своите" } ; - - indefAForm : AForm => AForm = - table { - ASg g _ => ASg g Indef ; - ASgMascDefNom => ASg Masc Indef ; - APl _ => APl Indef - } ; lincat VPI = {s : Agr => Str} ; diff --git a/lib/src/bulgarian/MorphoFunsBul.gf b/lib/src/bulgarian/MorphoFunsBul.gf index 05723f62b..5e50ed154 100644 --- a/lib/src/bulgarian/MorphoFunsBul.gf +++ b/lib/src/bulgarian/MorphoFunsBul.gf @@ -181,10 +181,15 @@ oper NFPlCount => n1.s ! NFPlCount ++ n2.s ! (NF Pl Indef) ; NFVocative => n1.s ! NFVocative ++ n2.s ! (NF Sg Indef) } ; - rel = \\aform => n1.rel ! aform; - g = n1.g ; - g = n1.anim + rel = \\aform => n1.rel ! aform; + g = n1.g } ; + compoundN : A -> N -> N + = \a,n -> lin N + {s = \\nf => (a.s ! nform2aform nf n.g) ++ (n.s ! (indefNForm nf)) ; + rel = \\aform => a.s ! aform ++ n.rel ! indefAForm aform ; + g = n.g + } ; } ; relativeN : N -> A -> N; diff --git a/lib/src/bulgarian/ResBul.gf b/lib/src/bulgarian/ResBul.gf index a9b51612c..afa215667 100644 --- a/lib/src/bulgarian/ResBul.gf +++ b/lib/src/bulgarian/ResBul.gf @@ -155,6 +155,13 @@ resource ResBul = ParamX ** open Prelude, Predef in { GPl => APl spec } ; + indefAForm : AForm -> AForm + = \af -> case af of { + ASg g spec => ASg g Indef ; + ASgMascDefNom => ASg Masc Indef ; + APl spec => APl Indef + } ; + dgenderSpecies : AGender -> Species -> Role -> CardForm = \g,spec,role -> case of { => CFMasc Indef a ;