diff --git a/src/bulgarian/CatBul.gf b/src/bulgarian/CatBul.gf index 9f511c66d..57d2ad5c6 100644 --- a/src/bulgarian/CatBul.gf +++ b/src/bulgarian/CatBul.gf @@ -84,9 +84,9 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv,AdV,SC] ** open ResBul, Prelude, P A = {s : AForm => Str; adv : Str} ; A2 = {s : AForm => Str; adv : Str; c2 : Str} ; - N = {s : NForm => Str; rel : AForm => Str; relPost : Bool; g : AGender} ; - N2 = {s : NForm => Str; g : AGender} ** {c2 : Preposition} ; - N3 = {s : NForm => Str; g : AGender} ** {c2,c3 : Preposition} ; + N = {s : NForm => Str; rel : AForm => Str; relPost : Bool; g : AGender} ; + N2 = {s : NForm => Str; rel : AForm => Str; relPost : Bool; g : AGender} ** {c2 : Preposition} ; + N3 = {s : NForm => Str; rel : AForm => Str; relPost : Bool; g : AGender} ** {c2,c3 : Preposition} ; PN = {s : Str; g : Gender} ; lindef @@ -107,8 +107,8 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv,AdV,SC] ** open ResBul, Prelude, P A2 = \s -> {s = \\_ => s; adv = s; c2 = ""}; N = \s -> {s = \\_ => s; rel = \\_ => s; relPost = False; g = AMasc NonHuman}; - N2 = \s -> {s = \\_ => s; g = AMasc NonHuman; c2 = {s=""; c=Acc}}; - N3 = \s -> {s = \\_ => s; g = AMasc NonHuman; c2,c3 = {s=""; c=Acc}}; + N2 = \s -> {s = \\_ => s; rel = \\_ => s; relPost = False; g = AMasc NonHuman; c2 = {s=""; c=Acc}}; + N3 = \s -> {s = \\_ => s; rel = \\_ => s; relPost = False; g = AMasc NonHuman; c2,c3 = {s=""; c=Acc}}; linref SSlash = \ss -> ss.s ! agrP3 (GSg Masc) ++ ss.c2.s; diff --git a/src/bulgarian/ExtendBul.gf b/src/bulgarian/ExtendBul.gf index a3c185348..380ba5dc3 100644 --- a/src/bulgarian/ExtendBul.gf +++ b/src/bulgarian/ExtendBul.gf @@ -150,8 +150,9 @@ lin } ; s = reflPron ! aform (gennum cn.g (numnnum num.nn)) Def (RObj Acc) ++ num.s ! dgenderSpecies cn.g Indef role ++ cn.s ! nf in case role of { - RObj Dat => "на" ++ s; - _ => s + RObj Dat => "на" ++ s; + RObj WithPrep => with_Word ++ s; + _ => s } ; a = {gn = gennum cn.g (numnnum num.nn); p = P3} ; p = Pos diff --git a/src/bulgarian/MorphoFunsBul.gf b/src/bulgarian/MorphoFunsBul.gf index 0b696d530..0ce035a80 100644 --- a/src/bulgarian/MorphoFunsBul.gf +++ b/src/bulgarian/MorphoFunsBul.gf @@ -170,7 +170,7 @@ oper -- prepN2 : N -> Prep -> N2 ; - prepN2 n p = {s = n.s; g = n.g; c2 = p; lock_N2 = <>} ; + prepN2 n p = n ** {c2 = p} ; dirN2 : N -> N2 ; dirN2 n = prepN2 n noPrep ; @@ -180,7 +180,7 @@ oper -- prepN3 : N -> Prep -> Prep -> N3 ; - prepN3 n p q = {s = n.s; g = n.g; c2 = p; c3 = q; lock_N3 = <>} ; + prepN3 n p q = n ** {c2 = p; c3 = q} ; dirN3 : N -> Prep -> N3 ; dirN3 n p = prepN3 n noPrep p ; diff --git a/src/bulgarian/NounBul.gf b/src/bulgarian/NounBul.gf index c6072737b..046f7a85c 100644 --- a/src/bulgarian/NounBul.gf +++ b/src/bulgarian/NounBul.gf @@ -166,10 +166,10 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in { UseN2 noun = noun ; ComplN2 f x = {s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c; g=f.g} ; - ComplN3 f x = {s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c; c2 = f.c3; g=f.g} ; + ComplN3 f x = {s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c; rel = \\af => f.rel ! af ++ f.c2.s ++ x.s ! RObj f.c2.c; relPost = True; c2 = f.c3; g=f.g} ; - Use2N3 f = {s = f.s ; g=f.g ; c2 = f.c2} ; - Use3N3 f = {s = f.s ; g=f.g ; c2 = f.c3} ; + Use2N3 f = {s = f.s ; rel = f.rel ; relPost = f.relPost ; g=f.g ; c2 = f.c2} ; + Use3N3 f = {s = f.s ; rel = f.rel ; relPost = f.relPost ; g=f.g ; c2 = f.c3} ; AdjCN ap cn = {