diff --git a/src/romance/AdjectiveRomance.gf b/src/romance/AdjectiveRomance.gf index 700300756..9a523164e 100644 --- a/src/romance/AdjectiveRomance.gf +++ b/src/romance/AdjectiveRomance.gf @@ -4,27 +4,27 @@ incomplete concrete AdjectiveRomance of Adjective = lin PositA a = { - s = a.s ! Posit ; + s = \\_p => a.s ! Posit ; isPre = a.isPre ; copTyp = a.copTyp } ; ComparA a np = { - s = \\af => a.s ! Compar ! af ++ conjThan ++ (np.s ! Nom).ton ; + s = \\_p,af => a.s ! Compar ! af ++ conjThan ++ (np.s ! Nom).ton ; isPre = False ; copTyp = a.copTyp } ; CAdvAP ad ap np = { - s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ (np.s ! Nom).ton ; + s = \\_p,af => ad.s ++ ap.s ! _p ! af ++ ad.p ++ (np.s ! Nom).ton ; isPre = False ; copTyp = ap.copTyp } ; UseComparA a = { - s = \\af => a.s ! Compar ! af ; + s = \\_p,af => a.s ! Compar ! af ; isPre = a.isPre ; copTyp = a.copTyp } ; AdjOrd ord = { - s = \\af => ord.s ! aform2aagr af ; ---- + s = \\_p,af => ord.s ! aform2aagr af ; ---- isPre = False ; ---- copTyp = serCopula } ; @@ -32,39 +32,39 @@ incomplete concrete AdjectiveRomance of Adjective = -- $SuperlA$ belongs to determiner syntax in $Noun$. ComplA2 adj np = { - s = \\af => adj.s ! Posit ! af ++ appCompl adj.c2 np ; + s = \\_p,af => adj.s ! Posit ! af ++ appCompl adj.c2 np ; isPre = False ; copTyp = serCopula } ; ReflA2 adj = { - s = \\af => + s = \\p,af => adj.s ! Posit ! af ++ - adj.c2.s ++ prepCase adj.c2.c ++ reflPron Sg P3 Nom ; --- agr + adj.c2.s ++ prepCase adj.c2.c ++ reflPron Sg p Nom ; --- agr isPre = False ; copTyp = serCopula } ; SentAP ap sc = { - s = \\a => ap.s ! a ++ sc.s ! dative ; -- prête à dormir --- mood + s = \\_p,a => ap.s ! _p ! a ++ sc.s ! dative ; -- prête à dormir --- mood isPre = False ; copTyp = ap.copTyp } ; AdAP ada ap = { - s = \\a => ada.s ++ ap.s ! a ; + s = \\_p,a => ada.s ++ ap.s ! _p ! a ; isPre = ap.isPre ; copTyp = ap.copTyp } ; UseA2 a = { - s = a.s ! Posit ; + s = \\_p => a.s ! Posit ; isPre = False ; ---- A2 has no isPre copTyp = serCopula ---- A2 has no copTyp (yet) } ; AdvAP ap adv = { - s = \\a => ap.s ! a ++ adv.s ; + s = \\_p,a => ap.s ! _p ! a ++ adv.s ; isPre = False ; copTyp = ap.copTyp } ; diff --git a/src/romance/CatRomance.gf b/src/romance/CatRomance.gf index 93e5e8c4a..fc6ff22ad 100644 --- a/src/romance/CatRomance.gf +++ b/src/romance/CatRomance.gf @@ -55,7 +55,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol] -- Adjective - AP = {s : AForm => Str ; isPre : Bool ; copTyp : CopulaType} ; + AP = {s : Person => AForm => Str ; isPre : Bool ; copTyp : CopulaType} ; -- Noun diff --git a/src/romance/ConjunctionRomance.gf b/src/romance/ConjunctionRomance.gf index 8917a0de4..0cc931da6 100644 --- a/src/romance/ConjunctionRomance.gf +++ b/src/romance/ConjunctionRomance.gf @@ -13,7 +13,7 @@ incomplete concrete ConjunctionRomance of Conjunction = a = conjAgr (Ag Masc conj.n P3) ss.a ; hasClit = False ; isNeg = ss.isNeg }) ; - ConjAP conj ss = conjunctDistrTable AForm conj ss ** { + ConjAP conj ss = conjunctDistrTable2 Person AForm conj ss ** { isPre = ss.isPre ; copTyp = ss.copTyp } ; @@ -41,8 +41,8 @@ incomplete concrete ConjunctionRomance of Conjunction = s2 = \\c => xs.s2 ! c ; ----e (conjunctCase c) ; a = conjAgr x.a xs.a ; isNeg = orB x.isNeg xs.isNeg } ; - BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre ; copTyp = y.copTyp} ; - ConsAP x xs = consrTable AForm comma x xs ** {isPre = andB x.isPre xs.isPre ; copTyp = xs.copTyp} ; + BaseAP x y = twoTable2 Person AForm x y ** {isPre = andB x.isPre y.isPre ; copTyp = y.copTyp} ; + ConsAP x xs = consrTable2 Person AForm comma x xs ** {isPre = andB x.isPre xs.isPre ; copTyp = xs.copTyp} ; BaseRS x y = twoTable2 Mood Agr x y ** {c = y.c} ; ConsRS xs x = consrTable2 Mood Agr comma xs x ** {c = xs.c} ; BaseIAdv = twoSS ; @@ -56,7 +56,7 @@ incomplete concrete ConjunctionRomance of Conjunction = [AdV] = {s1,s2 : Str} ; [IAdv] = {s1,s2 : Str} ; [NP] = {s1,s2 : Case => Str ; a : Agr ; isNeg : Bool} ; - [AP] = {s1,s2 : AForm => Str ; isPre : Bool ; copTyp : CopulaType} ; + [AP] = {s1,s2 : Person => AForm => Str ; isPre : Bool ; copTyp : CopulaType} ; [RS] = {s1,s2 : Mood => Agr => Str ; c : Case} ; [CN] = {s1,s2 : Number => Str ; g : Gender} ; diff --git a/src/romance/NounRomance.gf b/src/romance/NounRomance.gf index cf54e4ed1..3153222c3 100644 --- a/src/romance/NounRomance.gf +++ b/src/romance/NounRomance.gf @@ -153,7 +153,8 @@ incomplete concrete NounRomance of Noun = let g = cn.g in { - s = \\n => preOrPost ap.isPre (ap.s ! genNumPos2Aform g n ap.isPre) (cn.s ! n) ; + s = \\n => preOrPost ap.isPre (ap.s ! P3 ! genNumPos2Aform g n ap.isPre) + (cn.s ! n) ; g = g ; } ; @@ -190,7 +191,7 @@ incomplete concrete NounRomance of Noun = a = np.a ** {n = det.n} } ; AdjDAP det ap = { - s = \\g => det.s ! g ++ ap.s ! genNum2Aform g det.n ; + s = \\g => det.s ! g ++ ap.s ! P3 ! genNum2Aform g det.n ; n = det.n ; } ; diff --git a/src/romance/PhraseRomance.gf b/src/romance/PhraseRomance.gf index 933e3ec91..5b991c713 100644 --- a/src/romance/PhraseRomance.gf +++ b/src/romance/PhraseRomance.gf @@ -18,7 +18,7 @@ incomplete concrete PhraseRomance of Phrase = UttVP vp = {s = infVP vp (agrP3 Fem Sg)} ; --- Agr UttAdv adv = adv ; UttCN n = {s = n.s ! Sg} ; - UttAP ap = {s = ap.s ! genNum2Aform Masc Sg} ; + UttAP ap = {s = ap.s ! P3 ! genNum2Aform Masc Sg} ; UttCard n = {s = n.s ! Masc} ; UttInterj i = i ; diff --git a/src/romance/VerbRomance.gf b/src/romance/VerbRomance.gf index 1332336f8..d1fb0ef51 100644 --- a/src/romance/VerbRomance.gf +++ b/src/romance/VerbRomance.gf @@ -11,7 +11,7 @@ incomplete concrete VerbRomance of Verb = ComplVS v s = insertExtrapos (\\b => conjThat ++ s.s ! (v.m ! b)) (predV v) ; ComplVQ v q = insertExtrapos (\\_ => q.s ! QIndir) (predV v) ; ComplVA v ap = - insertComplement (\\a => let agr = complAgr a in ap.s ! genNum2Aform agr.g agr.n) (predV v) ; + insertComplement (\\a => let agr = verbAgr a in ap.s ! agr.p ! genNum2Aform agr.g agr.n) (predV v) ; SlashV2a v = mkVPSlash v.c2 (predV v) ; @@ -50,7 +50,7 @@ incomplete concrete VerbRomance of Verb = in mkVPSlash v.c2 (insertComplement - (\\_ => v.c3.s ++ prepCase v.c3.c ++ ap.s ! af) + (\\a => let agr = verbAgr a in v.c3.s ++ prepCase v.c3.c ++ ap.s ! agr.p ! af) (predV v)) ; ComplSlash vp np = insertObject vp.c2 np vp ; @@ -58,7 +58,7 @@ incomplete concrete VerbRomance of Verb = ReflVP v = case v.c2.isDir of { True => insertRefl v ; False => insertComplement - (\\a => let agr = verbAgr a in v.c2.s ++ reflPron agr.n agr.p v.c2.c) v + (\\a => let agr = verbAgr a in v.c2.s ++ reflPron agr.n agr.p v.c2.c) v } ; SlashVV v vp = @@ -94,8 +94,8 @@ incomplete concrete VerbRomance of Verb = CompAP ap = { s = \\ag => let - agr = complAgr ag - in ap.s ! genNum2Aform agr.g agr.n ; + agr = verbAgr ag + in ap.s ! agr.p ! genNum2Aform agr.g agr.n ; cop = ap.copTyp } ; CompCN cn = { s = \\ag => diff --git a/src/spanish/DiffSpa.gf b/src/spanish/DiffSpa.gf index f9571bafd..dc549f7d2 100644 --- a/src/spanish/DiffSpa.gf +++ b/src/spanish/DiffSpa.gf @@ -170,7 +170,7 @@ instance DiffSpa of DiffRomance - [iAdvQuestionInv,otherInv,partAgr,vpAgrSubj,vp reflPron : Number -> Person -> Case -> Str = \n,p,c -> let pro = argPron Fem n p c in - case p of { + case p of { P3 => case c of { Acc | CPrep P_a => "se" ; _ => "sí"