From 10d45593e409e78ca1d7bd6ca3e83ff75db27d7b Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 23 Aug 2026 19:20:14 +0200 Subject: [PATCH] fixed InLN, ExistNP, ExistNPAdv --- src/macedonian/IdiomMkd.gf | 20 +++++++++++++++++--- src/macedonian/NamesMkd.gf | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/macedonian/IdiomMkd.gf b/src/macedonian/IdiomMkd.gf index 770e1577..88a5940b 100644 --- a/src/macedonian/IdiomMkd.gf +++ b/src/macedonian/IdiomMkd.gf @@ -1,12 +1,26 @@ -concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd in { +concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd,MorphoMkd in { lin CleftAdv a s = {s = \\t,a2,p,o => a.s ++ s.s} ; lin CleftNP np rs = {s = \\t,a,p,o => np.s ! RSubj ++ rs.s ! np.a.g} ; lin ExistIP ip = {s = \\t,a,p => ip.s} ; lin ExistIPAdv ip a = {s = \\t,a2,p => ip.s ++ a.s} ; - lin ExistNP np = {s = \\t,a,p,o => np.s ! RSubj} ; - lin ExistNPAdv np a = {s = \\t,a2,p,o => np.s ! RSubj ++ a.s} ; + lin ExistNP np = { + s = \\o,t,a,p => + let vp = case p of { + Pos => mkV001 "има" ; + Neg => mkV001 "нема" + } ** {compl = \\_ => np.s ! RSubj} ; + in mkClause [] {g=GSg Neuter; p=P3} vp ! o ! t ! a ! p + } ; + lin ExistNPAdv np a = { + s = \\o,t,a2,p => + let vp = case p of { + Pos => mkV001 "има" ; + Neg => mkV001 "нема" + } ** {compl = \\_ => np.s ! RSubj ++ a.s} ; + in mkClause [] {g=GSg Neuter; p=P3} vp ! o ! t ! a2 ! p + } ; lin GenericCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg ! P1} ; lin ImpP3 np vp = {s = np.s ! RSubj diff --git a/src/macedonian/NamesMkd.gf b/src/macedonian/NamesMkd.gf index c9b3caf0..93269761 100644 --- a/src/macedonian/NamesMkd.gf +++ b/src/macedonian/NamesMkd.gf @@ -6,7 +6,7 @@ concrete NamesMkd of Names = CatMkd ** open Prelude,ResMkd in { vocative = gn.s ++ sn.s; a = {g = GSg Masc; p = P1}} ; lin GivenName gn = {s = \\r => gn.s; vocative = gn.s; a = {g = GSg Masc; p = P1}} ; - lin InLN ln = {s = ln.s} ; + lin InLN ln = {s = "во" ++ ln.s} ; lin MaleSurname sn = {s = \\r => sn.s; vocative = sn.s; a = {g = GSg Masc; p = P1}} ; lin PlSurname sn = {s = \\r => sn.s; vocative = sn.s;