From 07f538cd4e3887d76ee91d8945b2fa48dfc0b21a Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Tue, 20 Mar 2018 16:01:34 +0100 Subject: [PATCH] isPost in Pol AP, used in CompA2 --- src/polish/AdjectivePol.gf | 20 +++++++++++--------- src/polish/ConjunctionPol.gf | 9 +++++---- src/polish/NounPol.gf | 5 ++++- src/polish/ResPol.gf | 2 +- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/polish/AdjectivePol.gf b/src/polish/AdjectivePol.gf index 761effb4c..f9157deec 100644 --- a/src/polish/AdjectivePol.gf +++ b/src/polish/AdjectivePol.gf @@ -7,39 +7,41 @@ flags coding=utf8 ; lin - PositA a = { s = mkAtable a.pos; adv = a.advpos}; + PositA a = { s = mkAtable a.pos; adv = a.advpos ; isPost = False}; - UseComparA a = { s = mkAtable a.comp; adv=a.advcomp}; + UseComparA a = { s = mkAtable a.comp; adv=a.advcomp ; isPost = False}; - ComparA a np = { s = \\af => (mkAtable a.comp) ! af ++ "niż" ++ np.nom ; adv=a.advcomp }; + ComparA a np = { s = \\af => (mkAtable a.comp) ! af ++ "niż" ++ np.nom ; adv=a.advcomp ; isPost = False}; - AdjOrd o = {s=o.s; adv="["++o.s!AF MascPersSg Nom ++ [": the adverb form does not exist (fun AdjOrd)]"]}; + AdjOrd o = {s=o.s; adv="["++o.s!AF MascPersSg Nom ++ [": the adverb form does not exist (fun AdjOrd)]"] ; isPost = False}; - AdAP ada ap = { s = \\af => ada.s ++ ap.s ! af; adv = ada.s ++ ap.adv}; + AdAP ada ap = { s = \\af => ada.s ++ ap.s ! af; adv = ada.s ++ ap.adv ; isPost = ap.isPost}; -- CAdvAP : CAdv -> AP -> NP -> AP ; -- as cool as John CAdvAP c a n = { s = \\af=> c.s ++ a.s!af ++ c.p ++ n.nom; adv = c.s ++ a.adv ++ c.p ++ n.nom; + isPost = False }; -- ComplA2 : A2 -> NP -> AP ; -- married to her ComplA2 a n = { s = \\af=>(mkAtable a.pos)!af ++ a.c.s ++ n.dep!a.c.c; - adv = a.advpos ++ a.c.s ++ n.dep!a.c.c + adv = a.advpos ++ a.c.s ++ n.dep!a.c.c ; + isPost = True }; -- ReflA2 : A2 -> AP ; -- married to itself ReflA2 a = { s = \\af=>(mkAtable a.pos)!af ++ a.c.s ++ siebie!(extract_case!a.c.c); - adv = a.advpos ++ a.c.s ++ siebie!(extract_case!a.c.c) + adv = a.advpos ++ a.c.s ++ siebie!(extract_case!a.c.c) ; isPost = True }; -- UseA2 : A2 -> AP ; -- married - UseA2 a = { s = mkAtable a.pos; adv=a.advpos}; + UseA2 a = { s = mkAtable a.pos; adv=a.advpos ; isPost = False}; -- SentAP : AP -> SC -> AP ; -- good that she is here -- I have bad feelling about this function - SentAP a s = {s=\\_=>a.adv ++ s.s; adv=a.adv ++ s.s }; + SentAP a s = {s=\\_=>a.adv ++ s.s; adv=a.adv ++ s.s ; isPost = True}; }; diff --git a/src/polish/ConjunctionPol.gf b/src/polish/ConjunctionPol.gf index 8bc4d7ebb..773aabbff 100644 --- a/src/polish/ConjunctionPol.gf +++ b/src/polish/ConjunctionPol.gf @@ -39,6 +39,7 @@ concrete ConjunctionPol of Conjunction = ConjAP conj list = { adv = conj.s1 ++ list.ap1.adv ++ conj.s2 ++ list.ap2.adv; s = \\af=>conj.s1 ++ list.ap1.s!af ++ conj.s2 ++ list.ap2.s!af; + isPost = list.ap2.isPost --- }; ConjRS = conjunctDistrTable GenNum; @@ -72,18 +73,18 @@ concrete ConjunctionPol of Conjunction = } }; - BaseAP ap1 ap2 = { ap1=ap1; ap2=ap2 }; + BaseAP ap1 ap2 = { ap1=ap1; ap2=ap2 ; isPost = ap2.isPost}; ConsAP ap apl = { ap2=apl.ap2; ap1={ s = \\af=> ap.s!af ++ "," ++ apl.ap1.s!af; - adv = ap.adv ++ "," ++ apl.ap1.adv - } }; + adv = ap.adv ++ "," ++ apl.ap1.adv ; isPost = apl.isPost + } ; isPost = apl.isPost}; lincat [S] = {s1,s2 : Str} ; [Adv] = {s1,s2 : Str} ; [NP] = {np1,np2 : NounPhrase} ; - [AP] = {ap1,ap2 : AdjPhrase} ; + [AP] = {ap1,ap2 : AdjPhrase ; isPost : Bool} ; [RS] = {s1,s2 : GenNum => Str} ; } diff --git a/src/polish/NounPol.gf b/src/polish/NounPol.gf index 1f330645e..103bbe355 100644 --- a/src/polish/NounPol.gf +++ b/src/polish/NounPol.gf @@ -54,7 +54,10 @@ concrete NounPol of Noun = CatPol ** open ResPol, Prelude, PronounMorphoPol, Mor }; AdjCN mily facet = { - s = \\n,c => (mily.s ! AF (cast_gennum!) c) ++ (facet.s ! n ! c); + s = \\n,c => case mily.isPost of { + True => (facet.s ! n ! c) ++ (mily.s ! AF (cast_gennum!) c) ; + _ => (mily.s ! AF (cast_gennum!) c) ++ (facet.s ! n ! c) + } ; g = facet.g }; diff --git a/src/polish/ResPol.gf b/src/polish/ResPol.gf index 6544a79cc..925d61df7 100644 --- a/src/polish/ResPol.gf +++ b/src/polish/ResPol.gf @@ -174,7 +174,7 @@ param AForm = AF GenNum Case; - oper AdjPhrase = { s : AForm => Str; adv:Str }; + oper AdjPhrase = { s : AForm => Str; adv:Str ; isPost : Bool }; --4 Pronoun